PL/SQL Developer遠程連接Oracle數據庫
修改數據庫配置文件: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.
PL/SQL Developer遠程連接Oracle數據庫