我需要更改Oracle XE數據庫(而不是服務名稱)的SID以匹配生產數據庫。如何更改Oracle XE實例的SID
當我嘗試在線搜索時,大部分頁面都在描述通過tnsnames.ora更改或添加服務名稱;這不是我需要做的。
我需要更改Oracle XE數據庫(而不是服務名稱)的SID以匹配生產數據庫。如何更改Oracle XE實例的SID
當我嘗試在線搜索時,大部分頁面都在描述通過tnsnames.ora更改或添加服務名稱;這不是我需要做的。
的asktom文章有答案,但格式和詳細程度使其難以遵循,所以這裏有一個總結:
[XE_HOME]表示安裝了Oracle XE哪裏。通常這是C:\oraclexe\app\oracle\product\10.2.0\server
。
請確保您具有管理員權限,否則該過程將失敗。
copy [XE_HOME]\dbs\spfileXE.ora [XE_HOME]\dbs\spfileNEW_SID_NAME.ora
copy [XE_HOME]\database\initXE.ora [XE_HOME]\database\initNEW_SID_NAME.ora
[XE_HOME]\database\initNEW_SID_NAME.ora
:它應該包含一行是這樣的:SPFILE='[XE_HOME]\server\dbs/spfileNEW_SID_NAME.ora'
sqlplus/as sysdba
和執行shutdown
lsnrctl stop
oradim -new -sid NEW_SID_NAME -startmode auto -pfile [XE_HOME]\database\initNEW_SID_NAME.ora
oradim -delete -sid XE
lsnrctl start
sqlplus/as sysdba
和執行alter system register;
您可以驗證SID被執行下面的查詢更改:select instance_name from v$instance;
Asktom有the answer,我不得不經過很多google-fu才能找到它。
我遇到了一些問題發表約翰內斯的解決方案,因此我不得不做一些額外的步驟。 當試圖通過執行SQLPLUS /作爲SYSDBA連接到oracle(步驟4)我得到:
ERROR: ORA-12560: TNS:protocol adapter error
此溶液執行下面的行:
oradim -start -sid NEW_SID_NAME
然後與連接/工作正常,但嘗試連接到系統或人力資源的NEW_SID_NAME給我帶來了另一個問題:
ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
我檢查查詢select instance_name from v$instance;
該監聽器將是NEW_SID_NAME,等等。但在命令行中運行lsnrctl status
或查詢select name from dba_services;
未將NEW_SID_NAME顯示爲偵聽器。 這個問題的解決方案是執行上的sqlplus的followind一句:
alter system set service_names='NEW_SID_NAME';
也許你需要在此之後,執行alter system register;
也。
完成這兩步後,我可以通過系統和人力資源連接到NEW_SID_NAME。
希望它有幫助
對不起,我忘了,我用來解決這個問題的鏈接http://mdvreddy.blogspot.com.ar/2011/12/how-to-solve-ora-12560-tnsprotocol。 html和https://forums.oracle.com/forums/thread.jspa?messageID=10201664 – nMoncho 2012-12-05 13:58:23
謝謝,我不喜歡接受我自己的答案的想法。你的回答更清晰, – 2010-08-07 19:02:09