新聞中心
在使用Oracle數(shù)據(jù)庫時,常常會遇到連接錯誤,其中最常見的就是12154錯誤碼。這個錯誤碼常常出現(xiàn)在Oracle Net服務(wù)無法解析主機(jī)名時。解決這個問題對數(shù)據(jù)庫的正常使用至關(guān)重要,本文就來介紹一些解決12154錯誤碼的方法。

創(chuàng)新互聯(lián)建站專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、雙鴨山網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價格優(yōu)惠性價比高,為雙鴨山等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
一、排查網(wǎng)絡(luò)問題
當(dāng)遇到12154錯誤碼時,首先需要排查網(wǎng)絡(luò)問題??梢酝ㄟ^ping命令來檢查網(wǎng)絡(luò)是否正常。使用以下命令來測試是否可以到達(dá)數(shù)據(jù)庫服務(wù)器:
“`ping “`
如果顯示“請求超時”或“無法訪問目標(biāo)計(jì)算機(jī)”,那么就說明網(wǎng)絡(luò)連接存在問題??梢試L試重啟路由器、防火墻等設(shè)備來解決此問題。
二、檢查數(shù)據(jù)庫服務(wù)名
12154錯誤碼也可能由于服務(wù)名無法找到而導(dǎo)致。在Oracle中,服務(wù)名和主機(jī)名一樣重要,必須是準(zhǔn)確的。使用tnsping命令來檢查服務(wù)名是否正確。以測試數(shù)據(jù)庫服務(wù)名為testdb的情況為例,可以使用以下命令檢查服務(wù)名是否正確:
“`tnsping testdb“`
如果返回“無法解析指定的連接標(biāo)識符”或“找不到指定的連接標(biāo)識符”,那么就說明服務(wù)名不正確。需要在tnsnames.ora文件中進(jìn)行配置。在tnsnames.ora文件中,可以使用以下格式來定義服務(wù)名:
“`
testdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
)
(CONNECT_DATA =
(SERVICE_NAME = testdb)
)
)
“`
這里需要注意的是,tnsnames.ora文件應(yīng)該放在$ORACLE_HOME/network/admin目錄下。如果這個文件不存在,需要手動創(chuàng)建并將其放到這個目錄下。
三、檢查監(jiān)聽程序
如果服務(wù)名和網(wǎng)絡(luò)都沒有問題,那么可能是監(jiān)聽程序出了問題。在Oracle中,監(jiān)聽程序會監(jiān)聽指定端口上的請求,并將其分發(fā)到正確的數(shù)據(jù)庫實(shí)例上。如果監(jiān)聽程序沒有啟動,就會導(dǎo)致12154錯誤碼。使用以下命令來啟動監(jiān)聽程序:
“`lsnrctl start“`
如果監(jiān)聽程序已經(jīng)啟動,可以使用以下命令來檢查監(jiān)聽程序是否在監(jiān)聽正確的端口:
“`lsnrctl status“`
如果端口不正確,可以通過編輯listener.ora文件來更改端口。在listener.ora文件中,可以使用以下格式來定義監(jiān)聽程序:
“`
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
)
)
“`
這里與tnsnames.ora文件類似,listener.ora文件也需要放在$ORACLE_HOME/network/admin目錄下。
四、使用EZCONNECT
在Oracle 10g之后,引入了EZCONNECT功能,可以通過簡單的字符串來連接數(shù)據(jù)庫。使用以下格式來連接數(shù)據(jù)庫:
“`
/@:/
“`
例如,如果要連接數(shù)據(jù)庫服務(wù)名為testdb的數(shù)據(jù)庫,可以使用以下命令:
“`sqlplus /@localhost:1521/testdb“`
這里需要注意的是,這里的localhost應(yīng)該被替換成要連接的主機(jī)名或IP地址。如果使用EZCONNECT功能仍然出現(xiàn)12154錯誤碼,那么可以重新檢查前面提到的步驟。
相關(guān)問題拓展閱讀:
- pl/sql developer 登陸時 出現(xiàn)”O(jiān)RA-12154: TNS:無法解析指定的連接標(biāo)
- 出現(xiàn)oracle的12154錯誤怎么辦?
pl/sql developer 登陸時 出現(xiàn)”O(jiān)RA-12154: TNS:無法解析指定的連接標(biāo)
ORA-12154: TNS: 無法解析指定的連接標(biāo)識符 問題\x0d\x0a\x0d\x0a相信作為ORACLE數(shù)據(jù)庫的開發(fā)人員沒有少碰到“ORA-12154: TNS: 無法解析指定的連接標(biāo)識符”,今天我也又碰到了類似的情況,將我的解決方法進(jìn)行小結(jié),希望能對碰到同樣問題的友人們提供幫助。\x0d\x0a\x0d\x0a問題場景描述:\x0d\x0a\x0d\x0a服務(wù)器端版本:oracle 10.2.0.10\x0d\x0a\x0d\x0a客戶端版本:oracle 10.2.0.10\x0d\x0a\x0d\x0a客戶端開發(fā)工具:PL/SQL Developer\x0d\x0a\x0d\x0a通過客戶端來連接服務(wù)器茄燃,其主要文件就是通過客戶端的tnsnames.ora來配置,在原文件的基礎(chǔ)上增加:\x0d\x0a\x0d\x0aSID別名 =\x0d\x0a (DESCRIPTION =\x0d\x0a (ADDRESS_LIST =\x0d\x0a (ADDRESS = (PROTOCOL = TCP)(HOST = SERVER_IP)(PORT = 1521))\x0d\x0a )\x0d\x0a (CONNECT_DATA =\x0d\x0a (SID = SID_NAME)\x0d\x0a )\x0d\x0a )\x0d\x0a\x0d\x0a例:\x0d\x0a\x0d\x0adev_db =\x0d\x0a (DESCRIPTION =\x0d\x0a (ADDRESS_LIST =\x0d\x0a (ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))\x0d\x0a )\x0d\x0a (CONNECT_DATA =\x0d\x0a (SID = ora10)\x0d\x0a )\x0d\x0a )\x0d\x0a\x0d\x0a通過PL/SQL Developer連接dev_db時,報“ORA-12154: TNS: 無法解析指定的連接標(biāo)識符”。(這個問題以前也碰到過,但解決方法不太一樣,因具體的問題不太一樣。)\x0d\x0a\x0d\x0a我將自己知道的一些解決方法說一下:\x0d\x0a\x0d\x0a1.先檢查服務(wù)器端的監(jiān)聽服務(wù)是否打開,如果沒有打喊雀開請啟動其監(jiān)聽\x0d\x0a\x0d\x0a 客戶端:tnsping
\x0d\x0a 服務(wù)器Linux下:\x0d\x0a\x0d\x0a #>lsnrctl status 查看監(jiān)聽狀態(tài)\x0d\x0a\x0d\x0a #>lsnrctl start 啟動監(jiān)聽\x0d\x0a\x0d\x0a2.通過Sql Plus連接一下試試,如鄭納早果Sql Plus連接能成功,那就說明你的tnsnames.ora內(nèi)容有錯誤\x0d\x0a\x0d\x0a我的問題就在別名dev_db前面有一個空格,這個可以通過文本編輯器(Edit Plus,UE等)來查看是否有空格,只要有空格那就肯定是不行的,而且如果那段內(nèi)容是出現(xiàn)在文件的中間的話,將導(dǎo)致該文件里所有相應(yīng)的連接別名都不成功,如果是在最后面就只有其自身連接別名不能成功,其他連接別名還是能連接成功。(注:我的tnsnames.ora配置了多個數(shù)據(jù)庫實(shí)例的連接,所有才有多個連接別名。)\x0d\x0a\x0d\x0a如:\x0d\x0a\x0d\x0a空格dev_db =\x0d\x0a (DESCRIPTION =\x0d\x0a (ADDRESS_LIST =\x0d\x0a (ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))\x0d\x0a )\x0d\x0a (CONNECT_DATA =\x0d\x0a (SID = ora10)\x0d\x0a )\x0d\x0a )\x0d\x0a\x0d\x0a3.如果確保你的tnsnames.ora內(nèi)容沒有錯誤,那請將%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN目錄下的所有文件刪了,然后重新連接,一般就能解決了。\x0d\x0a\x0d\x0a說明一下:那個目錄里的文件是在你建立連接的時候動態(tài)生成的,不要怕刪了會有問題\x0d\x0a\x0d\x0a4.進(jìn)入PLSQL Developer的主界面,在登錄界面選擇取消即不登錄進(jìn)入主界面,然后選擇菜單Tools(工具)-Preferences(首選項(xiàng)),在設(shè)置窗口中,選擇Oracle-Connection(連接),對應(yīng)設(shè)置窗口中,找到Oracle Home(Oracle主目錄),選擇你本地所安裝客戶端的版本,保存設(shè)置,然后重新啟動PLSQL Developer,這時就可以正常登錄了。
出現(xiàn)oracle的12154錯誤怎么辦?
安裝好oracle10客戶端,配置好網(wǎng)絡(luò)服務(wù)名稱,用enterprsie manager console 連接服務(wù)器,一切正常,連接成功。 接著安裝plsql developer,安裝完成后,運(yùn)行plsql, 輸入用戶名和密碼,數(shù)卜輪鉛據(jù)庫名稱輸入剛才配置的服務(wù)名稱,點(diǎn)擊登錄,出現(xiàn)ora-12154錯誤。 隨即上網(wǎng)搜索,查找資料。按照網(wǎng)上說的試了試,雖然沒成功,大概知道了問題出在哪。 因?yàn)橛胢anager console 能登錄,plsql不能登錄,說明網(wǎng)絡(luò)服務(wù)名配置的沒有問題,問題可能出在plsql不能找到網(wǎng)絡(luò)服務(wù)名的配置文件,即找不到C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora??戳丝赐┳邢到y(tǒng)環(huán)境變量,發(fā)現(xiàn)ORACLE_HOME的值為空,試型好著設(shè)置為ORACLE_HOME=c:\oracle\product\10.2.0\client_1。重新登錄plsql,登錄上去了。 沒想到是ORACLE_HOME惹得禍!
關(guān)于數(shù)據(jù)庫連接12154錯誤的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享名稱:解決Oracle數(shù)據(jù)庫連接12154錯誤問題(數(shù)據(jù)庫連接12154錯誤)
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/dhsccjo.html


咨詢
建站咨詢
