달력

11

« 2024/11 »

  • 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

'Archive'에 해당되는 글 2

  1. 2011.01.13 PostgreSQL Log Backup - WAL (Write Ahead Logging)
  2. 2011.01.06 Archive Mode vs No-Archive Mode
어떤 목적으로 DB를 운영한다 하더라도 DB 관리자 입장에서 백업은 항상 최우선이다.
다른 것은 다 용서해도 백업을 못한 것은 용서받기 힘들다.

백업은 복구를 위한 것으로 언제 발생할 지 모르는 장애를 위한 것이다.
장애가 발생한 직전 순간까지 최대한 복구를 하고자면 정교한 백업 복구 전략이 필요하다.

내가 아는 DBMS들은 대부분 백업은 크게 전체, 증분 혹은 차등, 로그 백업 3가지 종류를 지원한다.
단순한 백업 복구 정책이라면 증분 혹은 차등 백업은 생략하고 전체, 로그 백업 2가지로 백업 복구 전략을 수립한다.
백업 복구 정책의 결정 및 수립은 해당 시스템의 서비스레벨과 환경, 비용등을 고려하여 결정한다.

PostgreSQL을 사용하기 앞서 가장 두려운 것은 로그 백업이 되는가? 백업된 로그로 복구가 가능한 것인가? 에 대한 걱정이었다.
다행히도 로그 백업과 유사한 개념의 백업을 8.0 이상에서 지원하는 듯 하다. 현재 9.0.2 가 릴리즈 되었으므로 당연히 지원될 것으로 생각되어 테스트를 수행했다.

PostgreSQL은 전체 백업을 file copy 수준으로 하기 때문에 전체 백업 시점을 지정해 주어야 전체 백업이 언제 되었다는 것을 관리자가 직접 파악하고 해당 이후부터 로그를 리플레이하는 방식을 취하는 것 같다.
메뉴얼을 정독하지 않았기 때문에 해당 내용은 더 확인이 필요할 듯 하다.

대충... 개념은 설정->전체백업 표시->전체백업->전체백업 표시 중단 의 순서로 이루어진다.

설정할 부분은 postgresql.conf 에서 PostgreSQL 시작 parameter의 값을 기본값에서 변경을 해주어야 한다.
wal_level = archive
archive_mode = on
archive_command = '/bin/cp -i %p [log backup path]%f > [log backup result log]'
로그 백업을 위해 설정해 주어야 할 부분은 위의 3가지 정도 이다.
참고로 로그 백업이 될 위치를 결정해 주는 부분이 archive_command 인데... CentOS에서는 의도대로 동작했지만, Windows에 설치된 PostgreSQL은 원하는 위치로 로그 백업이 되지 않았다.(당연히 로그백업 자체는 동작했다. 설정을 잘못했는지 알 수 없었지만... 메뉴얼에 모든 플렛폼에서 동작하는 것을 기대하지 말라고 해서 더 확인해 보기도 찜찜하다.)

아직 복구까지 테스트가 끝난것이 아지만, 로그 백업이 이루어지는 결과(로그가 파일로 생성되는 것)를 확인 할 수 있었다.






:
Posted by Elick
2011. 1. 6. 17:37

Archive Mode vs No-Archive Mode Work/ORACLE2011. 1. 6. 17:37

[No-Archive Mode]
처음 설치시 기본적으로 No-Archive.
사용자의 모든 변경정보가 Redo Log File에 Backup되기 때문에 Redo Log File의 크기와 개수가 Backup할 수 있는 Data의 크기를 좌우.
Redo Log File이 아주 오래 전의 복구 Data를 가지고 있지 않다면 복구를 할 수 없는 단점.
Oracle Server는 사용자들이 입력, 수정, 삭제작업을 수행할 때 마다 발생하는 모든 변경 전 Data와 변경 후 Data들을 Redo Log Buffer 영역에 Backup.
LGWR Background Process는 Redo Log Buffer의 Data들을 영구히 저장할 수 있는 Redo Log File로 저장.
기본적으로 Oracle에서는 3개의 Redo Log File을 제공.
세 번째 Redo Log File도 모두 사용되고 나면, 더 이상 제공되는 Redo Log File이 없기 때문에 다시 첫 번째 Redo Log File에 Backup Data들을 저장.
이 때문에 이전 Backup Data들은 모두 유실되는 문제가 발생.

[Archive Mode]
모든 복구 Data를 가지고 있으며 Database에 문제가 발생했던 시점까지 복구할 수 있는데 이러한 방법을 완전복구하고 한다.
반대로, 복구할 수 있는 Data가 Backup되지 있지 않다면 문제가 생겼던 시점까지 복구할 수 없는데 이러한 방법을 불완전 복구라 한다.
Database에서 발생하는 모든 Data(변경 전 Data와 변경 후 Data)들이 ARCH Process에 의해 항상 Backup되는 Mechanism을 Archive Mode(Archive Mode)라고 한다.
기본적으로 Oracle Database는 No-Archive Mode이며 설치 후 Archive Mode로 전환하는 작업을 수행하는 것을 권고한다.

[Off-Line Backup : Cold Backup, 전체 Backup]
반드시, 정상적인 종료 Option(NORMAL, TRANSACTIONAL, IMMEDIATE)을 사용하여 Oracle Server를 종료.
Oracle Database와 관련된 모든 File (Data File, Control File, Redo Log File, Prameter File)을 같은 시점에 운영체계 명령어를 사용하여 Disk 또는 Tape 장치에 복사.
Off-Line Backup 방법은 No-Archive Mode, Archive Mode 둘다 수행할 수 있다.

[Archive Mode 전환 방법]

* 환경설정
init.ora File에 Archive Mode와 관련된 Prameter를 설정
[LOG_ARCHIVE_START] : ARCH Background Process에 의해 Database를 Archive Mode로 전환. Log switch가 발생하면 자동으로 Archive를 실행
[LOG_ARCHIVE_DEST] : Prameter는 Redo Log File에 대한 Archive File이 생성될 기본 저장 경로를 의미
[LOG_ARCHIVE_DEST_n] : Prameter는 Archive 경로를 여러 군데 지정할 때 사용. 최대 10개
[LOG_ARCHIVE_FORMAT] : 생성될 Archive File의 File 포맷을 결정

Database를 Archive Mode로 전환하기 위해서는 Database를 다시 시작해야 하며, MOUNT 단계에서 명령어를 실행해야 한다.
Archive Mode로 전환 : ALTER DATABASE ARCHIVELOG;
No-Archive Mode로 전환 : ALTER DATABASE NoArchiveLOG;
Archive Mode 확인 : ARCHIVE LOG LIST;
:
Posted by Elick