ORA-12514:TNS:listener does not currently know of service requested in connect descriptor
連接一個Oracle出現了各種錯誤
原博客地址:http://blog.csdn.net/jerry_bj/article/details/6384309
我的解決方案:打開netmanager,刪除所有實例和監聽,然后先添加監聽再添加實例,添加完后重啟oracleservice和oracleListener
windows 2008上啟用防火牆后Oracle tnsping不通的解決辦法
1、解決方法:
很簡單,windows2008防火牆將Oracle 1521端口給封了,新建並開啟就行了。當然,如果你的listener是其他端口,按照下述方法把其他的端口開了,也就可以了。
在cmd中,輸入:
C:/Users/Administrator>netsh firewall set portopening TCP 1521 "ORACLE"
2、ORA-12154:TNS:無法解析指定的連接標識符:
TNS-03505:無法解析名稱:
最近在安裝完Oracle Developer Suite之后,就無法登錄系統,輸入帳號登錄發生錯誤:ORA-12154:TNS:無法解析指定的連接標幟符。
從網上查看說一般是因為 配置文件中沒有對應的實例名,然后我就輸入C:/tnsping myoracle(我的ora實例名),查看tnsnames.ora和sqlnet.ora是否配置正確,結果報錯,提示:TNS-03505:無法解析名稱 說明配置文件有誤。
然后我就查看%Oracle_Home%/Db_1/NetWork/admin/TNSNAMES.ORA 文件,發現其中包含我需要登錄的實例名。我在嘗試tnsping命令,發現其查看到的參數文件sqlnet.ora不是我默認安裝的oracle下面的sqlnet.ora,而是Oracle Developer Suite目錄下NetWork文件夾下面的sqlnet.ora文件,把安裝目錄下的tnsnames.ora中的實例配置內容拷貝過去,OK.
MYORACLE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MYORACLE)
)
)
至於為什么會修改為使用那個目錄下的參數文件,還沒有研究怎么處理。先記下處理過程
一個很難想到的引起ORA-12154的原因
使用OracleClient.OracleConnection時(我連的是Oracle 9i,其他版本未知),如果你的執行目錄太長或者有括號等(未考察有些什么符號),那么即使你的服務名是對的,也會引起ORA-12154問題“TNS: 無法處理服務名”,當出現這個問題時,請也考慮這個原因。
http://render.cnblogs.com/archive/2005/10/13/253688.aspx
寫正確了tnsnames文件卻tnsping無法ping通:
http://www.oracleblog.cn/working-case/tnsping-block/
http://www.oracleblog.cn/tag/11g/
3、ORA-12154: TNS: 無法解析指定的連接標識符
你看看是不是你的TnaNames.ora里面TNS名稱之前有空格,如果有則刪除,呵呵,我以前碰到過這樣的BT問題
把
(CONNECT_DATA =
(SERVICE_NAME=HXDB)
)
換成
(CONNECT_DATA =
(SID=HXDB)
)
看看
Toad for Oracle免費下載
http://www.innovatedigital.com/node/319/done?sid=375
4、解決ORA-12560: TNS: 協議適配器錯誤,與大家共享
今天遭遇ORA-12560: TNS: 協議適配器錯誤的問題,經過一番努力問題已經解決,與大家共享。
造成ORA-12560: TNS: 協議適配器錯誤的問題的原因有三個:
1.監聽服務沒有起起來。windows平台個一如下操作:開始---程序---管理工具---服務,打開服務面板,
啟動oraclehome92TNSlistener服務。
2.database instance沒有起起來。windows平台如下操作:開始---程序---管理工具---服務,打開服務
面板,啟動oracleserviceXXXX,XXXX就是你的database SID.
3.注冊表問題。regedit,然后進入HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0將該環境變量 ORACLE_SI
D設置為XXXX,XXXX就是你的database SID.或者右幾我的電腦,屬性--高級--環境變量---系統變量--新建
,變量名=oracle_sid,變量值=XXXX,XXXX就是你的database SID.或者進入sqlplus前,在command line下
輸set oracle_sid=XXXX,XXXX就是你的database SID.
經過以上步驟,就可以解決問題。
5、TNS:協議適配器錯誤的解決方法
http://hi.baidu.com/8741659422/blog/item/62333d300112699fa9018e2d.html
沒有人會否認ORACLE是全球最有影響的數據庫產品之一;不過好的東西似乎總不是那么好用(初看起來如此),甚至有些無情--總會給layman 們一個個無情的錯誤號。下面是我個人的總結,條條有用,希望能給初學者一點啟示。
關於“好的東西似乎總不是那么好用(初看起來如此)”的一個笑話:在參加 IBM DB2 512、513培訓前,在校園網上下載到了安裝程序,不過任憑我們幾個同學研究個半天,也不知哪個文件是安裝文件,竟沒有安裝成功。最后,一致認為:看來這個培訓真是太有必要了!事后,才知道--我們下載的是4linux的!
[以8.1.6為例]:
1、 ORA-12541:TNS:沒有監聽器
原因:沒有啟動監聽器或者監聽器損壞。如果是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,則使用“Net8 Configuration Assistant”工具向導之“監聽程序配置”增加一個監聽器即可(基本不用寫任何信息,一路OK。在添加之前可能需要把所有的監聽器先刪除!)
2、 ORA-12500:TNS:監聽程序無法啟動專用服務器進程
或
ORA-12560:TNS:協議適配器錯誤
原因:ORACLE的數據庫服務沒有啟動。使用命令net start ORACLESERVICEORADB(ORADB為數據庫名字)即可。如果仍沒有解決,請繼續向下看。
3、如果數據庫服務啟動失敗,則很有可能是其注冊表項值損壞,最好的做法是以下兩步:
1)ORADIM -DELETE -SID oradb 刪除數據庫服務項
2)ORADIM -NEW -SID oradb 新增數據庫服務項
注:這個過程中如果出錯,就重啟計算機!
4、 ORA-12154:TNS:能解析服務名
原因:ORACLE的網絡服務名沒有正確配置。請使用“Net8 Configuration Assistant”工具向導之“本地網絡服務名配置”配置TNS即可。如果仍沒有解決,請繼續向下看。
5、 ORA-1034 :TNS:ORACLE不可用
原因:ORACLE的數據庫服務正確啟動,但是數據庫沒有打開!
使用命令:
1)svrmgrl 啟動服務管理器
2)connect internal 以internal身份登陸
3)startup 打開數據庫
6、ORA-12560:TNS:協議適配器錯誤(頑固性的)
原因:未知。
解決:必殺技--打開“Windows任務管理器”,殺死ORACLE.exe及ORADIM.exe進程,書寫自己的 ora_startup.bat,執行之!
PS:
1、我的ora_startup.bat:
net start OracleOraHome81TNSListener
net start ORACLESERVICEORADB
svrmgrl 一般情況下不用,不過有時少不了它的,具體步驟見第5步。
2、我的ora_shutdown.bat:
net stop OracleOraHome81TNSListener
net stop ORACLESERVICEORADB
3、ORACLE 相關服務名請參見“管理工具”之“服務”中以ORACLE開頭的服務名。
http://lelong.javaeye.com/blog/593225
我在XP系統中安裝了oracle10g 但是當我用system登錄時出現以下錯誤:SQL> conn system
Enter password: *********
ERROR:
ORA-12560: TNS:protocol adapter error
怎么處理?
------解決方法 --------------------------------------------------------
看看類似OracleserviceXXXX這樣的一個服務
------解決方法 --------------------------------------------------------
適配器錯誤,查看監聽和服務,並看是否配置正確
oracle從10開始企業管理器就成網頁版了,你還可以借助第三方工具來管理你的數據庫,PL/SQL或Toad
Toad for oracle9.5
下載地址:
http://www.orbitsw.net/toad/dls/TOAD for ORACLE/Toad for Oracle 9.5.exe
注冊碼:
Key : 0-63920-07153-29060-03749
Site: admin_88
你還可以只裝客戶端oracle 然后再裝PL/SQL 來管理和連接你的數據庫
oracle客戶端裝完,直接打開sqlplus 就讓你輸入用戶名和密碼,結果我怎么輸入,它都報
ORA-12560:TNS:協議適配器錯誤
你可以這樣來連接:一定要加上實例才能正常連接的
輸入用戶名:system@soshoo
輸入口令:******
這樣就可以連上了。
另:我的筆記:
oracle 獲取當前用戶的默認表空間:
select username,default_tablespace from user_users;
如何獲取當前的Oracle用戶的session id 兩種方法:
1.環境變量:SELECT USERENV('SID') FROM DUAL;直接獲取SID,這種方式要注意的是它在oracle 10g以后的版本才有這個環境變量
2.有時候v$mystat有權限, SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;
前面一種顯然簡單點
select * from v$instance; 獲取當明實例
C:/Documents and Settings/Zianed>tnsping orcl
口令中若含@ 連接oracle記得要加""
http://blog.csdn.net/aloha191/archive/2009/05/08/4161372.aspx
http://space.itpub.net/12778571/viewspace-624461 更改Oracle字符集
安裝完Oracle后,在服務里可以看到oracleDBConsole和OracleService兩個服務,其后還會緊跟數據庫名或服務名;
oracleDBConsole是EM的服務
oracleService+(Servicename) 才是實例的服務
我們只要啟動OracleService,就可以利用PL/SQL對數據庫進行連接操作了.
有時也會因為IP問題而導致PL/SQL連不上數據庫實例,我上次就是這樣的情況,因為是在沒裝網線時裝的,結果啟動了OracleService,PL/SQl也連不上,這時,我們就需要在"程序"-->"Oracle - oraDb10g_home1"-->"Configuration and Migration Tools"-->"Net Manager"里進行配置,里面有一個監聽程序和服務命名,里面的主機我們最好都用"計算機名",系統默認的是"localhost",我們需要在服務命名里新建一個關於數據庫的服務名,然后對其進行注冊,注冊完畢后,保存,PLSQL應該就能連上了。
oracleDBConsole如果不啟動的話,http://localhost:5500/em是打不開的,而我上次沒插網線的問題就導致了oracleDBConsole無法啟動,也出現了上篇中的錯誤。
我機子上裝了oracle11服務器端,又裝了客戶端,還裝了pl/sql,結果出現
tnsping 實例名 :導致無法解析名稱。所以,OEM可以進,而SQL/PLUS 一直連不上實例,查了好久都不知道原因。實在無耐就卸載了客戶端,然而這樣操作完后,SQL/PLUS居然可以連實例了,也能tnsping通了。