2009-01-04 81 views
11

我需要更改Oracle XE數據庫(而不是服務名稱)的SID以匹配生產數據庫。如何更改Oracle XE實例的SID

當我嘗試在線搜索時,大部分頁面都在描述通過tnsnames.ora更改或添加服務名稱;這不是我需要做的。

回答

12

asktom文章有答案,但格式和詳細程度使其難以遵循,所以這裏有一個總結:

[XE_HOME]表示安裝了Oracle XE哪裏。通常這是C:\oraclexe\app\oracle\product\10.2.0\server

請確保您具有管理員權限,否則該過程將失敗。

  1. 配置SPFILE(如果你願意,你可以刪除舊文件)
    1. copy [XE_HOME]\dbs\spfileXE.ora [XE_HOME]\dbs\spfileNEW_SID_NAME.ora
    2. copy [XE_HOME]\database\initXE.ora [XE_HOME]\database\initNEW_SID_NAME.ora
    3. 編輯[XE_HOME]\database\initNEW_SID_NAME.ora:它應該包含一行是這樣的:SPFILE='[XE_HOME]\server\dbs/spfileNEW_SID_NAME.ora'
  2. 關機並用新的舊服務替換:
    1. sqlplus/as sysdba和執行shutdown
    2. lsnrctl stop
    3. oradim -new -sid NEW_SID_NAME -startmode auto -pfile [XE_HOME]\database\initNEW_SID_NAME.ora
    4. oradim -delete -sid XE
    5. lsnrctl start
  3. 更新ORACLE_SID環境屬性(系統設置>高級>環境)
  4. 部隊甲骨文註冊聽着呃
    • sqlplus/as sysdba和執行alter system register;

您可以驗證SID被執行下面的查詢更改:select instance_name from v$instance;

+0

謝謝,我不喜歡接受我自己的答案的想法。你的回答更清晰, – 2010-08-07 19:02:09

4

Asktom有the answer,我不得不經過很多google-fu才能找到它。

2

我遇到了一些問題發表約翰內斯的解決方案,因此我不得不做一些額外的步驟。 當試圖通過執行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。

希望它有幫助

+0

對不起,我忘了,我用來解決這個問題的鏈接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