이종철 일반 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
* SID 변경(DB 별 이동)
(DB명 : PK)
-> set oracle_sid=PK
그후 sqlplus "/as sysdba" 로 접근
공유하기
게시글 관리
구독하기눈 처럼 내려와 이슬 되어 방울져 떨어 지다저작자표시 비영리 변경금지
- 카카오스토리
- 트위터
- 페이스북
Posted by ravon
Comment 0
Name
Password
Homepage
only show to admin