如 果數(shù)據(jù)庫服務(wù)器端相關(guān)服務(wù)啟動了,可以點(diǎn)擊測試按鈕進(jìn)行連接測試。Oracle默認(rèn)是通過scott/tiger用戶進(jìn)行測試連接,由于scott用戶是 Oracle自帶的示例用戶,對于正式的業(yè)務(wù)數(shù)據(jù)庫或?qū)I(yè)測試數(shù)據(jù)庫可能沒有配置這個(gè)用戶,所以需要更改成有效的用戶登錄才可能測試成功。如果這里測試連 接不成功,也不要緊,先點(diǎn)完成按鈕結(jié)束配置。
回 到Oracle網(wǎng)絡(luò)管理器(Oracle Net Manager)主窗口,保存配置,默認(rèn)即可在Oracle安裝目錄下找到本地服務(wù)名配置文件 (Windows下如D:oracleora92networkadmintnsnames.ora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnames.ora)。配置完成的本地服務(wù)名如下圖示:
圖(九)
樹形目錄下的服務(wù)命名可以通過編輯菜單里的重命名菜單更改成任意合法字符組成的服務(wù)名稱,注意服務(wù)名稱前不能有空格字符,否則可能無法連接數(shù)據(jù)庫服務(wù)器。
3、 連接數(shù)據(jù)庫服務(wù)器
(1) 啟動服務(wù)器端監(jiān)聽器與數(shù)據(jù)庫服務(wù)
Linux/Unix下,啟動監(jiān)聽器:
$ lsnrctl start
關(guān)閉監(jiān)聽器:
$ lsnrctl stop
查看監(jiān)聽狀態(tài):
$ lsnrctl status
啟動數(shù)據(jù)庫:
$ sqlplus /nolog
SQL>conn sys@myoracle as sysdba --這里的myoracle是前面配置的客戶端本地服務(wù)名
或
SQL>conn / as sysdba
SQL>startup
Windows下,啟動監(jiān)聽器:
C:lsnrctl start
啟動Oracle實(shí)例服務(wù):
C:oradim –startup –sid myoracle
關(guān)閉Oracle實(shí)例服務(wù):
C:oradim –shutdown –sid myoracle
以上服務(wù)必須同時(shí)啟動,客戶端才能連接數(shù)據(jù)庫。由于默認(rèn)配置的監(jiān)聽器名稱是Listener,上述命令可以正常啟動監(jiān)聽器,如果監(jiān)聽器名稱是其它名稱,如aListener,則需要用下列方式才能啟動:
Linux/Unix下:
$ lsnrctl start aListener
Windows下:
C:lsnrctl start aListener
(2) 測試連接數(shù)據(jù)庫服務(wù)器
測試的方法多種多樣,可以在上面配置本地服務(wù)名時(shí)進(jìn)行測試,也可以是第三方客戶端工具,如PL/SQL Developer,最方便的是用Oracle自帶的sqlplus工具,以下利用sqlplus進(jìn)行測試:
C:sqlplus /nolog
SQL>conn zgh@myoracle
已連接。
四、客戶端連接服務(wù)器端常見問題排除方法
要排除客戶端與服務(wù)器端的連接問題,首先檢查客戶端配置是否正確(客戶端配置必須與數(shù)據(jù)庫服務(wù)器端監(jiān)聽配置一致),再根據(jù)錯誤提示解決。下面列出幾種常見的連接問題:
1、 ORA-12541: TNS: 沒有監(jiān)聽器
顯而易見,服務(wù)器端的監(jiān)聽器沒有啟動,另外檢查客戶端IP地址或端口填寫是否正確。啟動監(jiān)聽器:
$ lsnrctl start
或
C:lsnrctl start
2、 ORA-12500: TNS: 監(jiān)聽程序無法啟動專用服務(wù)器進(jìn)程
對于Windows而言,沒有啟動Oracle實(shí)例服務(wù)。啟動實(shí)例服務(wù):
C:oradim –startup -sid myoracle
3、 ORA-12535: TNS: 操作超時(shí)
出現(xiàn)這個(gè)問題的原因很多,但主要跟網(wǎng)絡(luò)有關(guān)。解決這個(gè)問題,首先檢查客戶端與服務(wù)端的網(wǎng)絡(luò)是否暢通,如果網(wǎng)絡(luò)連通,則檢查兩端的防火墻是否阻擋了連接。
4、 ORA-12154: TNS: 無法處理服務(wù)名
檢 查輸入的服務(wù)名與配置的服務(wù)名是否一致。另外注意生成的本地服務(wù)名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnames.ora)里每項(xiàng)服務(wù)的首 行服務(wù)名稱前不能有空格。
5、 ORA-12514: TNS: 監(jiān)聽進(jìn)程不能解析在連接描述符中給出的 SERVICE_NAME
打開Net Manager,選中服務(wù)名稱,檢查服務(wù)標(biāo)識欄里的服務(wù)名輸入是否正確。該服務(wù)名必須與服務(wù)器端監(jiān)聽器配置的全局?jǐn)?shù)據(jù)庫名一致。
6、 Windows下啟動監(jiān)聽服務(wù)提示找不到路徑
用 命令或在服務(wù)窗口中啟動監(jiān)聽提示找不到路徑,或監(jiān)聽服務(wù)啟動異常。打開注冊表,進(jìn)入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener項(xiàng),查看ImagePath字符串項(xiàng)是否存在,如果沒 有,設(shè)定值為D:oracleora92BINTNSLSNR,不同的安裝路徑設(shè)定值做相應(yīng)的更改。這種方法同樣適用于Oracle實(shí)例服務(wù),同 上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE項(xiàng),查看ImagePath字符串項(xiàng)是否存在,如果沒有,則新建,設(shè)定值為d:oracleora92 binORACLE.EXE MYORACLE。
以上是Oracle客戶端連接服務(wù)器端常見的一些問題,當(dāng)然不能囊括所有的連接異常。解決問題的關(guān)鍵在于方法與思路,而不是每種問題都有固定的答案。