如何更改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.這樣才能連接到本數據庫。