ORA-12154: TNS:could not resolve service name / TNS-03505: Failed to resolve name

jqs發表於2009-02-23

一個新建立的資料庫,連線不上提示如下錯誤:

$ sqlplus

SQL*Plus: Release 9.2.0.1.0 - Production on Mon Feb 23 21:53:35 2009

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve service name

用tnsping檢測:

$ tnsping tt9a

TNS Ping Utility for IBM/AIX RISC System/6000: Version 9.2.0.1.0 - Production on 23-FEB-2009 21:52:59

Copyright (c) 1997 Oracle Corporation. All rights reserved.

Used parameter files:
/xxx/oraxxx/db/tech_st/10.2.0/network/admin/xxx/sqlnet_ifile.ora

TNS-03505: Failed to resolve name
$

怎麼會有

Used parameter files:
/xxx/oraxxx/db/tech_st/10.2.0/network/admin/xxx/sqlnet_ifile.ora

------------------------------------------------

檢查環境變數,居然有TNS_ADMIN:

TNS_ADMIN=/xxx/oraxxx/db/tech_st/10.2.0/network/admin/xxx

但當前Oracle 使用者並沒有設定TNS_ADMIN

--------------------

解決方法一(值標):嘗試設定一個新的值替換掉原來的TNS_ADMIN定義:

TNS_ADMIN=/u01/ora9a/product/9.2/network/admin;export TNS_ADMIN

解決方法二(值本):

找到什麼地方設定了這個TNS_ADMIN,在root使用者下,

# env|grep TNS_ADMIN

TNS_ADMIN=/xxx/oraxxx/db/tech_st/10.2.0/network/admin/xxx

發現有這個配置,尋找root使用者的相關環境變數/etc/profile及/.profile都沒有發現這個配置,一般地,系統的環境變數就在這兩個位置,怎麼沒有?

到/etc/下find 這個TNS_ADMIN

發現還有一個檔案/etc/environment中有這個配置,後來找相關資料查證了下,AIX下讀取環境變數的順序是/etc/profile--&gt/etc/environment---&gt使用者的 profile--&gt使用者的.env(如果使用者的profile中有設定ENV=$HOME/.env)

以前還沒有遇到這樣的情況,留下吧,方便!

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15385/viewspace-1017770/,如需轉載,請註明出處,否則將追究法律責任。

相關文章