ORACLE_SID 변경 - ORACLE_SID byeongyeong

이종철 일반 0 3,943 2004.11.24 15:34

=====================
SID 및 DBNAME 변경(1)
=====================

7.3 이상 DBNAME을 변경하는 방법을 정리한것이며 ORA7에서 OLA7으로 변경하는 경우를 가정함

1. Spool datafiles, redo-log files, control files

svrmgr> spool datafile.lst
svrmgr> select * from dba_data_files;
svrmgr> select * from v$logfile;
svrmgr> select * from v$controlfile;
svrmgr> spool off

2. Shutdown database normal

3. Backup database

모든 control files, log files, datafiles를 backup한다.

4. Moving datafiles and redo-log files

svrmgr> startup mount

모든 datafile과 redo-log file들 중,  ORACLE_SID부분을 변경하고자 하는 file에 대하여, mv 또는 cp를 실행한다. 즉,

mkdir /home1/oradata/OLA7
mv /home1/oradata/ORA7/redoORA701.log  /home1/oradata/OLA7/redoOLA701.log

와 같이 OS상에서 변경한 후 아래와 같이 DB상에서 변경을 반영시키면 된다.

svrmgr> alter database rename file ‘’
                                to ‘’;

svrmgr> alter database open;

5. Backup controlfile

svrmgr> alter database backup controlfile to trace;

그러면, configORA7.ora에 있는 user_dump_dest에 지정된 directory에 ora_27264.trc와 같은 이름으로 file이 생성된다.

6. Shutdown database normal

7. initORA7.ora를 initOLA7.ora로 copy한다.
mkdir /home1/app/oracle/admin/OLA7/pfile

cp /home1/app/oracle/admin/ORA7/pfile/initORA7.ora \
  /home1/app/oracle/admin/OLA7/pfile/initOLA7.ora

ln -s /home1/app/oracle/admin/OLA7/pfile/initOLA7.ora \
  /home1/app/oracle/product/7.3.2/dbs/initOLA7.ora

8. initOLA7.ora를 편집한다.

ifile = /home1/app/oracle/admin/ORA7/pfile/configORA7.ora를
ifile = /home1/app/oracle/admin/OLA7/pfile/configOLA7.ora로 고치고,

mts_service= ORA7을 mts_service = OLA7으로 고친다.

그 외에 SID를 사용하는 곳이 있으면, memo를 해놓은 후 변경한다.

9. configORA7.ora를 configOLA7.ora로 copy한다.

cp /home1/app/oracle/admin/ORA7/pfile/configORA7.ora \
  /home1/app/oracle/admin/OLA7/pfile/configOLA7.ora

ln -s /home1/app/oracle/admin/OLA7/pfile/configOLA7.ora \
  /home1/app/oracle/product/7.3.2/dbs/configOLA7.ora

10. configOLA7.ora를 편집한다.

dbname = ORA7을 dbname = OLA7으로 고친다.

control_files 와 dump_dest의 path중 ORA7으로 되어있는 부분을 OLA7으로 고친다.

=====================
SID 및 DBNAME 변경(2)
=====================

11. 해당 dump destination directory를 create한다.

mkdir /home1/app/oracle/admin/OLA7/bdump
mkdir /home1/app/oracle/admin/OLA7/udump
mkdir /home1/app/oracle/admin/OLA7/cdump
mkdir /home1/app/oracle/admin/OLA7/create

12. 환경 변수 변경 (.profile을 편집, 실행)

ORACLE_SID=ORA7 ---> ORACLE_SID=OLA7
$ . ./.profile

13. controlfile 생성 script를 편집 (및줄친 부분이 추가하거나 변경한 부분임)

STARTUP NOMOUNT
CREATE CONTROLFILE SET DATABASE "OLA7" RESETLOGS NOARCHIVELOG
  MAXLOGFILES 32
  MAXLOGMEMBERS 2
  MAXDATAFILES 30
  MAXINSTANCES 8
  MAXLOGHISTORY 800
LOGFILE
 GROUP 1 '/home1/ora732/oradata/OLA7/redoOLA701.log'  SIZE 500K,
 GROUP 2 '/home1/ora732/oradata/OLA7/redoOLA702.log'  SIZE 500K,
 GROUP 3 '/home1/ora732/oradata/OLA7/redoOLA703.log'  SIZE 500K
DATAFILE
 '/home1/ora732/oradata/OLA7/syst01OLA7.dbf',
 '/home1/ora732/oradata/OLA7/rbs01OLA7.dbf',
 '/home1/ora732/oradata/OLA7/temp01OLA7.dbf',
 '/home1/ora732/oradata/OLA7/tools01.dbf',
 '/home1/ora732/oradata/OLA7/user01OLA7.dbf',
 '/home1/ora732/oradata/OLA7/syst02OLA7.dbf',
 '/home1/ora732/oradata/OLA7/syst03OLA7.dbf',
 '/home1/ora732/app/oracle/product/7.3.2/dbs/HFS.dbf',
 '/home1/ora732/app/oracle/product/7.3.2/dbs/HFS2.dbf'
;
# Recovery is required if any of the datafiles are restored backups,
# or if the last shutdown was not normal or immediate.
RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
# Database can now be opened normally.
ALTER DATABASE OPEN RESETLOGS;

14. svrmgrl에서 connect internal한 후 위의 script를 실행

만일 새로운 control file들이 이전 것과 같은 directory에 있다면, rename을 한 후
script를 실행하도록 한다.

15. Recovery를 실시한 후 open한다.

위 script가 돌면서 control file생성 후 recovery가 수행될 때,
Specify log: [ for suggested | AUTO | FROM logsource | CANCEL ]
라는 message가 나오면,
CANCLE
을 입력한다.

16. 나머지 file들에서 ORACLE_SID를 변경

$ORACLE_HOME/network/admin/listener.ora의 SID를 OLA7으로 고친다.
listener.ora에 USE_CKPFILE_LISTENER=TRUE로 되어있는 경우는 listener를 내린
상태에서 listener.ckp를 편집하여 SID를 ORA7에서 OLA7으로 바꾸어준 후 다시 구동하면 된다.

$ORACLE_HOME/network/admin/tnsnames.ora의 SID를 OLA7으로 고친다.
3 tiers인 경우는 tp user의 ORACLE_SID를 수정한다.
2 tiers인 경우는 client의 tnsnames.ora에서 ORACLE_SID를 수정한다.
여러 서버를 dblink로 연결한 경우 각각의 tnsnames.ora를 모두 수정한다.

17. 시스템이 정상적으로 운영되는지 확인한 후 불필요한 directory/file들을 삭제한다.

2013. 11. 26. 14:10

Oracle Sid 변경(DB별 이동)

2013. 11. 26. 14:10 in Oracle

ORACLE_SID 변경 - ORACLE_SID byeongyeong

* SID 변경(DB 별 이동)

  (DB명 : PK)

  -> set oracle_sid=PK


그후 sqlplus "/as sysdba" 로 접근



공유하기

게시글 관리

구독하기눈 처럼 내려와 이슬 되어 방울져 떨어 지다

저작자표시 비영리 변경금지

  • 카카오스토리
  • 트위터
  • 페이스북

Posted by ravon

ORACLE_SID 변경 - ORACLE_SID byeongyeong
Oracle Sid 변경(DB별 이동)

Comment 0

Name

Password

Homepage

only show to admin