修改数据库配置文件:tnsnames.ora 【我的数据库位置:D:\app\Icey-evil\product\11.2.0\dbhome_1\NETWORK\ADMIN】
根据服务器地址加入以下内容:
10.88.250.28 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.88.250.28)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) )
说明:HOST = 10.88.250.28 是需要连接的oracle服务器 IP,SERVICE_NAME = ORCL是连接的数据库实例,PORT = 1521是oracle服务器监听端口。
配置完成,用PL/SQL Developer工具进行远程连接,database即为添加的tns服务名,这里是 10.88.250.28。
远程连接过程中出现的问题:
1.ORA-12638: 身份证明检索失败
解决方法:
查阅相关资料,说是将本地文件sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES= (NTS)注释掉,或者将其改为SQLNET.AUTHENTICATION_SERVICES= (NONE)。
按照以上方法将本地文件sqlnet.ora修改后,重新连接,依旧是ORA-12638。
个人将服务器上的文件sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES= (NTS) 改为SQLNET.AUTHENTICATION_SERVICES= (NONE)后重新连接,连接成功。
综上来看呢,好像是SQLNET.AUTHENTICATION_SERVICES的问题,可是呢在PL/SQL Developer连接出现ORA-12638时,有用Navicat Premium进行远程连接Oracle,连接是成功的,所以呢,在PL/SQL Developer远程连接成功后,又将服务器上文件sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES= (NONE)改回SQLNET.AUTHENTICATION_SERVICES= (NTS),此时按理说,PL/SQL Developer远程连接依旧会是ORA-12638,事实是连接成功!所以......无解...
【SQLNET.AUTHENTICATION_SERVICES 表示oracle使用哪种验证方式,NTS表示采用本地操作系统认证,NONE表示将采用口令文件方式认证。设定了none后,本地的操作系统认证将不被许可,oracle将采用口令文件认证】
2. PL/SQL Developer登陆后提示:
Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different. Character set conversion may cause unexpected results. Note: you can set the client character set through the NLS_LANG environment variable or the NLS_LANG registry key in HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1.
解决方法:修改注册表
win+r —> cmd —>regedit —>enter;
找到KEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1
【win 64位系统中在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraDb11g_home1,Wow64放的是64位操作系统下安装的32位程序】
找到 NLS_LANG 键,原值是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
将其改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8
重新打开PL/SQL Developer ,登录,Ok.