반응형
개요
데이타 파일 완전 복구
구성환경
CentOS 7.3 oracle 12c(12.2.0.1.0) RAC, Solaris 10/oracle 11g(11.2.0.1.0)
복구 절차
1. RMAN을 이용한 백업
shell> rman target sys/*******@linrac catalog rman/rman@sol11g 복구 관리자: Release 12.2.0.1.0 - Production on 금 12월 13 11:58:27 2019 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. 대상 데이터베이스에 접속됨: LINRAC(DBID=1135695868) 복구 카타로그 데이터베이스에 접속 RMAN> backup database ; 19/12/13에서 backup을(를) 시작하는 중입니다. 모든 복구 카타로그의 resync를 시작합니다 모든 resync가 완성되었습니다 채널을 할당했습니다: ORA_DISK_1 채널 ORA_DISK_1: SID=254 인스턴스=linrac2 장치 유형=DISK ORA_DISK_1 채널: 전체 데이터 파일 백업 집합을 시작하는 중입니다. ORA_DISK_1 채널: 백업 집합에서 데이터 파일을 지정하는 중입니다. 입력 데이터 파일 번호=00003 이름=+DATA/LINRAC/DATAFILE/sysaux.311.975544509 입력 데이터 파일 번호=00001 이름=+DATA/LINRAC/DATAFILE/system.318.975544437 입력 데이터 파일 번호=00005 이름=+DATA/LINRAC/DATAFILE/undotbs2.315.975544969 입력 데이터 파일 번호=00004 이름=+DATA/LINRAC/DATAFILE/undotbs1.314.975544565 입력 데이터 파일 번호=00007 이름=+DATA/LINRAC/DATAFILE/users.317.975544571 채널 ORA_DISK_1: 19/12/13에서 1 조각을 시작하는 중입니다. 채널 ORA_DISK_1: 19/12/13에서 1 조각을 완료했습니다. 조각 핸들=/u01/app/oracle/product/12.2.0/dbhome_1/dbs/07ujag49_1_1 태그=TAG20191213T100142 주석=NONE 채널 ORA_DISK_1: 백업 집합 완료, 경과 시간: 00:00:55 19/12/13에서 backup을(를) 종료했습니다. 19/12/13에서 Control File and SPFILE Autobackup을(를) 시작하는 중입니다. 조각 핸들=/u01/app/oracle/product/12.2.0/dbhome_1/dbs/c-1135695868-20191213-00 주석=NONE 19/12/13에서 Control File and SPFILE Autobackup을(를) 종료했습니다. RMAN> |
2. 사용자 데이타 업데이트
SQL> select * from dept ; DEPTNO DNAME LOC ---------- ---------- ---------- 1 a 1F 2 b 2F SQL> insert into dept values (3,'c','3F') ; 1 개의 행이 만들어졌습니다. SQL> insert into dept values (4,'d','4F') ; 1 개의 행이 만들어졌습니다. SQL> insert into dept values (5,'e','5F') ; 1 개의 행이 만들어졌습니다. SQL> commit ; 커밋이 완료되었습니다. SQL> select * from dept ; DEPTNO DNAME LOC ---------- ---------- ---------- 1 a 1F 2 b 2F 3 c 3F 4 d 4F 5 e 5F SQL> |
3. 장애 발생 유도
*** ASM 인스턴스 접속 SQL> alter diskgroup DATA drop file '+DATA/linrac/DATAFILE/USERS.317.975544571' ; alter diskgroup DATA drop file '+DATA/linrac/DATAFILE/USERS.317.975544571' * ERROR at line 1: ORA-15032: not all alterations performed ORA-15028: ASM file '+DATA/linrac/DATAFILE/USERS.317.975544571' not dropped; currently being accessed **** 데이타베이스가 운영중이라 삭제가 되지 않습니다. SQL> shell> srvctl stop database -d linrac => 데이타베이스 종료 *** ASM 인스턴스 접속후 파일 삭제 SQL> alter diskgroup DATA drop file '+DATA/linrac/DATAFILE/USERS.317.975544571' ; => 파일삭제 Diskgroup altered. SQL> shell> srvctl start database -d linrac => 데이타베이스 구동중에 오류가 발생합니다. PRCR-1079 : ora.linrac.db 리소스 시작을 실패했습니다. CRS-5017: 리소스 작업 "ora.linrac.db start"에서 다음 오류가 발생했습니다. ORA-01157: cannot identify/lock data file 7 - see DBWR trace file ORA-01110: data file 7: '+DATA/LINRAC/DATAFILE/users.317.975544571' . 자세한 내용은 "(:CLSN00107:)"("/u01/app/oracle/diag/crs/rac1/crs/trace/crsd_oraagent_oracle.trc")을(를) 참조하십시오. CRS-2674: 'ora.linrac.db' 시작('rac1')이 실패했습니다. CRS-5017: 리소스 작업 "ora.linrac.db start"에서 다음 오류가 발생했습니다. ORA-01157: cannot identify/lock data file 7 - see DBWR trace file ORA-01110: data file 7: '+DATA/LINRAC/DATAFILE/users.317.975544571' . 자세한 내용은 "(:CLSN00107:)"("/u01/app/oracle/diag/crs/rac2/crs/trace/crsd_oraagent_oracle.trc")을(를) 참조하십시오. CRS-2674: 'ora.linrac.db' 시작('rac2')이 실패했습니다. CRS-2632: 해당 배치 정책을 충족하는 'ora.linrac.db' 리소스를 배치하려고 시도하는 서버가 더 이상 없습니다. shell> |
4. 복구
shell> srvctl start database -d linrac -o mount => MOUNT 모드로 데이타베이스 구동 shell> rman target sys/*******@linrac catalog rman/rman@sol11g => 복구 카달로그 접속 복구 관리자: Release 12.2.0.1.0 - Production on 금 12월 13 11:04:01 2019 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. 대상 데이터베이스에 접속됨: LINRAC(DBID=1135695868, 열리지 않음) 복구 카타로그 데이터베이스에 접속 RMAN> list backup ; => 백업 목록 확인 모든 복구 카타로그의 resync를 시작합니다 모든 resync가 완성되었습니다 백업 집합 목록 =================== BS 키 유형 LV 크기 장치 유형 경과된 시간 완료 시간 ------- ---- -- ---------- ----------- ------------ --------- 469 Full 1.39G DISK 00:00:47 19/12/13 BP 키: 472 상태: AVAILABLE 압축됨: NO 태그: TAG20191213T100142 조각 이름: /u01/app/oracle/product/12.2.0/dbhome_1/dbs/07ujag49_1_1 백업 집합 469의 데이터 파일 목록 파일 LV 유형 Ckp SCN Ckp 시간 Abs Fuz SCN 희소 이름 ---- -- ---- ---------- -------- ----------- ------ ---- 1 Full 6335965 19/12/13 NO +DATA/LINRAC/DATAFILE/system.318.975544437 3 Full 6335965 19/12/13 NO +DATA/LINRAC/DATAFILE/sysaux.311.975544509 4 Full 6335965 19/12/13 NO +DATA/LINRAC/DATAFILE/undotbs1.314.975544565 5 Full 6335965 19/12/13 NO +DATA/LINRAC/DATAFILE/undotbs2.315.975544969 7 Full 6335965 19/12/13 NO +DATA/LINRAC/DATAFILE/users.317.975544571 => 복구 파일 BS 키 유형 LV 크기 장치 유형 경과된 시간 완료 시간 ------- ---- -- ---------- ----------- ------------ --------- 482 Full 18.88M DISK 00:00:02 19/12/13 BP 키: 488 상태: AVAILABLE 압축됨: NO 태그: TAG20191213T100243 조각 이름: /u01/app/oracle/product/12.2.0/dbhome_1/dbs/c-1135695868-20191213-00 포함된 SPFILE: 수정 시간: 19/12/13 SPFILE db_unique_name: LINRAC 포함된 제어 파일: Ckp SCN: 6336016 Ckp 시간: 19/12/13 RMAN> RMAN> restore datafile '+DATA/LINRAC/DATAFILE/users.317.975544571' ; => 파일 리스토어, 파일이름 대신 파일넘버기술해도 됩니다. 19/12/13에서 restore을(를) 시작하는 중입니다. 채널을 할당했습니다: ORA_DISK_1 채널 ORA_DISK_1: SID=29 인스턴스=linrac2 장치 유형=DISK ORA_DISK_1 채널: 데이터 파일 백업 집합 복원을 시작하는 중입니다. 채널 ORA_DISK_1: 백업 집합으로 부터 복원하기 위해서 데이터 파일(들)을 지정합니다 채널 ORA_DISK_1: 데이터 파일 00007을(를) +DATA/LINRAC/DATAFILE/users.317.975544571(으)로 복원하는 중입니다. 채널 ORA_DISK_1: 백업 조각 /u01/app/oracle/product/12.2.0/dbhome_1/dbs/07ujag49_1_1에서 읽는 중입니다. 채널 ORA_DISK_1: 조각 핸들=/u01/app/oracle/product/12.2.0/dbhome_1/dbs/07ujag49_1_1 태그=TAG20191213T100142 채널 ORA_DISK_1: 백업 조각 1을(를) 복원했습니다. 채널 ORA_DISK_1: 복원 완료, 경과 시간: 00:00:01 19/12/13에서 restore을(를) 종료했습니다. 모든 복구 카타로그의 resync를 시작합니다 모든 resync가 완성되었습니다 RMAN> RMAN> recover datafile 7 ; => 파일 복구, 복구시에는 파일넘버를 꼭 기술, 리스토어후에는 파일이름이 변경됨 19/12/13에서 recover을(를) 시작하는 중입니다. 채널 ORA_DISK_1 사용 중 미디어 복구를 시작합니다 매체 복구 완료, 경과 시간: 00:00:01 19/12/13에서 recover을(를) 종료했습니다. RMAN> shell> srvctl stop database -d linrac => 데이타베이스 종료 shell> srvctl start database -d linrac => 데이타베이스 구동 shell> shell> sqlplus hoya/*******@linrac SQL*Plus: Release 12.2.0.1.0 Production on 금 12월 13 11:17:05 2019 Copyright (c) 1982, 2016, Oracle. All rights reserved. 마지막 성공한 로그인 시간: 금 12월 13 2019 09:49:17 +09:00 다음에 접속됨: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> select * from dept ; DEPTNO DNAME LOC ---------- ---------- ---------- 1 a 1F 2 b 2F 3 c 3F 4 d 4F 5 e 5F SQL> |
반응형
'DBMS > ORACLE' 카테고리의 다른 글
오라클 권한(Privilege)과 Role(역할) 조회/생성/부여/회수 (0) | 2019.12.14 |
---|---|
오라클 객체 권한 조회/추가/회수 (0) | 2019.12.14 |
ASM 관리 - RAC 환경 (0) | 2019.12.12 |
RMAN-06059 오류 (0) | 2019.12.12 |
RMAN 백업 - RAC 환경 (0) | 2019.12.12 |