ASM 환경에서 Hot Backup & Single DB 구축
흔히 ASM 환경에서 RMAN 을 이용하여 백업을 하고 있습니다.
RMAN 을 이용한 Backup이 아닌 Hot Backup을 이용하여 백업 후 Single DB로 복구 하는 테스트를 해봤습니다.
-- 필요한 VM
ASM 을 사용하는 환경 (Single ASM, RAC(ASM)) , Single DB 구축할 VM (softonly로 설치)
RAC 환경인 경우 양쪽 Node 의 Archive Log 를 가져와야 합니다.
- 백업 받을 File 확인.
SQL) select file_name from dba_data_files;
FILE_NAME
-------------------------------------------------
+DATA/orcl/datafile/users.259.824961691
+DATA/orcl/datafile/undotbs1.258.824961691
+DATA/orcl/datafile/sysaux.257.824961689
+DATA/orcl/datafile/system.256.824961687
+DATA/orcl/datafile/sysaux.278.894653489
+DATA2/orcl/datafile/sysaux02.dbf
+DATA/orcl/datafile/sysaux.272.894653613
+DATA/orcl/datafile/sysaux
+DATA/orcl/datafile/mvtest0101.dbf
+DATA/orcl/datafile/mvtest0202.dbf
+DATA2/orcl/datafile/system.268.875036169
- Begin Backup 수행
$) sqlplus "/as sysdba"
SQL) alter database begin backup;
- SID 변경
$) . oraenv
ORACLE_SID = [ORCL1] ? +ASM1
The Oracle base remains unchanged with value /u01/app/oracle
- File Copy 수행
$asmcmd
ASMCMD> cp +DATA/orcl/datafile/users.259.824961691 /home/oracle/npa/users01.dbf
ASMCMD> cp +DATA/orcl/datafile/undotbs1.258.824961691 /home/oracle/npa/undotbs01.dbf
ASMCMD> cp +DATA/orcl/datafile/sysaux.257.824961689 /home/oracle/npa/sysaux01.dbf
ASMCMD> cp +DATA/orcl/datafile/system.256.824961687 /home/oracle/npa/system01.dbf
ASMCMD> cp +DATA/orcl/datafile/sysaux.278.894653489 /home/oracle/npa/sysaux02.dbf
ASMCMD> cp +DATA2/orcl/datafile/sysaux02.dbf /home/oracle/npa/sysaux05.dbf
ASMCMD> cp +DATA/orcl/datafile/sysaux.272.894653613 /home/oracle/npa/sysaux03.dbf
ASMCMD> cp +DATA/orcl/datafile/sysaux /home/oracle/npa/sysaux04.dbf
ASMCMD> cp +DATA/orcl/datafile/mvtest0101.dbf /home/oracle/npa/mvtest01.dbf
ASMCMD> cp +DATA/orcl/datafile/mvtest0202.dbf /home/oracle/npa/mvtest02.dbf
ASMCMD> cp +DATA2/orcl/datafile/system.268.875036169 /home/oracle/npa/system02.dbf
- End Backup 수행
$) . oraenv
ORACLE_SID = [+ASM1] ? ORCL1
The Oracle base remains unchanged with value /u01/app/oracle
$) sqlplus "/as sysdba"
SQL) alter database end backup;
- Control file Trace 로 내려 받기
SQL) alter backup controlfile to trace '/home/oracle/control.trc';
- Pfile 받기
SQL) create pfile='/home/oracle/pfile.txt' from spfile;
# Single DB 구축할 VM에 Backup 받은 Datafile과 Controlfile Trace File, Pfile,Archive Log 를 FTP 복사 후 진행
- Pfile 수정
% audit_file_dest 폴더를 생성해주어야 한다. controlfile 이 이중화 할 경우 이중화 된 경로 까지 폴더를 생성 해주어야 합니다.
- Control File 생성
% Pfile을 불러오지 못하는 경우 SQL) startup nomount pfile='<LOCATION>'; 수행을 먼저 합니다.
% ControlFile Trace File을 확인 해보면 CREATE CONTROLFILE REUSE DATABASE "TEST" 로 되어 있습니다.
기존에 있던 걸 다시 사용하는 것이 아닌 신규 DB로 구축하는 것 이기 때문에 REUSE -> SET으로 변경해주시면 됩니다.
STARTUP NOMOUNT
CREATE CONTROLFILE SET DATABASE "TEST" RESETLOGS ARCHIVELOG
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 32
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/app/oracle/oradata/test/redo01.log' SIZE 50M BLOCKSIZE 512,
GROUP 2 '/u01/app/oracle/oradata/test/redo02.log' SIZE 50M BLOCKSIZE 512,
GROUP 3 '/u01/app/oracle/oradata/test/redo03.log' SIZE 100M BLOCKSIZE 512,
GROUP 4 '/u01/app/oracle/oradata/test/redo04.log' SIZE 10M BLOCKSIZE 512,
GROUP 5 '/u01/app/oracle/oradata/test/redo05.log' SIZE 10M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/u01/app/oracle/oradata/test/system01.dbf',
'/u01/app/oracle/oradata/test/sysaux05.dbf',
'/u01/app/oracle/oradata/test/users01.dbf',
'/u01/app/oracle/oradata/test/undotbs01.dbf',
'/u01/app/oracle/oradata/test/system02.dbf',
'/u01/app/oracle/oradata/test/sysaux01.dbf',
'/u01/app/oracle/oradata/test/sysaux02.dbf',
'/u01/app/oracle/oradata/test/sysaux03.dbf',
'/u01/app/oracle/oradata/test/sysaux04.dbf',
'/u01/app/oracle/oradata/test/mvtest01.dbf',
'/u01/app/oracle/oradata/test/mvtest02.dbf'
CHARACTER SET AL32UTF8
;
- Recover(Archive Log 적용)
% Archive Log Dest 를 적용 시킨 후 해당 위치에 Archive Log 를 Move 해놓으면 Recover 시 따로 경로를 지정 안해줘도 됩니다.
SQL) alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/arch' scope=both;
SQL) recover database using backup controlfile
ORA-00279: change 55307193 generated at 11/20/2015 00:52:18 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/oradata/orcl/1_3_896153147.dbf
ORA-00280: change 55307193 for thread 1 is in sequence #3
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO (% 자동으로 Archive Log 적용)
% 중간에 Archive Log가 비어있으면 Error 발생합니다. Archive Log를 다 적용 시켰는데도 Archive Log 를 찾을텐데
기존 Redo 에 있는 내용을 찾는 것입니다. 해서 기존 Redo 가 있으면 Redo Log를 적용시켜주면 되고, 없다면 아래의 명령어로 CANCEL 시켜줍니다.
SQL) recover database until cancel using backup controlfile
ORA-00279: change 55307193 generated at 11/20/2015 00:52:18 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/oradata/npa112db/1_3_896153147.dbf
ORA-00280: change 55307193 for thread 1 is in sequence #3
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
CANCEL
Media recovery cancelled.
% 위와 같은 문구가 나왔다면 아래의 명령어로 DB를 OPEN 해주시면 됩니다.
SQL> alter database open resetlogs;
Database altered.
- 상태 확인.
SQL> SELECT INSTANCE_NAME,VERSION,STATUS FROM V$INSTANCE;
INSTANCE_NAME VERSION STATUS
----------------- ---------- ------------
orcl 11.2.0.2.0 OPEN
'DB - ORACLE > Oracle Test Request' 카테고리의 다른 글
[INS-32025] The chosen installation conflicts with software already installed in the given Oracle home (0) | 2015.12.05 |
---|---|
User의 Profile 설정 (0) | 2015.11.20 |
sqlplus 명령어를 통해서 동시에 접속할 때 느려지는 시간 확인하는 법 (0) | 2015.02.16 |
CPU 부하율 90% 이상 발생하는 OS의 PID 번호로 문제가 되는 세션 확인하는 법 (0) | 2015.01.28 |
RAC 2번 노드 재 부팅 작업 (0) | 2015.01.19 |