分类: Oracle
2009-08-25 11:30:44
概念:
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。这样才能连接到本数据库。