虛擬機電腦重啟后連接不上ORACLE


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通了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM