ORACLE/ADMIN2006. 3. 9. 23:12
반응형

ORACLE_SID를 변경하는 방법에 관한 자료


Explanation
-----------
1. 먼저 변경하고자 하는 SID를 v$thread 로 확인한다.

SVRMGR> select instance from v$thread;
INSTANCE
----------------
RC815UT
1 row selected.  


2. DB를 shutdown한다. (shutdown normal or immediate)


3. Full backup을 받는다.(All control, redo, data files backup)

1) datafiles
SVRMGR> select file_name from dba_data_files;
FILE_NAME
----------------------------------------------------
/mnt2/data/RC815UT/oradata/system01.dbf
/mnt2/data/RC815UT/oradata/rbs01.dbf
/mnt2/data/RC815UT/oradata/tools01.dbf
/mnt2/data/RC815UT/oradata/users01.dbf
/mnt2/data/RC815UT/oradata/temp01.dbf 

2) redo log files
SVRMGR> select group#, member from v$logfile;
GROUP#     MEMBER
---------- -----------------------------------------
         1 /mnt2/data/RC815UT/oradata/redoRC815UT01.log
         2 /mnt2/data/RC815UT/oradata/redoRC815UT02.log
         3 /mnt2/data/RC815UT/oradata/redoRC815UT03.log
3 rows selected.                     

3) control files
SVRMGR> select name from v$controlfile;
NAME
----------------------------------------------------
/mnt2/data/RC815UT/oradata/control01.ctl
/mnt2/data/RC815UT/oradata/control02.ctl
/mnt2/data/RC815UT/oradata/control03.ctl
3 rows selected.    

4) full backup
SVRMGR> ! cp /mnt2/data/RC815UT/oradata/* /mnt3/rctest8i/backup


4. .profile, .cshrc, .login, oratab, tnsnames.ora 파일에
ORACLE_SID가 설정되어있다면 이를 모두 새로운 ORACLE_SID명으로 변경시킨다.

OLD ORACLE_SID : RC815UT
NEW ORACLE_SID: RC815NEW


5. $ORACLE_HOME/dbs directory에서 새로운 SID명을 사용하기 위해 다음 파일을 수정한다.

1) initSID.ora 를 새로운 initSID.ora로 rename한다.

initRC815UT.ora -> initRC815NEW.ora

2) initSID.ora file의 ifile에 설정한  configuration parameters 파일도 rename한다.

configRC815UT.ora -> contifRC815NEW.ora

3) initSID.ora와 configSID.ora 파일에 예전 ORACLE_SID관련 사항이 있으면
새로운 ORACLE_SID로 모두 변경한다.

예) initSID.ora
OLD) ifile                           = /mnt2/data/RC815UT/pfile/configRC815UT.ora
NEW) ifile                           = /mnt2/data/RC815UT/pfile/configRC815NEW.ora


6. Optional!!!
-> 기존의 SID명을 가진 data file이나 redo log file을 이용시 6번은 skip해도 된다.

만약 ORACLE_SID를 변경하면서 datafile이나 redo log file 이름도 새로운
SID명으로 함께 변경하려면 새로운 SID명의 디렉토리를 생성하여 mv로 기존 datafile과
redo log file을 모두 옮긴뒤 alter 문으로 rename한다.

기존의 /mnt2/data/RC815UT 에 있는 datafile과 redo log file을 새로운 SID명인
RC815NEW 디렉토리로 unix command 'mv'를 이용하여  모두 이동시킨다.

$mnt2/data/RC815UT> cd..
$mnt2/data> mkdir RC815NEW

$mv mnt2/data/RC815UT/redo* /mnt2/data/RC815NEW
$mv mnt2/data/RC815UT/system01.dbf /mnt2/data/RC815NEW
$mv mnt2/data/RC815UT/rbs01.dbf /mnt2/data/RC815NEW
$mv mnt2/data/RC815UT/tools01.dbf /mnt2/data/RC815NEW
$mv mnt2/data/RC815UT/users01.dbf /mnt2/data/RC815NEW
$mv mnt2/data/RC815UT/temp01.dbf /mnt2/data/RC815NEW

$svrmgrl>
SVRMGR> startup mount
SVRMGR> alter database rename file '/mnt2/data/RC815UT/redoRC815UT01.log' to '/mnt2/data/RC815NEW/redoRC815NEW01.log'
...


7. $ORACLE_HOME/dbs 밑에 orapw<OLD_SID> 가 있으면 새로운 password file로 rename 작업을 수행한다.

만약 orapw<OLD_SID>가 없으면 8번은 넘어간다.
그리고 새로운 orapw<NEW_SID>를 생성하고 싶으면 아래 COMMAND를 이용한다.

orapwd file=orapw<NEWSID password=?? entries=<number of user to be
granted permission to start the database instance>


8. db를 startup하고 shutdown한 다음 full backup을 수행한다.
(backup control, redo, data f iles)


9. 변경된 .profile을 적용하기 위해 다음을 수행한다.

$. ./.profile 을 실행하거나
$export ORACLE_SID=RC815NEW
command를 수행한다.


10. db를 startup 한다.


11. select instance from v$thread;
로 변경된 ORACLE_SID를 확인한다.

SVRMGR> select instance from v$thread;
INSTANCE
----------------
RC815NEW
1 row selected.


12. 기존에 SID명이 기록되어있는 파일들을 수정한다.
$ORACLE_HOME/network/admin/listener.ora 의 SID를 RC815NEW 로 수정
$ORACLE_HOME/network/admin/tnsnames.ora의 SID를 RC815NEW 로 수정

반응형
Posted by [PineTree]