본문 바로가기

DBMS/ORACLE

RMAN 데이타파일 복구 - ASM 환경

반응형

개요

데이타 파일 완전 복구

구성환경

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