我需要更改Oracle XE数据库的SID(而不是服务名称)以匹配生产数据库.
当我尝试在线搜索时,大多数页面都是通过tnsnames.ora描述更改或添加服务名称; 那不是我需要做的.
该asktom文章有答案,但格式和详细程度使其难以遵循,所以这里有一个总结:
[XE_HOME]表示安装Oracle XE的位置.通常这是C:\oraclexe\app\oracle\product\10.2.0\server
.
确保您具有管理员权限,否则该过程将失败.
配置SPFILE(如果需要,可以删除旧文件)
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
更新ORACLE_SID环境属性(系统设置>高级>环境)
强制Oracle向侦听器注册
sqlplus / as sysdba
并执行 alter system register;
您可以通过执行以下查询来验证是否已更改SID: select instance_name from v$instance;