讓你學會簡單改變數據庫sid的方法
2024-07-21 02:33:36
供稿:網友
當安裝配置好一個最基本的Oracle數據庫(unix下的)后,最好把它的系統文件和物理文件冷備份分別打包存放。
以后假如要再次在同樣Unix環境安裝oracle數據庫,只需要建立相關的用戶,然后把這個tar包解開,建幾個文件鏈接,數據庫就能運行起來了。
有時候在同一個局域網內安裝多臺機器的時候,就需要把數據庫sid改一改。
下面列一個簡單的改sid的步驟:
1、修改oracle安裝用戶的環境變量,把出現old_sid的地方改成new_sid重新登錄使改過的環境變量生效。
2、修改數據庫的參數文件(建議用initora_sid.ora文本文件的方法)
$cd $ORACLE_HOME/dbs
$cp initold_sid.ora initnew_sid.ora
編輯文件initnew_sid.ora,除了db_name參數保持原來數據庫的名稱外,其它的出現old_sid的地方都可以替換成new_sid。
3、生成新new_sid用的密碼文件
$cd $ORACLE_HOME/dbs
$orapwd file=$ORACLE_HOME/dbs/orapwnew_sid passWord=oracle entries=10
4、數據庫物理文件夾內把目錄改名
$cd $ORADATA
$mv old_sid new_sid
5、數據庫治理文件夾內把目錄改名
$cd $ORACLE_BASE/admin/
$mv old_sid new_sid
6、按新數據庫參數啟動數據庫,改數據庫的global_name
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup PFILE=$ORACLE_HOME/dbs/initnew_sid.ora;
SQL>alter database rename global_name to new_sid;
說明:db_name和global_name不是一個概念,global_name是數據庫的全局名,一般是db_name.db_domain,可以用SQL語句改變,db_name是數據庫創建時起的名稱,不能用SQL語句來改變它,只有重建控制文件的時候才可以改。
7、oratab文件里注釋掉原來的old_sid,增加一行new_sid,使dbstart和dbshut腳本能正常使用
#old_sid:$ORACLE_HOME:Y
new_sid:$ORACLE_HOME:Y
8、修改網絡參數文件listener.ora和tnsnames.ora
把出現old_sid的地方改成new_sid
啟動lsnrctl服務
9、最后檢查$sqlplus username/password@servicename是否能連進數據庫
------------------------------------------------------------
附新建控制文件,改數據庫名db_name的方法:
1、先把原來的控制文件備份成文本文件格式(@ORACLE_BASE/admin/udump/目錄下)
SQL>alter database backup controlfile to trace;
2、再把原來的控制文件重命名
$cd $ORADATA/testdb2/
$mv control01.ctl control01.ctl.old
$mv control01.ctl control02.ctl.old
$mv control01.ctl control03.ctl.old
3、創建新的控制文件的SQL,把db_name改掉initnew_sid.ora里面db_name參數已經改成新名稱testdb2
SQL>STARTUP NOMOUNT PFILE=$ORACLE_HOME/dbs/inittestdb2.ora
SQL>CREATE CONTROLFILE SET DATABASE "testdb2" RESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 3
MAXDATAFILES 500
MAXINSTANCES 8
MAXLOGHISTORY 907
LOGFILE
GROUP 1 '/oradata/testdb2/redo01.log' SIZE 50M,
GROUP 2 '/oradata/testdb2/redo02.log' SIZE 50M,
GROUP 3 '/oradata/testdb2/redo03.log' SIZE 50M
DATAFILE
'/oradata/testdb2/system01.dbf',
'/oradata/testdb2/undotbs01.dbf',
'/oradata/testdb2/sysaux01.dbf',
'/oradata/testdb2/users01.dbf'
CHARACTER SET ZHS16GBK
;
SQL>ALTER DATABASE OPEN RESETLOGS;
---------------------------------------------------------
還可以用nid實用工具來改變數據庫sid和db_name