Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DBDBDEEP

Oracle Database Backup 본문

Oracle Backup & Recovery

Oracle Database Backup

Kihwane 2022. 7. 27. 18:08

 Media Failure

일반적인 원인 가능한 해결 방법
디스크 드라이브 Failure가 발생한 경우 1. 백업으로부터 손상된 파일 복원
2. 필요한 경우 새 파일의 위치를 데이터베이스에 알림
3. 필요한 리두 정보를 적용하여 파일을 Recovery
디스크 컨트롤러 Failure가 발생한 경우
데이터베이스 작업에 필요한 파일 삭제 또는 손상

- 백업이 꼭 필요하다. 백업이 전혀 있지 않다면, 복구를 전혀 할 수 없다.

 

DB mode

1)noarchived log mode

  - media failure 복구작업을 시도할 수 없다.

2)archived log mode

  - 리두로그 스위치가 일어남과 동시에, 아카이브(리두로그 복사) 까지 하는 모드이다.

  - media failure 복구 작업을 시도할 수 있다.

 

Database 복구 개념

1. Restore (복원)

- 복구하려는 파일의 백업을 데이터베이스에서 사용하는 위치로 복사하는 과정

2. Recovery (복구)

- 복원해온 파일에 로그를 이용해서 백업 이후로 발생한 작업을 적용

- 복원해온 백업 파일이 0레벨 incremental 백업의 경우 1 레벨의 백업을 먼저 적용하고  로그를 적용한다.

3. 완전 복구(Complete Recovery)

- 장애가 발생한 시점까지 모든 Commit 된 데이터를 복구한다.

- 백업파일 + 백업이후 발생한 모든 로그(archived log, Online log)가 필요하다.

- 아카이브 모드에서 가능하다.

4. 불완전 복구

- 장애발생 이전 시점(target Point) 까지 데이터를 복구

- Target point 이후 수행되었던 작업은 손실된다

- 백업파일 + 백업이후 Target Point 까지의 모든 로그가 필요하다

- Archive mode에서 사용


백업 및 Recovery 구성하는 방법

1. 정기적 Backup

- 대부분의 Media Failure에서는 손실되거나 손상된 파일을 백업에서 복원해야 한다.

- 백업파일이 없다면, Recovery가 불가능하다.

 

2. Multiplexing

- 똑같은 로그를 2개 적는 것을 멀티플렉싱이라고 한다.

- 파일 하나를 멤버라고 하며, 멀티플렉싱 된 파일 2개를 묶어서 그룹이라고 한다.

- 멀티플렉싱의 대상은 컨트롤 파일과 log file

 

2_1. Control File 다중화 (Multiplexing)

 - 데이터베이스와 연관된 모든 Control File은 동일하다.

 - 단일 Control File이 손실된 경우에는 어렵지 않게 Recovery 할 수 있지만,

    모든 Control File이 손실된 경우에는 Recovery하기가 훨씬 어렵기 때문에 최소한 두 개의 복사본을 보유하여 모든        Control File이 손실되지 않도록 보호한다.

 

- ASM (RMAN) 으로 다중화

SQL> alter system set control_files =

                      ‘+DATA/orcl/controlfile/current.278.958156659’

                      , ‘+FRA/orcl/controlfile/current.256.796857739’

                      , ‘+DATA’

                         scope=spfile;

SQL> shutdown immediate

SQL> startup nomount

RMAN> restore controlfile from ‘+FRA/orcl/controlfile/current.256.796857739’;

--> ASM은 cp로 안됨.

SQL> alter database mount;

SQL> alter database open;

 

- File System (파일시스템)

SQL> alter system set control_files=

                       ‘/u01/app/oracle/oradata/control01.ctl’

                             , ‘/u01/app/oracle/oradata/control02.ctl’,

                             , ‘/u01/app/oracle/oradata/control03.ctl’

              scope=spfile;

SQL> shutdown immediate

$ cp /u01/app/oracle/oradata/control01.ctl /u01/app/oracle/oradata/control03.ctl

SQL> startup

             ㄴ-->컨트롤 파일 3개의 내용이 모두 같아야한다.

 

2_2. 리두 로그 그룹 다중화 (Multiplexing)

 - Instance failure 또는 Media failure로부터 recovery하려면 리두 로그 정보를 사용하여 데이터 파일을 마지막 커밋     된 트랜잭션으로 롤포워드한다.

  - 리두 로그 그룹이 단일 리두 로그 파일에 의존하는 경우 해당 파일의 손실은 데이터의 손실을 의미한다.

    가능하면 각각 서로 다른 복사본을 보유하도록 한다.

 

SQL> ALTER DATABASE ADD LOGFILE MEMBER '+FRA'  TO GROUP 2;

SQL> ALTER DATABASE ADD LOGFILE MEMBER '/disk1/oradata/trgt/redo02b.log' TO GROUP

필자의 DB 멤버는 하나이다.

3. Archive Mode

작업순서

 

1) 파라미터 파일 수정

2) shutdown immediate

3) startup mount

4) alter database archivelog;

5) alter database open;

 

관련 파라미터

- log_archive_dest_n  

      : archive log file이 저장되는 위치

      : 31개까지 지정 가능

- log_archive_format

      : %t_%s_%r.dbf

- log_archive_max_processes  

     : archiving 을 수행하는 archiver background process 개수

     : 4개가 기본값, 30까지 가능

 

4. Fast Recovery Area

- backup file, archivelog file, flashback logs, multiplexing file 들을 저장하기 위한 storage space

- db_recovery_file_dest

   db_recovery_file_dest_size

- 공간관리를 오라클에게 맡길 수 있음