標籤:host 工具 protoc service use bsp var 操作 software
修改資料庫設定檔: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 inHKEY_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資料庫