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 로 수정
'ORACLE > ADMIN' 카테고리의 다른 글
open_cursor의 개수를 보는 방법 (0) | 2006.06.09 |
---|---|
ORA-04031 에러 : 메모리 단편화 (0) | 2006.05.09 |
[Oracle]오라클 어드민 팁 (0) | 2006.03.17 |
Oracle 장애의 유형과 문제해결 (0) | 2006.03.15 |
[펌] isqlplusdba / 브라우저에서 dba 로 접속하기!!! (0) | 2005.05.25 |