BACKRUSH  유닉스명령  다음  자료실  Ascii Table   원격접속  달력,시간   프로세스  
지하철노선   RFC문서   SUN FAQ   SUN FAQ1   C메뉴얼   PHP메뉴얼   너구리   아스키월드 아이피서치

글쓴이: 개라클 오라클 백업 개념 조회수: 497


https://m.blog.naver.com/xogstar/221764212462

Oracle Database 백업 & 복구 개념







안녕하세요? ORACLE DBA 이태훈입니다.




오늘은 사용자의 과실이나 자연 재해 등으로 인해

데이터베이스가 정상적으로 운영되지 못하는 상황에 대비하여




데이터베이스를 다시 사용 가능한 상태로 복구하고

사용자의 데이터를 지키기 위해 데이터베이스를 백업하고

백업 본을 이용해 데이터베이스를 다시 복구하는 과정을 알아보겠습니다.










백업의 종류는 Hot Backup과 Cold Backup 크게 두 가지가 있습니다.







Hot Backup은 데이터베이스가 Open된 상태로 받는 백업으로써,

Control File, Data File, Redo Log File 등

데이터베이스 핵심 파일들의 시점 정보(SCN)가 불일치한 백업입니다.







따라서 Hot Backup을 받은 파일을 Restore하고 데이터베이스를 Open 시키려면

반드시 백업받는 시점의 Redo를 적용하는 Recover 작업이 필요합니다.







이때, 복구에 필요한 Redo Log가 온라인 Redo Log File 안에 모두 존재한다면

SMON프로세스가 자동으로 Instance Recovery를 수행하여

Database를 Open 상태로 만들어줄 수 있지만,







필요한 Redo Log가 온라인 Redo Log 외에도

아카이브된 Redo Log까지 참조해야하는 상황이라면

관리자에 의한 Recovery 작업이 수행되어야 Open 상태로 복구를 완료할 수 있습니다.







따라서, Hot Backup은 반드시 Archive Log 모드에서만 수행이 가능합니다.









반대로 Cold Backup은 데이터베이스를 정상종료한 후에 받는 백업으로써

C/D/R의 SCN이 정확히 일치합니다.




따라서 Cold Backup 본을 Restore 한 이후에는

별도의 Recovery 수행 없이 Database를 Open시킬 수 있습니다.




다만, Cold Backup을 받은 시점으로 데이터가 복원되므로

백업받은 시점부터 현재까지의 리두 로그와

현재 시점 정보를 기록하고 있는 컨트롤 파일이 없다면

백업 받은 시점 이후의 데이터는 복원할 수 없습니다.









백업을 받는 방법은 크게 세 가지로 나누어 생각해볼 수 있습니다.




1. 수동 백업 (User-Managed Backup)

2. RMAN 백업 (Recovery Manager)

3. 백업 솔루션을 이용한 백업 (Third Party Solution)





















가. 수동 백업(User-Managed Backup)






수동 백업은 데이터베이스 구동에 반드시 필요한 C/D/R을

별도의 저장매체에 직접 복사하는 작업을 의미합니다.

관리자는 데이터베이스 운영조건(저장 공간의 여유, Archive Log Mode 여부)에 따라

Hot 백업이나, Cold 백업을 선택하여 수행할 수 있습니다.



Cold 백업은 데이터베이스를 정상종료 시킨 후에

OS 상에서 cp 명령어를 통해 C/D/R을 별도의 저장매체에 복사하여 백업을 수행할 수 있습니다.

cp를 통한 복사가 완료되고 다시 데이터베이스를 기동시켜주면 Cold 백업이 완료됩니다.







Hot 백업은 데이터베이스가 Open 상태에서 진행되므로

복사작업 간 데이터 블록의 깨짐 현상(Fractured Block) 발생으로부터 데이터 블록을 복구할 수 있도록

백업 간 BEGIN BACKUP / END BACKUP 명령어를 입력해주어야 합니다.







BEGIN BACKUP 명령어는 데이터베이스가 Archive Log 모드일 때만 동작하므로

Hot Backup을 수행하기 위해선 반드시 데이터베이스가 Archive Log 모드로 상태여야 합니다.

BEGIN BACKUP 명령어를 입력한 후에는 백업 대상인 Data File들을

OS 상에서 cp 명령어를 통해 별도의 저장매체로 복사해줄 수 있습니다.

복사가 끝난 후에는 END BACKUP 명령어를 통해 백업모드를 해제할 수 있습니다.







수동으로 Hot Backup을 수행할 시 가장 중요한 것은

백업을 수행할 당시의 Redo Log File 보존입니다.







데이터베이스가 백업모드로 구동되는 동안 발생했던 모든 데이터 변경내역들이

Redo Log File에 기록되어있기 때문에 백업모드가 종료될 때까지의 Redo Log를

Archive Log File 형태로 변환하여 백업본과 같이 관리해주는 것이 좋습니다.




이 Archive Log File들은 복구 시 가장 먼저 사용되는 키 역할을 하기 때문에

최소한 다음번 백업 작업 수행까지라도 반드시 보존되어야합니다.

만약 백업을 수행할 당시의 Redo Log가 담긴 Archive Log File을 분실하면

정상적인 데이터베이스 복구가 불가능하며,

이는 최악의 경우 데이터 손실로 이어질 수 있기 때문에 반드시 유의해야합니다.













2. RMAN 백업 (Recovery Manager Backup)






RMAN 백업은 위에서 관리자가 수동으로 했던 작업들을

RMAN(Recovery Manager)라는 오라클 패키지를 이용하여 수행하는 방법으로,

단순히 백업을 수행하는 것 외에도

백업 관리, 백업 결과 파일 압축, 백업 수행 시 병렬 처리 수 설정, Block Corruption에 대한 장애 조치 등

수많은 기능을 제공하기 때문에 가장 많이 사용되는 백업 방법입니다.






RMAN을 통한 백업은 Backup set과 Image Copy라는 두 가지 형태로 수행될 수 있습니다.

Backup set은 여러 데이터파일들을 하나의 백업 파일로 묶어서 저장하는 형태이고,

Image Copy는 데이터 파일별로 각각의 백업 파일을 만들어 저장하는 형태입니다.







Backup set은 데이터파일에서 실제로 사용된 블록만 추출하여 백업파일을 만들기 때문에

저장 공간을 아낄 수 있는 장점이 있습니다.

또한, 전체백업 외에도 증분백업을 할 수 있는 기능을 제공하기 때문에

저장 공간이 부족한 시스템에서 자주 쓰이는 백업 방법입니다.

하지만 전체가 아닌 일부의 데이터 파일을 복구해야하는 상황에서도

전체 Backup set을 Restore 해야 하기 때문에 Down Time이 길어질 수 있다는 단점이 있습니다.







Image Copy는 빈 블록을 포함한 전체 데이터 파일을 백업하는 형태입니다.

그렇기 때문에 Backup set에 비해서 저장 공간이 많이 소요된다는 단점이 있습니다.

하지만 일부 데이터 파일의 복구가 필요한 상황에서

필요한 파일만 Restore하면 되기 때문에 Down Time을 최소화할 수 있습니다.







다만 Image Copy는 백업 수행시마다 전체백업을 수행해야하므로

저장 공간에 대한 부담이 상대적으로 크기 때문에 저장 공간에 여유가 있고

장애가 빈번히 발생하는 시스템에서 사용을 고려해볼만한 방법입니다.







관리자는 OS 상에서 rman target / 라는 명령어를 통해 RMAN 프롬프트로 접근할 수 있습니다.

RMAN 프롬프트 상에 BACKUP DATABASE 명령어를 입력해주면

RMAN은 자동으로 Control File과 파라미터 파일, 그리고 전체 데이터 파일을 백업해줍니다.

RMAN은 Control File에 기록된 정보를 기준으로 백업을 수행하고,

백업된 기록을 Control File에 작성하기 때문에 RMAN 백업을 받는 환경에서

Control File의 중요도는 매우 큽니다.

따라서 Control File을 RMAN으로 백업받는 것 외에도

별도의 스크립트를 만들어 Control File을 백업받아두는 것이 좋습니다.



















3. 백업 솔루션을 이용한 백업 (Third Party Solution)







위의 두 가지 백업 방법을 이용하여 유저들이 사용하기 편하도록

Third Party Solution을 만든 프로그램도 존재합니다.

대표적으로 Netbackup, Backup Xcelerator 등의 솔루션이 있으며,

이 솔루션들은 OS 상에서 cp 명령어를 이용하여 백업을 수행하는 방법이나,

RMAN 패키지를 이용하여 백업을 수행하는 방법 등을

소스코드에 넣어 컴파일한 프로그램이라고 생각할 수 있습니다.







감사드리며, 오늘도 좋은 하루 보내시기 바랍니다.😎

관련글 : 없음 글쓴시간 : 2021/05/21 23:38 from 122.32.218.68

  오라클 백업 복구 2 목록보기 새글 쓰기 지우기 응답글 쓰기 글 수정 오라클 백업스크립트  
BACKRUSH  유닉스명령  다음  자료실  Ascii Table   원격접속  달력,시간   프로세스  
지하철노선   RFC문서   SUN FAQ   SUN FAQ1   C메뉴얼   PHP메뉴얼   너구리   아스키월드 아이피서치