本地服務(wù)名(Tnsname)
本地服務(wù)名(Tnsname)
Oracle客戶端與服務(wù)器端的連接是通過客戶端發(fā)出連接請求,由服務(wù)器端監(jiān)聽器對客戶端連接請求進 行合法檢查,如果連接請求有效,則進行連接,否則拒絕該連接。
本地服務(wù)名是Oracle客戶端網(wǎng)絡(luò)配置的一種,另外還有 Oracle名字服務(wù)器(Oracle?Names?Server)等。Oracle常用的客戶端配置就是采用的本地服務(wù)名,本文中介紹的也主要是基于本 地服務(wù)名的配置。
Oracle網(wǎng)絡(luò)連接配置方法
配置Oracle服務(wù)器端與客戶端都可以在其自帶的圖形化 Oracle網(wǎng)絡(luò)管理器(Oracle?Net?Manager)里完成(強烈建議在這個圖形化的工具下完成Oracle服務(wù)端或客戶端的配置)。在 Windows下,點擊“開始/程序/Oracle?-?OraHome92/Configuration?and?Migration?Tools /Net?Manager”啟動Oracle網(wǎng)絡(luò)管理器工具,在Linux/Unix下,利用netmgr命令來啟動圖形化Oracle網(wǎng)絡(luò)管理器, 如:$?netmgr。
1、Oracle監(jiān)聽器配置(LISTENER)
選中樹形目錄中監(jiān)聽程序項,再點擊 左上側(cè)“+”按鈕添加監(jiān)聽程序,點擊監(jiān)聽程序目錄,默認新加的監(jiān)聽器名稱是LISTENER(該名稱也可以由任意合法字符命名)。選中該名稱,選中窗口右 側(cè)欄下拉選項中的“監(jiān)聽位置”,點擊添加地址按鈕。在出現(xiàn)的網(wǎng)絡(luò)地址欄的協(xié)議下拉選項中選中“TCP/IP”,主機文本框中輸入主機名稱或IP地址(如果 主機即用作服務(wù)端也作為客戶端,輸入兩項之一均有效;如果主機作為服務(wù)端并需要通過網(wǎng)絡(luò)連接,建議輸入IP地址),端口文本框中輸入數(shù)字端口,默認是 1521,也可以自定義任意有效數(shù)字端口。
選中窗口右側(cè)欄下拉選項中的“數(shù)據(jù)庫服務(wù)”,點擊添加數(shù)據(jù)庫按鈕。在出現(xiàn)的數(shù)據(jù)庫欄中輸 入全局數(shù)據(jù)庫名,如myoracle。注意這里的全局數(shù)據(jù)庫名與數(shù)據(jù)庫SID有所區(qū)別,全局數(shù)據(jù)庫名實際通過域名來控制在同一網(wǎng)段內(nèi)數(shù)據(jù)庫全局命名的唯一 性,就如Windows下的域名控制器,如這里可以輸入myoracle.192.168.1.5。Oracle主目錄可以不填寫,輸入SID,如 myoracle。
保存以上配置,默認即可在Oracle安裝目錄下找到監(jiān)聽配置文件?(Windows下如D:\oracle \ora92\network\admin\listener.ora,Linux/Unix下$?ORACLE_HOME/network/admin /listerer.ora)。至此,Oracle服務(wù)端監(jiān)聽器配置已經(jīng)完成。
2、本地服務(wù)名配置(Tnsnames)
本地服務(wù)名是基于Oracle客戶端的網(wǎng)絡(luò)配置,所以,如果客戶端需要連接數(shù)據(jù)庫服務(wù)器進行操作,則需要配置該客戶端,其依附對象可以是任意一臺欲連接 數(shù)據(jù)庫服務(wù)器進行操作的PC機,也可以是數(shù)據(jù)庫服務(wù)器自身。如前面所介紹,可以利用Oracle自帶的圖形化管理工具Net?Manager來完成 Oracle客戶端的配置。
如果數(shù)據(jù)庫服務(wù)器端相關(guān)服務(wù)啟動了,可以點擊測試按鈕進行連接測試。Oracle默認是通過 scott/tiger用戶進行測試連接,由于scott用戶是Oracle自帶的示例用戶,對于正式的業(yè)務(wù)數(shù)據(jù)庫或?qū)I(yè)測試數(shù)據(jù)庫可能沒有配置這個用 戶,所以需要更改成有效的用戶登錄才可能測試成功。如果這里測試連接不成功,也不要緊,先點完成按鈕結(jié)束配置。
回到Oracle網(wǎng) 絡(luò)管理器(Oracle?Net?Manager)主窗口,保存配置,默認即可在Oracle安裝目錄下找到本地服務(wù)名配置文件(Windows下如 D:\oracle\ora92\network\admin\tnsnames.ora;Linux/Unix下$?ORACLE_HOME /network/admin/?tnsnames.ora)。
樹形目錄下的服務(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
SQL>conn?sys@myoracle?as?sysdba?--這里的myoracle是前面配置的客戶端本地服務(wù)名。
或
SQL>conn?/?as?sysdba
SQL>startup
Windows下,啟動監(jiān)聽器:C:\lsnrctl?start
啟動Oracle實例服 務(wù):C:\oradim?–startup?–sid?myoracle
關(guān)閉Oracle實例服 務(wù):C:\oradim?–shutdown?–sid?myoracle
以上服務(wù)必須同時啟動,客戶端才能連接數(shù)據(jù)庫。由于默認 配置的監(jiān)聽器名稱是Listener,上述命令可以正常啟動監(jiān)聽器,如果監(jiān)聽器名稱是其它名稱,如aListener,則需要用下列方式才能啟動:
Linux/Unix下:$?lsnrctl?start?aListener
Windows 下:C:\lsnrctl?start?aListener
(2)測試連接數(shù)據(jù)庫服務(wù)器。
測試的方法多種多 樣,可以在上面配置本地服務(wù)名時進行測試,也可以是第三方客戶端工具,如PL/SQL?Developer,最方便的是用Oracle自帶的 SQLplus工具,以下利用SQLplus進行測試:
C:\sqlplus?/nolog
SQL>conn?zgh@myoracle
已連接。
客戶端連接服務(wù)器端?#65308; 侍馀懦 椒?
要排除客戶端與服務(wù)器端的連接問題,首先檢查客戶端配置是否正確(客戶端配置必須與數(shù)據(jù)庫服務(wù)器端監(jiān)聽配置一致),再根據(jù)錯誤提 示解決。下面列出幾種?#65308; 牧 游侍猓?
1、ORA-12541:?TNS:?沒有監(jiān)聽器:
顯而 易見,服務(wù)器端的監(jiān)聽器沒有啟動,另外檢查客戶端IP地址或端口填寫是否正確。啟動監(jiān)聽器:
$?lsnrctl?start或 C:\lsnrctl?start
2、ORA-12500:?TNS:?監(jiān)聽程序無法啟動專用服務(wù)器進程:
對于Windows而言,沒有啟動Oracle實例服務(wù)。啟動實例服務(wù):C:\oradim?–startup?-sid?myoracle
3、ORA-12535:?TNS:?操作超時:
出現(xiàn)這個問題的原因很多,但主要跟網(wǎng)絡(luò)有關(guān)。解決這個問題,首先檢查客戶端與服 務(wù)端的網(wǎng)絡(luò)是否暢通,如果網(wǎng)絡(luò)連通,則檢查兩端的防火墻是否阻擋了連接。
4、ORA-12154:?TNS:?無法處理服務(wù)名:
檢查輸入的服務(wù)名與配置的服務(wù)名是否一致。另外注意生成的本地服務(wù)名文件(Windows下如D:\oracle\ora92\network \admin?\tnsnames.ora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnames.ora) 里每項服務(wù)的首?行服務(wù)名稱前不能有空格。
5、ORA-12514:?TNS:?監(jiān)聽進程不能解析在連接描述符中給出的 SERVICE_NAME打開Net?Manager,選中服務(wù)名稱,檢查服務(wù)標識欄里的服務(wù)名輸入是否正確。該服務(wù)名必須與服務(wù)器端監(jiān)聽器配置的全局數(shù) 據(jù)庫名一致。
6、Windows下啟動監(jiān)聽服務(wù)提示找不到路徑:
用命令或在服務(wù)窗口中啟動監(jiān)聽提示找不到路 徑,或監(jiān)聽服務(wù)啟動異常。打開注冊表,進入HKEY_LOCAL_MACHINE/SYSTEM/Current?ControlSet /Services/OracleOraHome92TNSListener項,查看ImagePath字符串項是否存在,如果沒有,設(shè)定值為 D:\oracle\ora92\BIN\TNSLSNR,不同的安裝路徑設(shè)定值做相應(yīng)的更改。這種方法同樣適用于Oracle實例服務(wù),同上,找到如同 HKEY_LOCAL_MACHINE/SYSTEM/Current?ControlSet/Services /Oracle?ServiceMYORACLE項,查看ImagePath字符串項是否存在,如果沒有,則新建,設(shè)定值為d:\oracle \ora92\binORACLE.EXE?MYORACLE。
本地服務(wù)名(Tnsname)
Oracle客戶端與服務(wù)器端的連接是通過客戶端發(fā)出連接請求,由服務(wù)器端監(jiān)聽器對客戶端連接請求進 行合法檢查,如果連接請求有效,則進行連接,否則拒絕該連接。
本地服務(wù)名是Oracle客戶端網(wǎng)絡(luò)配置的一種,另外還有 Oracle名字服務(wù)器(Oracle?Names?Server)等。Oracle常用的客戶端配置就是采用的本地服務(wù)名,本文中介紹的也主要是基于本 地服務(wù)名的配置。
Oracle網(wǎng)絡(luò)連接配置方法
配置Oracle服務(wù)器端與客戶端都可以在其自帶的圖形化 Oracle網(wǎng)絡(luò)管理器(Oracle?Net?Manager)里完成(強烈建議在這個圖形化的工具下完成Oracle服務(wù)端或客戶端的配置)。在 Windows下,點擊“開始/程序/Oracle?-?OraHome92/Configuration?and?Migration?Tools /Net?Manager”啟動Oracle網(wǎng)絡(luò)管理器工具,在Linux/Unix下,利用netmgr命令來啟動圖形化Oracle網(wǎng)絡(luò)管理器, 如:$?netmgr。
1、Oracle監(jiān)聽器配置(LISTENER)
選中樹形目錄中監(jiān)聽程序項,再點擊 左上側(cè)“+”按鈕添加監(jiān)聽程序,點擊監(jiān)聽程序目錄,默認新加的監(jiān)聽器名稱是LISTENER(該名稱也可以由任意合法字符命名)。選中該名稱,選中窗口右 側(cè)欄下拉選項中的“監(jiān)聽位置”,點擊添加地址按鈕。在出現(xiàn)的網(wǎng)絡(luò)地址欄的協(xié)議下拉選項中選中“TCP/IP”,主機文本框中輸入主機名稱或IP地址(如果 主機即用作服務(wù)端也作為客戶端,輸入兩項之一均有效;如果主機作為服務(wù)端并需要通過網(wǎng)絡(luò)連接,建議輸入IP地址),端口文本框中輸入數(shù)字端口,默認是 1521,也可以自定義任意有效數(shù)字端口。
選中窗口右側(cè)欄下拉選項中的“數(shù)據(jù)庫服務(wù)”,點擊添加數(shù)據(jù)庫按鈕。在出現(xiàn)的數(shù)據(jù)庫欄中輸 入全局數(shù)據(jù)庫名,如myoracle。注意這里的全局數(shù)據(jù)庫名與數(shù)據(jù)庫SID有所區(qū)別,全局數(shù)據(jù)庫名實際通過域名來控制在同一網(wǎng)段內(nèi)數(shù)據(jù)庫全局命名的唯一 性,就如Windows下的域名控制器,如這里可以輸入myoracle.192.168.1.5。Oracle主目錄可以不填寫,輸入SID,如 myoracle。
保存以上配置,默認即可在Oracle安裝目錄下找到監(jiān)聽配置文件?(Windows下如D:\oracle \ora92\network\admin\listener.ora,Linux/Unix下$?ORACLE_HOME/network/admin /listerer.ora)。至此,Oracle服務(wù)端監(jiān)聽器配置已經(jīng)完成。
2、本地服務(wù)名配置(Tnsnames)
本地服務(wù)名是基于Oracle客戶端的網(wǎng)絡(luò)配置,所以,如果客戶端需要連接數(shù)據(jù)庫服務(wù)器進行操作,則需要配置該客戶端,其依附對象可以是任意一臺欲連接 數(shù)據(jù)庫服務(wù)器進行操作的PC機,也可以是數(shù)據(jù)庫服務(wù)器自身。如前面所介紹,可以利用Oracle自帶的圖形化管理工具Net?Manager來完成 Oracle客戶端的配置。
如果數(shù)據(jù)庫服務(wù)器端相關(guān)服務(wù)啟動了,可以點擊測試按鈕進行連接測試。Oracle默認是通過 scott/tiger用戶進行測試連接,由于scott用戶是Oracle自帶的示例用戶,對于正式的業(yè)務(wù)數(shù)據(jù)庫或?qū)I(yè)測試數(shù)據(jù)庫可能沒有配置這個用 戶,所以需要更改成有效的用戶登錄才可能測試成功。如果這里測試連接不成功,也不要緊,先點完成按鈕結(jié)束配置。
回到Oracle網(wǎng) 絡(luò)管理器(Oracle?Net?Manager)主窗口,保存配置,默認即可在Oracle安裝目錄下找到本地服務(wù)名配置文件(Windows下如 D:\oracle\ora92\network\admin\tnsnames.ora;Linux/Unix下$?ORACLE_HOME /network/admin/?tnsnames.ora)。
樹形目錄下的服務(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
SQL>conn?sys@myoracle?as?sysdba?--這里的myoracle是前面配置的客戶端本地服務(wù)名。
或
SQL>conn?/?as?sysdba
SQL>startup
Windows下,啟動監(jiān)聽器:C:\lsnrctl?start
啟動Oracle實例服 務(wù):C:\oradim?–startup?–sid?myoracle
關(guān)閉Oracle實例服 務(wù):C:\oradim?–shutdown?–sid?myoracle
以上服務(wù)必須同時啟動,客戶端才能連接數(shù)據(jù)庫。由于默認 配置的監(jiān)聽器名稱是Listener,上述命令可以正常啟動監(jiān)聽器,如果監(jiān)聽器名稱是其它名稱,如aListener,則需要用下列方式才能啟動:
Linux/Unix下:$?lsnrctl?start?aListener
Windows 下:C:\lsnrctl?start?aListener
(2)測試連接數(shù)據(jù)庫服務(wù)器。
測試的方法多種多 樣,可以在上面配置本地服務(wù)名時進行測試,也可以是第三方客戶端工具,如PL/SQL?Developer,最方便的是用Oracle自帶的 SQLplus工具,以下利用SQLplus進行測試:
C:\sqlplus?/nolog
SQL>conn?zgh@myoracle
已連接。
客戶端連接服務(wù)器端?#65308; 侍馀懦 椒?
要排除客戶端與服務(wù)器端的連接問題,首先檢查客戶端配置是否正確(客戶端配置必須與數(shù)據(jù)庫服務(wù)器端監(jiān)聽配置一致),再根據(jù)錯誤提 示解決。下面列出幾種?#65308; 牧 游侍猓?
1、ORA-12541:?TNS:?沒有監(jiān)聽器:
顯而 易見,服務(wù)器端的監(jiān)聽器沒有啟動,另外檢查客戶端IP地址或端口填寫是否正確。啟動監(jiān)聽器:
$?lsnrctl?start或 C:\lsnrctl?start
2、ORA-12500:?TNS:?監(jiān)聽程序無法啟動專用服務(wù)器進程:
對于Windows而言,沒有啟動Oracle實例服務(wù)。啟動實例服務(wù):C:\oradim?–startup?-sid?myoracle
3、ORA-12535:?TNS:?操作超時:
出現(xiàn)這個問題的原因很多,但主要跟網(wǎng)絡(luò)有關(guān)。解決這個問題,首先檢查客戶端與服 務(wù)端的網(wǎng)絡(luò)是否暢通,如果網(wǎng)絡(luò)連通,則檢查兩端的防火墻是否阻擋了連接。
4、ORA-12154:?TNS:?無法處理服務(wù)名:
檢查輸入的服務(wù)名與配置的服務(wù)名是否一致。另外注意生成的本地服務(wù)名文件(Windows下如D:\oracle\ora92\network \admin?\tnsnames.ora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnames.ora) 里每項服務(wù)的首?行服務(wù)名稱前不能有空格。
5、ORA-12514:?TNS:?監(jiān)聽進程不能解析在連接描述符中給出的 SERVICE_NAME打開Net?Manager,選中服務(wù)名稱,檢查服務(wù)標識欄里的服務(wù)名輸入是否正確。該服務(wù)名必須與服務(wù)器端監(jiān)聽器配置的全局數(shù) 據(jù)庫名一致。
6、Windows下啟動監(jiān)聽服務(wù)提示找不到路徑:
用命令或在服務(wù)窗口中啟動監(jiān)聽提示找不到路 徑,或監(jiān)聽服務(wù)啟動異常。打開注冊表,進入HKEY_LOCAL_MACHINE/SYSTEM/Current?ControlSet /Services/OracleOraHome92TNSListener項,查看ImagePath字符串項是否存在,如果沒有,設(shè)定值為 D:\oracle\ora92\BIN\TNSLSNR,不同的安裝路徑設(shè)定值做相應(yīng)的更改。這種方法同樣適用于Oracle實例服務(wù),同上,找到如同 HKEY_LOCAL_MACHINE/SYSTEM/Current?ControlSet/Services /Oracle?ServiceMYORACLE項,查看ImagePath字符串項是否存在,如果沒有,則新建,設(shè)定值為d:\oracle \ora92\binORACLE.EXE?MYORACLE。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

