oracle远程连接(PLSQL,SQL developement + Oracle数据库 + 客户端 + 远程连接设置

时间:2022-01-24 00:55:18

  服务器端

    配置:oracle11g R2 x64

   1.设置监听

    a.启动栏 -> 开始 -> 程序 -> Oracle-OraDb11g_home1 -> 配置和移植工具 -> Net Manager

    b.Oracle  Net 配置 -> 本地 -> 监听程序 -> LISTENER ,查看是否有本地地址在监听,没有则添加,主机:"localhost",端口:1521,协议:TCP/IP

    2.关闭所有防火墙(包括Window防火墙)。若出现无监听程序,就是防火墙问题了。

    3.启动TNS监听服务:lsnrctl  start  (此程序LSNRCTL.exe位于oracle_path/product/11.2.0/dbhome_1/BIN目录下


PS: 我的system用户登陆不上,sys,scott 用户倒是可以登录的。我貌似明白了,DBA 是不让远程连接的?但是用sys用户可以以DBA登录呀。

    客户端(Windows)

    1.下载Instant Client for Microsoft Windows (32bit) 并安装,地址:   instant client下载

    2.将instant client的安装目录加入path环境变量中

    3.创建tnsnames.ora配置文件,内容格式如下:

[plain] view plaincopyoracle远程连接(PLSQL,SQL developement + Oracle数据库 + 客户端 + 远程连接设置oracle远程连接(PLSQL,SQL developement + Oracle数据库 + 客户端 + 远程连接设置
  1. # tnsnames.ora Network Configuration File: C:\e\orcldb\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora  
  2. # Generated by Oracle configuration tools.  
  3.   
  4. WSR =  
  5.   (DESCRIPTION =  
  6.     (ADDRESS_LIST =  
  7.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1521))  
  8.     )  
  9.     (CONNECT_DATA =  
  10.       (SERVICE_NAME = orcl)  
  11.     )  
  12.   )  
  13.   
  14. ORACLR_CONNECTION_DATA =  
  15.   (DESCRIPTION =  
  16.     (ADDRESS_LIST =  
  17.       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  
  18.     )  
  19.     (CONNECT_DATA =  
  20.       (SID = CLRExtProc)  
  21.       (PRESENTATION = RO)  
  22.     )  
  23.   )  
  24.   
  25. LISTENER_ORCL =  
  26.   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
  27.   
  28. ORCL =  
  29.   (DESCRIPTION =  
  30.     (ADDRESS_LIST =  
  31.       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
  32.     )  
  33.     (CONNECT_DATA =  
  34.       (SERVER = DEDICATED)  
  35.       (SERVICE_NAME = orcl)  
  36.     )  
  37.   )  

    比如此文件,我创建的TNS服务名为WRS,Oracle服务器地址为192.168.1.112,Oracle服务器监听端口为1521,连接的Oracle数据库名为orcl,可以按此格式进行替换。

    4.添加TNS_ADMIN环境变量,指向创建的tnsnames.ora配置文件。


    至此,配置已经完成,可以用pl/sql developer之类的工具连接远程oracle数据库,database即为添加的tns服务名(这里为WSR)


    如果要用odbc连接数据库,还要添加odbc数据源,64位系统用C:\Windows\SysWOW64\odbcad32.exe,32位系统用C:\Windows\System32\odbcad32.exe



以下方法没有成功呀。。。。。。。。


Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍。

第一种情况:

若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。不过要注意环境变量%ORACLE_HOME%/network/admin/是否设置。

第二种情况:

本机未安装oracle服务器,也未安装oracle客户端。但是安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。

这种情况下,本人以pl sql development远程连接ORACLE服务端数据库为例:

1、在安装oracle服务器的机器上搜索下列文件:

oci.dll
ocijdbc10.dll
ociw32.dll
orannzsbb10.dll
oraocci10.dll
oraociei10.dll
sqlnet.ora
tnsnames.ora
classes12.jar
ojdbc14.jar
把这些找到的文件复制放到一个文件夹,如 oraclient,将此文件夹复制到客户端机器上。如放置路径为 D:oraclient。

2、配置tnsnames.ora,修改其中的数据库连接串。

 

oracledata =   (DESCRIPTION =   (ADDRESS_LIST =   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))    (CONNECT_DATA =   (SERVICE_NAME = oracledata)    ) 

其中,oracledata是要连接的服务名;HOST = 192.168.0.58,是服务器IP地址;PORT = 1521是端口号。

3、添加第一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(如:D:oraclient,特别是重装后或其它操作,忘了TNS_ADMIN变量,plsql登陆就会报无法解析指定的连接标识符),这是为了能够找到上面说的tnsnames.ora。这步是最重要的。

添加第二个环境变量(可有可无):“NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,(AMERICAN_AMERICA.US7ASCII 是ASCII编码类型,其它类型可自己到服务器看一下或网上查找一下)(本步骤暂时要做对,如果编码不对,会产生乱码)。

 

4、下载并安装PL SQL Developer配置应用:

打开PL SQL Developer,登入界面点取消,进入后选择菜单栏 tools->preferences->connection :

 

Oracle Home=D:oracleclient   OCI library=D:oracleclientoci.dll 

5、再次打开plsql则会在database中有oracledata 选项输入用户名密码就可以登陆。

第三种情况:

本机未安装ORACLE服务器,但是安装了oracle客户端,也安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。

这种情况下,本人以pl sql development远程连接oracle服务端数据库为例:

1、打开oracle客户端中的net manager,配置要远程连接的数据库名、IP地址等,如果net manager中没有要远程连接的数据库名,则新建即可。

2、其他步骤与第二种情况中的2---5相同。

第四种情况:

本机未安装oracle服务器,也未安装pl sql development、toad sql development、sql navigator等管理数据库的工具,但是安装了oracle客户端。在虚拟机或者另一台电脑上安装了ORACLE服务器,也就是虚拟机或者另一台电脑此时作为服务器。

这种情况下,本人以oracle客户端中的sqlplus远程连接oracle服务端数据库为例:

1、打开oracle客户端中的net manager,配置要远程连接的数据库名、IP地址等,如果net manager中没有要远程连接的数据库名,则新建即可。

2、同第二种情况中的步骤二。

3、同第二种情况中的步骤三。

4、打开sqlplus:

(1)如果用sys用户登入,则用户名:sys 密码:xxxxxx 主机字符串:要连接的数据库名 as sysdba,登入即可。

(2)如果用其他用户登入,则用户名:xxx 密码:xxxxxx 主机字符串:要连接的数据库名,登入即可。

注意事项:

1、服务器端和客户端防火墙需要关闭;

2、我们经常会遇到***服务无法启动,那么需要打开Net Configuration Assistant修复,或者新建***服务。

3、数据库密码如果忘了怎么办?按照以下方法修改密码即可:

开始-->运行-->cmd

输入 :sqlplus /nolog 回车

输入 :connect / as sysdba 回车

用户解锁 : alter user system account unlock 回车

修改密码:alter user system identified by manager

4、怎样判断数据库是运行在归档模式下还是运行在非归档模式下?

进入dbastudio,历程--〉数据库---〉归档查看。

5、另外,如果本机和别的机子均安装了oracle服务器端,那么本机如果要连接别的机子,就必须修改环境变量。