我需要更改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