如何更改Oracle数据库的SID

如题所述

  SQL show parameter instance
  DB_NAME: 数据库名。可以用DBNEWID (nid)命令更改DB_NAME.
  SQL show parameter db_name
  DBID: 数据库建立时创建的内部数字,用于区分不同数据库。RMAN会用该数字来区分数据库。当数据库都是正常创建时,DBID是不一样的。如果用复制的方法复制数据库,它们的DBID就会一样。可以用DBNEWID (nid)命令更改DBID.
  SQL select dbid from v$database;
  下面开始更改SID.本例中,原SID名为oldsid,更改为newsid
  1. 关闭数据库
  SQL create pfile from spfile; 生成initoldsid.ora 文件,后续操作需要用到
  SQL shutdown immediate;
  2. 编辑环境变量
  # vi /home/oracle/.bash_profile
  将其中的
  export ORACLE_SID=oldsid 更改为
  export ORACLE_SID=newsid
  为使环境变量生效,以oracle用户重新登录。
  3. 重命名参数文件
  # cd $ORACLE_HOME/dbs
  # mv initoldsid.ora initnewsid.ora
  参数文件内容无需更改。如果本数据库是从另一台oracle服务器复制过来的,那需要将参数文件中的路径和内存等配置进行修改,这不属于本次任务。
  4. 创建口令文件
  orapwd file=$ORACLE_HOME/dbs/orapwnewsid password=oracle
  至此,SID已经更改完成,数据库可以正常启动。以下操作是额外部分:
  5. 更改其他相关配置
  更改listener.ora:
  vi $ORACLE_HOME/network/admin/listener.ora,若其中配置了SID_NAME=OLDSID,则需要更改为NEWSID.然后重启监听:# lsnctl restart.
  更改tnsnames.ora:
  所有需要连接到本数据库的其他主机,都需要更改tnsnames.ora.将SERVICE_NAME = OLDSID更改为SERVICE_NAME = NEWSID.这样才能连接到本数据库。
温馨提示:答案为网友推荐,仅供参考