[2023.12.20]교육 7일차

망구씨·2023년 12월 20일
0

입사교육

목록 보기
6/7

ㅁㅇㅎADG를 통해 인크리멘탈 백업 할 수 있다?

RMAN 특징
✅ DB 전체, Tablespace단위,Database files, Archive logs, 그리고 Control files들을 Backup 자주
실행되는 operation들은 script로 저장하여 간단하게 실행할 수 있다

✅ Incremental block level backup을 할 수 있다.(백업시간 단축가능)
✅ compress backup을 지원한다.
✅ 사용되어지지 않은 database block들은 skip한다.(백업용량,백업시간 단축가능)
✅ Backup /resotre 시 각 block 에 대한 checksum 을 통해 Corrupted block 을 detection
✅ Online file을 backup 할 때, tablespace 를 backup mode 로 할 필요가 없다.
✅ Backup performance향상 (Parallelization, less redo log 생성) - 비긴 안찍으니까 리두 적게 생성
✅ OS 의 open file limit 을 피하기 위해 open file limit 을 지정할 수 있으며, backup 의 사이즈의 limit
을 줄 수 있다. 또한 file 당, second 당 reads 를 지정해서 부하를 조정할 수 있다.
✅ 블록레벨의 복구가 가능하다.(백업본을 이용해서 블록레벨 복구가 가능하다.복구시간 단축) - 병렬도
✅ RMAN을 이용해서 RAW device간 파일시스템간의 변환이 가능하다.
✅ RMAN을 이용해서 TTS로 이기종간 마이그레이션이 가능하다.
convert 커맨드로 (xTTS)

raw 디바이스 -> 오라클 asm 으로 손쉽게 가능 

✅ Oracle ASM 백업을 지원한다.

asm쪽에 있는 datafile, tablespace를 다 백업 가능

RMAN 사용해야하는 이유

백업 벤더들이 많다.
요새는 백업 업체들이 다 RMAN으로 백업 받는다. 복구를 알맨으로 해야하며 가끔 복원도 해달라고 하심

RMAN 단점

일반 온라인백업보다 cpu 사용률이 증가한다. 장점이 더 많아서 문제되지 않음

catalog db 쓰는 이유

이전에 받았던 백어본ㄴ 정보
매번 작업할때마다 풀 , 인크리 . 컨트롤파일에 풀배겁 받은 정ㅂ가 있어야하는데 없으니까 풀을 해야 인크리를 하는데 풀이 없으면 인크리 안됨. 정보본 없으면 full을 받는다.

SBT

시스템 백업 테이프

Large_pool_size

✅ RMAN에서 Large_Pool를 사용한다.
✅ Disk channel를 사용할때는 다음과 같이 설정해야 한다.
4G 정도 잡으심

기본 설정

CONFIGURE CONTROLFILE AUTOBACKUP ON;
✅ RMAN의 BACKUP이나 COPY 명령등의 수행후 자동으로 control file backup을 수행한다.
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'/DATA/ORABACKUP/%F';
✅ CONTROLFILE의 백업경로를 지정한다.
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
✅ 특정 device에 automatic channel allocation 될때 channel의 갯수를 지정한다.
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data/orabackup/%U';
✅ 백업파일저장 경로 설정한다.

병렬도 설정 없이 backup 받으면 느리기때문에 3,4정도 설정해거 받는다.

백업 확

v$datafile 엥서 바이트 썸하면 database size나옴, 세그먼트 사이즈

select sum(bytes/1024/1024/1024) G from dba_data_files;
-- 2.0068359375

select sum(bytes/1024/1024/1024) G from dba_segments where SEGMENT_TYPE like '%TABLE%';

--0.6483154296875

select sum(bytes/1024/1024/1024) G from dba_segments;
-- 1.39764404296875

select SEGMENT_TYPE,sum(bytes/1024/1024/1024) G from dba_segments group by SEGMENT_TYPE;


select distinct SEGMENT_TYPE from dba_segments;

압축 테스트

swing bench 다운

down

자바11 다운

이걸 까는 이유는 잦바 11가 있어야 swing bench가 실행된다.

압축 파일 해제하고 아래 경로로 들어가기

oewizard.bat 수행

C:\Users\admin\Downloads\swingbench04112023_jdk11\swingbench\winbin>.\oewizard.bat





192.168.0.72 / 192.168.56.1

ts는 user

노멀ts :30기가 정도 제한
빅ts : 제한이없다

SELECT A.TABLESPACE_NAME,
       ROUND(MAXBYTES/1048576,2) "MAX_SIZE(MB)",
       ROUND(A.BYTES_ALLOC / 1024 / 1024, 2) "Current(MB)",
       ROUND(NVL(B.BYTES_FREE, 0) / 1024 / 1024, 2) "Free(MB)",
       ROUND((A.BYTES_ALLOC - NVL(B.BYTES_FREE, 0)) / 1024 / 1024, 2) "Used(MB)",
       ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2) "Free%",
       100 - ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2) "Used%"
FROM   ( SELECT F.TABLESPACE_NAME,
                SUM(F.BYTES) BYTES_ALLOC,
                SUM(DECODE(F.AUTOEXTENSIBLE, 'YES',F.MAXBYTES,'NO', F.BYTES)) MAXBYTES
         FROM DBA_DATA_FILES F
         GROUP BY TABLESPACE_NAME) A,
        ( SELECT F.TABLESPACE_NAME,
                 SUM(F.BYTES)  BYTES_FREE
          FROM DBA_FREE_SPACE F
          GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME (+)
UNION
SELECT TABLESPACE_NAME,
       ROUND(SUM(BYTES_USED + BYTES_FREE) / 1048576, 2),
       ROUND(SUM(BYTES_FREE) / 1048576,2),
       ROUND(SUM(BYTES_USED) / 1048576,2),
       ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) FREE_RATE,
       100 - ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) USED_RATE,
       ROUND(MAX(BYTES_USED + BYTES_FREE) / 1048576, 2)
FROM   SYS.V_$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME
ORDER BY 1;

SELECT * FROM DBA_DATA_FILES ORDER BY file_name;

select file_name, bytes/1024/1024/1024 from dba_data_files;

alter database datafile 'C:\TEST\USERS01.DBF' resize 30g;

or 

alter tablespace users
 add datafile 'C:\TEST\USERS02.DBF' size 500m; //01을 02로 변경

\

qudf별령ㅇ도

temp tablespace관리

수업자료

select * from dba_temp_files;
  1. 사이즈 확인
select tablespace_name, sum(bytes)/1024/1024||'MB' total_size
     from dba_temp_files
     group by tablespace_name;
-- .1240234375GB     
  1. temp tablespace 사이즈 늘리기
 -- 그전에 주소를 확인하기
select tablespace_name,file_name
   from dba_temp_files;
-- C:\TEST\TEMP01.DBF

alter database tempfile 'C:\TEST\TEMP01.DBF'
      resize 1g;  
  1. 확인
select tablespace_name, sum(bytes)/1024/1024/1024||'GB' total_size
     from dba_temp_files
     group by tablespace_name;     

ORA-19809: 복구 파일에 대한 한계를 초과함
ORA-19804: 209715200바이트 디스크 공간을 8232370176바이트 제한에서 회수할 수 없습니다.

./swingbench.bat 수행

C:\Users\admin\Downloads\swingbench04112023_jdk11\swingbench\winbin>.\swingbench.bat

fra영역 없어서 에러

SYS> alter system set db_recovery_file_Dest='C:\oracleDB\arch';

alter system set db_recovery_file_dest_size ='20G' ;scope=spfile sid='*';

C:\oraBase\diag\rdbms\orcl\orcl\trace

controlfile

SQL> alter database backup controlfile to trace
       as '/home/oracle/create_controlfile_20231005.sql';

BCV = 트루카피 (스토리지 복제 솔루션의 하나의 용어- 운영에 비긴 찍고 복제하고 엔드찍기. 이럴경우 운영경우 컨트롤파일 받기)

alter dadtabase backup controfiles to '파일명' ; 

reuserㄴㄴ 겹치니까 되도록 쓰지 안힉

아카이브 로그 파일은 무조건 공유에 넣는다. RAC 환경에서 노드간 공유하기위해!(ASM) 로컬에 두지 말기

GC -Tail 10 C:\ORACLEDB\ARCH\ORCL\ARCHIVELOG\202312_20\O1_MF_1_68_LR4T164N.ARC -Wait

아카이브 파일 SCN 조회

select * from v$archived_log;
<알맨>
backup archivelog all delete input; -- copy하고 지우는거(윈도우에서)
backup archivelog all -- 그냥 지우기
그럼 아카이브로그파일 백업받아놓고 해야한다. 백업 엔지니어 일이지만 우리가 급할때 해야하므로 알고있기
1.delete archivelog;
2.asmcmd 가서 rm으로 지우기

select * from v$archived_log;

block change tracking enable시키기(미해결)

alter database enable block change tracking using file 'C:\oracleDB\bct\testbct.bat'; -- ASM 쓸떄는 디스크명만+ORADATA1

select * from v$block_change_tracking;

유저 locked 풀기

alter user soe account unlock;
alter user soe identified by oracle;

RMAN 으로 백업, 복구 실습

  • datafile, controlfile
create pfile from spfile; -- parameter file 백업함

-- 경로 확인
SQL> select name from v$datafile;
C:\TEST\SYSTEM01.DBF
C:\TEST\SYSAUX01.DBF
C:\TEST\UNDOTBS01.DBF
C:\TEST\USERS01.DBF
C:\TEST\TEST.DBF

select * from v$controlfile;
C:\TEST\CONTROL01.CTL	NO	16384	652	0
C:\ORABASE\FAST_RECOVERY_AREA\ORCL\CONTROL02.CTL	NO	16384	652	0
    
select * from dba_temp_files;
C:\TEST\TEMP01.DBF	1	TEMP	1073741824	131072	ONLINE

select group#, member from v$logfile;
1	C:\TEST\REDO01.LOG
2	C:\TEST\REDO02.LOG
3	C:\TEST\REDO03.LOG
1	C:\TEST\REDO01B.LOG
2	C:\TEST\REDO02B.LOG
3	C:\TEST\REDO03B.LOG

RMAN full, arcive log백업

  1. full backup(컨트롤파일도 포함해서 백업됨)
backup database;

        조각 이름: C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156081516_LR4WBWFD_.BKP
  포함된 SPFILE: 수정 시간: 23/12/20
  SPFILE db_unique_name: ORCL
  포함된 제어 파일: Ckp SCN: 2012661      Ckp 시간: 23/12/20
  1. 아카이브로그파일 백업후 삭제
backup archivelog all delete input; 
  1. backup tablespace system;
backup tablespace system;
23/12/20에서 Control File and SPFILE Autobackup을(를) 시작하는 중입니다.
조각 핸들=C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156082641_LR4XG20P_.BKP 주석=NONE
23/12/20에서 Control File and SPFILE Autobackup을(를) 종료했습니다.
  1. list backup;
RMAN> list backup;


백업 집합 목록
===================


BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
67      Full    1.21G      DISK        00:00:05     23/12/20
        BP 키: 67   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T134500
        조각 이름: C:\TEST\BACKUP\2P2EGPQT_1_1
  백업 집합 67의 데이터 파일 목록
  파일 LV 유형 Ckp SCN    Ckp 시간 Abs Fuz SCN 희소 이름
  ---- -- ---- ---------- -------- ----------- ------ ----
  1       Full 2012644    23/12/20              NO    C:\TEST\SYSTEM01.DBF
  2       Full 2012644    23/12/20              NO    C:\TEST\SYSAUX01.DBF

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
68      Full    2.37G      DISK        00:00:09     23/12/20
        BP 키: 68   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T134500
        조각 이름: C:\TEST\BACKUP\2N2EGPQT_1_1
  백업 집합 68의 데이터 파일 목록
  파일 LV 유형 Ckp SCN    Ckp 시간 Abs Fuz SCN 희소 이름
  ---- -- ---- ---------- -------- ----------- ------ ----
  4       Full 2012638    23/12/20              NO    C:\TEST\USERS01.DBF

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
69      Full    3.70G      DISK        00:00:11     23/12/20
        BP 키: 69   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T134500
        조각 이름: C:\TEST\BACKUP\2O2EGPQT_1_1
  백업 집합 69의 데이터 파일 목록
  파일 LV 유형 Ckp SCN    Ckp 시간 Abs Fuz SCN 희소 이름
  ---- -- ---- ---------- -------- ----------- ------ ----
  3       Full 2012641    23/12/20              NO    C:\TEST\UNDOTBS01.DBF
  5       Full 2012641    23/12/20              NO    C:\TEST\TEST.DBF

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
70      Full    10.30M     DISK        00:00:00     23/12/20
        BP 키: 70   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T134516
        조각 이름: C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156081516_LR4WBWFD_.BKP
  포함된 SPFILE: 수정 시간: 23/12/20
  SPFILE db_unique_name: ORCL
  포함된 제어 파일: Ckp SCN: 2012661      Ckp 시간: 23/12/20

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
71      Full    811.63M    DISK        00:00:01     23/12/20
        BP 키: 71   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T140400
        조각 이름: C:\TEST\BACKUP\2R2EGQUG_1_1
  백업 집합 71의 데이터 파일 목록
  파일 LV 유형 Ckp SCN    Ckp 시간 Abs Fuz SCN 희소 이름
  ---- -- ---- ---------- -------- ----------- ------ ----
  1       Full 2167241    23/12/20              NO    C:\TEST\SYSTEM01.DBF

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
72      Full    10.30M     DISK        00:00:01     23/12/20
        BP 키: 72   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T140401
        조각 이름: C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156082641_LR4XG20P_.BKP
  포함된 SPFILE: 수정 시간: 23/12/20
  SPFILE db_unique_name: ORCL
  포함된 제어 파일: Ckp SCN: 2167253      Ckp 시간: 23/12/20
  1. image copy
    ✅ 현재 데이터베이스를 그대로 카피한다. OS상의 COPY와 동일하다.
    ✅ backup as copy tablespace system;
23/12/20에서 Control File and SPFILE Autobackup을(를) 시작하는 중입니다.
조각 핸들=C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156082833_LR4XN15W_.BKP 주석=NONE
23/12/20에서 Control File and SPFILE Autobackup을(를) 종료했습니다.
키     파일 S 완료 시간 Ckp SCN    Ckp 시간  희소
------- ---- - --------- ---------- --------- ------
26      1    A 23/12/20  2168713    23/12/20  NO
        이름: C:\TEST\BACKUP\DATA_D-ORCL_I-1683174513_TS-SYSTEM_FNO-1_2T2EGR4G
        태그: TAG20231220T140711

db_unique_name ORCL을(를) 가진 데이터베이스에 대한 아카이브된 로그 복사본 목록
=====================================================================

키     스레드 시퀀스     S Low 시간
------- ---- ------- - --------
93      1    112     A 23/12/20
        이름: C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\ARCHIVELOG\2023_12_20\O1_MF_1_112_LR4WWB7X_.ARC

94      1    113     A 23/12/20
        이름: C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\ARCHIVELOG\2023_12_20\O1_MF_1_113_LR4WWQ3P_.ARC
  1. backup as copy database;
23/12/20에서 Control File and SPFILE Autobackup을(를) 시작하는 중입니다.
조각 핸들=C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156082988_LR4XRW6Q_.BKP 주석=NONE
23/12/20에서 Control File and SPFILE Autobackup을(를) 종료했습니다.
  1. list backup;
RMAN> list backup;


백업 집합 목록
===================


BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
67      Full    1.21G      DISK        00:00:05     23/12/20
        BP 키: 67   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T134500
        조각 이름: C:\TEST\BACKUP\2P2EGPQT_1_1
  백업 집합 67의 데이터 파일 목록
  파일 LV 유형 Ckp SCN    Ckp 시간 Abs Fuz SCN 희소 이름
  ---- -- ---- ---------- -------- ----------- ------ ----
  1       Full 2012644    23/12/20              NO    C:\TEST\SYSTEM01.DBF
  2       Full 2012644    23/12/20              NO    C:\TEST\SYSAUX01.DBF

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
68      Full    2.37G      DISK        00:00:09     23/12/20
        BP 키: 68   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T134500
        조각 이름: C:\TEST\BACKUP\2N2EGPQT_1_1
  백업 집합 68의 데이터 파일 목록
  파일 LV 유형 Ckp SCN    Ckp 시간 Abs Fuz SCN 희소 이름
  ---- -- ---- ---------- -------- ----------- ------ ----
  4       Full 2012638    23/12/20              NO    C:\TEST\USERS01.DBF

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
69      Full    3.70G      DISK        00:00:11     23/12/20
        BP 키: 69   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T134500
        조각 이름: C:\TEST\BACKUP\2O2EGPQT_1_1
  백업 집합 69의 데이터 파일 목록
  파일 LV 유형 Ckp SCN    Ckp 시간 Abs Fuz SCN 희소 이름
  ---- -- ---- ---------- -------- ----------- ------ ----
  3       Full 2012641    23/12/20              NO    C:\TEST\UNDOTBS01.DBF
  5       Full 2012641    23/12/20              NO    C:\TEST\TEST.DBF

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
70      Full    10.30M     DISK        00:00:00     23/12/20
        BP 키: 70   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T134516
        조각 이름: C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156081516_LR4WBWFD_.BKP
  포함된 SPFILE: 수정 시간: 23/12/20
  SPFILE db_unique_name: ORCL
  포함된 제어 파일: Ckp SCN: 2012661      Ckp 시간: 23/12/20

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
71      Full    811.63M    DISK        00:00:01     23/12/20
        BP 키: 71   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T140400
        조각 이름: C:\TEST\BACKUP\2R2EGQUG_1_1
  백업 집합 71의 데이터 파일 목록
  파일 LV 유형 Ckp SCN    Ckp 시간 Abs Fuz SCN 희소 이름
  ---- -- ---- ---------- -------- ----------- ------ ----
  1       Full 2167241    23/12/20              NO    C:\TEST\SYSTEM01.DBF

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
72      Full    10.30M     DISK        00:00:01     23/12/20
        BP 키: 72   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T140401
        조각 이름: C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156082641_LR4XG20P_.BKP
  포함된 SPFILE: 수정 시간: 23/12/20
  SPFILE db_unique_name: ORCL
  포함된 제어 파일: Ckp SCN: 2167253      Ckp 시간: 23/12/20

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
73      Full    10.30M     DISK        00:00:00     23/12/20
        BP 키: 73   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T140713
        조각 이름: C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156082833_LR4XN15W_.BKP
  포함된 SPFILE: 수정 시간: 23/12/20
  SPFILE db_unique_name: ORCL
  포함된 제어 파일: Ckp SCN: 2168725      Ckp 시간: 23/12/20

BS 키  유형 LV 크기       장치 유형 경과된 시간 완료 시간
------- ---- -- ---------- ----------- ------------ ---------
74      Full    10.30M     DISK        00:00:00     23/12/20
        BP 키: 74   상태: AVAILABLE  압축됨: NO  태그: TAG20231220T140948
        조각 이름: C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156082988_LR4XRW6Q_.BKP
  포함된 SPFILE: 수정 시간: 23/12/20
  SPFILE db_unique_name: ORCL
  포함된 제어 파일: Ckp SCN: 2168850      Ckp 시간: 23/12/20
  1. backup current controlfile;

  2. backup archivelog all; (현재 모든 아카이브로그 파일을 백업받는다.)

  3. backup archivelog all delete input;
    ✅ Delete input 옵션은 백업받은 모든 아카이브 파일을 삭제한다.
    ✅ 위 옵션으로 삭제된 백업된 아카이브 파일은 복구할 때 필요한 경우 RMAN이 해당 백업된 아카이브파일을
    찾아서 자동으로 복구를 수행한다.

  4. Online redolog backup
    sql명령어로 archive해서 백업할수 있다.

run 
{sql "alter system archive log current";
backup archivelog all;}

23/12/20에서 Control File and SPFILE Autobackup을(를) 시작하는 중입니다.
조각 핸들=C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\AUTOBACKUP\2023_12_20\O1_MF_S_1156083985_LR4YR1F4_.BKP 주석=NONE
23/12/20에서 Control File and SPFILE Autobackup을(를) 종료했습니다.
  1. incremental backup
     Archivelog mode 인 경우 open 상태에서 database, tablespace, datafile 단위에서 incremental
    backup 이 가능하다.
     즉 parent incremental backup 의 SCN 과 비교해서 큰 block 만을 copy 한다.
     Level N incremental Backup은 가장최근의 N 또는 N보다 작은 Backup이후의 변경된 부분만을
    Backup하는 것이다.
     backup incremental level 0 database;

  2. backup incremental level 1 database;

컨트롤 파일 깨졌다고 restore막 하지 말기

RMAN 복구 (recovery)

(list failure, advise failure, repail failure)

1. datafile 삭제

Errors in file C:\ORABASE\diag\rdbms\orcl\orcl\trace\orcl_mz00_5272.trc:
ORA-01110: 1 데이터 파일: 'C:\TEST\SYSTEM01.DBF'
ORA-01565: 'C:\TEST\SYSTEM01.DBF' 파일을 식별하는데 오류가 발생했습니다

restore datafile 1;
recover datafile 1;
backup datafile ;


2. Tablespace recovery

  1. 조회
select tablespace_name from user_tablespaces;   
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TEST
  1. 삭제(UNDOTBS1 삭제)
  2. 복원, 복구
RMAN> restore tablespace UNDOTBS1;
RMAN> recover tablespace UNDOTBS1;
or
RMAN> restore database;
RMAN> recover database;

controlfile 백업, 복구

  1. controlfile 다중화된거 다 지운다.

  2. 디비 내렸다 올리면 nomount 단계까지만 올라온다.

  3. 알맨에서 restore controlfile from autobackup;

  4. alter database mount;

  5. recover database;

미디어 복구를 시작합니다

1 스레드, 156 시퀀스에 대한 아카이브된 로그는 이미 디스크에 C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\ARCHIVELOG\2023_12_20\O1_MF_1_156_LR51NW9W_.ARC 파일로 존재합니다.
1 스레드, 157 시퀀스에 대한 아카이브된 로그는 이미 디스크에 C:\TEST\REDO01.LOG 파일로 존재합니다.
아카이브된 로그 파일 이름=C:\ORABASE\DIAG\RDBMS\ORCL\ORCL\TRACE\ORCL\ARCHIVELOG\2023_12_20\O1_MF_1_156_LR51NW9W_.ARC 스 레드=1 시퀀스=156
아카이브된 로그 파일 이름=C:\TEST\REDO01.LOG 스레드=1 시퀀스=157
매체 복구 완료, 경과 시간: 00:00:00
23/12/20에서 recover을(를) 종료했습니다.
  1. alter database open resetlogs;

resetlogs로 open시 다시 풀백업 받기

backup database;
backup as copy tablespace system; -- 개별로
or
backup as copy database; -- 전체
backup incremental level 0 database;
backup archivelog all delete input;

data, control 둘다 깨졌을 때

복구할 수 있는 모든 최신본 다 적용해서 최대한 최신 까지 복구
restore database;
1. controlfile 2개, system file 지움(data file)
2. shutdown abort;
3. startup; -> nomount 단계이다. control file 없어서.
4. control file 복구

restore controlfile from autobackup;


5. recover database; -> 이거 바로 하면 안올라온다.
6. alter database mount; mount로 오픈(컨트롤파일 장애시 nomount단계임)
7. restore database;
8. recover database;
9. alter database open resetlogs;

controlfile 하나만 깨졌을 때

  1. a,b,c가 있으면 a가 깨짐
  2. b,c둘중 하나를 복사해서 올리던지 or a를 빼고 올리던지

리두로그 없을때

-> 불완전 복구를 위해 시간기반의 불완전 복구 진행

-- 벡업
restore database until time="to_date('2011 APR 15 13:39','yyyy mon dd hh24:mi')";
-- 복구
recover database until time="to_date('2011 APR 15 13:39','yyyy mon dd hh24:mi')";

월 화 수
화요일에 백업받았고 수요일에 꺄졌으면 화요일 백업본 쓰면 되는데 월-화 사이로 복구하굇ㅍ싶으면 화요일 아닌 깨진 시점 이전 백업본으로 해야한다. 근데 알맨으로 하면 최신 백업본으로 복구를 수행한다. (restore database;) 근데 그럼 월-화 이후의 백업본으로 복구를 하는거니까 그 전으로 할거면 시간을 지정해서 불완전 복구를 준다. 알아서 월요일 백업본으로 복구를 해준다.

controlfile type

select name, controlfile_type from v$database;

select controlfile_change#, controlfile_time from v$database;

crosscheck , expired

crosscheck backup;
delete expired 

list backup하면 백업한 정보를 보여주는데 경로들어가면 누가 모르고 지웠을 수 있따. 그런경우 해결해주기 위해

backup check

backup check logical validate database;

위 명령어는 백업없이 체크한다.

RMAN> backup check logical database;

 위 명령어는 백업수행하면 체크한다.

복구 하기 전에 시점 확인하기(알맨 못쓰는 환경)

scn이 포함된 아카이브로그가 3번이면 1-3번 적용 뭐가 필요한지 조회


SQL> select status, 
    resetlogs_change#,
    resetlogs_time,
    checkpoint_change#,
    to_char(checkpoint_time, 'DD-MON-YYYY HH24:MI:SS') as checkpoint_time,
    count(*)
    from v$datafile_header
    group by status, resetlogs_change#, resetlogs_time, checkpoint_change#, checkpoint_time
    order by status, checkpoint_change#, checkpoint_time ;

STATUS  RESETLOGS_CHANGE# RESETLOGS_TIME      CHECKPOINT_CHANGE# CHECKPOINT_TIME         COUNT(*)
------- ----------------- ------------------- ------------------ ------------------ ----------
ONLINE                  1 2016/06/14 11:26:54     13148151406449 26-SEP-2016 21:10:01           552

SQL> select STATUS, ERROR, FUZZY, count(*) from v$datafile_header group by STATUS, ERROR, FUZZY ;

STATUS  ERROR                                                  FUZZY   COUNT(*)
------- --------------------------------------------- ------ ----------
ONLINE                                                              NO         552

SQL> alter database open resetlogs;

디비를 오픈시키려면 마지막에 디비리커버리를 한다. 마지막 시점까지 확인 위해 마지막에 함. 아카이브 저굥햇 서 리셋로그로 오픈시키려면 아카이브 파일이 여러개 나오는데 하나만 나올때까지 퍼지가 나중에는 no로 바뀌어야 한다. 퍼지 yes면 오픈하지 못한다.

리두로그파일엥서 scn조회해보기 시작, 마지막 scn 보이면 해당 아카이브 로그파일이 무엇이 있는지 .
v$recover_file을 조회해서 아무것도 없어야 한다.

profile
Slow and steady wins the race.

0개의 댓글