트랜잭션 로깅
Domino® 트랜잭션 로깅은 데이터베이스에 대한 변경사항을 캡처한 후 트랜잭션 로그에 기록합니다. 트랜잭션 로깅은 자원이 사용 가능하거나 자원 사용이 예약된 경우 디스크에 일괄적으로 기록됩니다.
트랜잭션은 서버에서 데이터베이스에 대해 수행된 서로 관련된 변경사항입니다. 예를 들어 새 문서 열기, 텍스트 추가, 문서 저장은 하나의 트랜잭션입니다. 이런 경우, 트랜잭션은 세 개의 암시적인 개별 API 호출인 NotesOpen, NoteUpdate, 및 NoteClose로 구성됩니다.
트랜잭션 로그는 Notes® 데이터베이스에서 수행된 변경사항 레코드로, 로그 범위 및 로그 제어 파일(NLOGCTRL.LFH)로 구성됩니다. 로그 범위는 트랜잭션 로그가 기록되는 로그 파일 중 하나입니다. 트랜잭션 로그는 Sxxxxxxx.TXN 형식입니다. 여기서 xxxxxxx 문자는 해당 서버에 고유한 7자리 번호를 나타냅니다. Domino®에서는 각 익스텐트를 순차적으로 채운 다음에 새 로그에 데이터를 기록합니다. 레코드는 고유한 바이트 스트림 형식으로 보호됩니다. 각 서버에는 트랜잭션 로깅이 가능한 데이터베이스의 모든 변경사항을 확인하는 트랜잭션 로그가 하나씩 있습니다.
트랜잭션 로깅을 사용하여 다음 작업을 수행하십시오.
- 정기적인 백업 스케줄을 설정합니다. 트랜잭션 로그에 의한 백업은 트랜잭션 로깅을 사용하지 않는 전체 데이터베이스 백업보다 신속하고 쉽게 처리됩니다.
- 매체 오류를 복구합니다. 매체 오류가 있는 경우, 가장 최근에 실행된 전체 백업을 테이프에서 복원한 후, 트랜잭션 로그를 사용하여 디스크에 기록되지 않은 데이터를 추가할 수 있습니다.
- 시스템 충돌을 복구합니다. 서버 재시작 시 서버는 트랜잭션 로그 끝까지 실행되어 충돌 당시 디스크에 기록되지 않은 내용도 복구합니다. 기록된 데이터베이스에서 일관성 검사를 할 필요가 없습니다.
- 데이터베이스 보기를 기록합니다. 보기가 재빌드되는 것을 대부분 방지할 수 있습니다.
백업 및 백업 복구를 위해 모든 트랜잭션 로깅 기능을 사용하려면 Domino® C API Toolkit의 백업 및 복구 방법을 사용하는 타사 백업 유틸리티가 필요합니다. 예를 들어 매체 복구의 경우 로깅이 데이터베이스의 업데이트 내용을 계속 추적하는 동안, 타사 유틸리티가 데이터베이스 백업을 실행합니다. 그런 다음 데이터베이스가 손실되면, 트랜잭션 로그를 통해 데이터베이스 백업 이후 발생한 데이터베이스 업데이트 내용을 적용하여 백업을 현재 상태로 만듭니다.
복구를 재시작하기 위해 써드파티 유틸리티가 필요하지 않습니다. 이런 경우 업데이트가 되는 동안 로깅이 계속됩니다. 서버가 충돌한 후 재시작한 경우 다른 방법을 통해 손실될 수 있는 업데이트 내용이 데이터베이스에 기록됩니다. 그러면 서버 충돌에 의한 데이터 손실 및 데이터베이스 손상이 상당히 감소되고, 전체적인 재시작 시간도 데이터베이스 일관성 검사가 필요하지 않기 때문에 감소될 수 있습니다.
DBIID(database instance ID) 이해
트랜잭션 로깅을 활성화할 경우 Domino®에서는 고유한 DBIID(데이터베이스 인스턴스 ID)를 각 Domino® 데이터베이스에 할당합니다. Domino®가 로그에 트랜잭션을 기록할 때 이 DBIID를 포함시킵니다. 복구 시 Domino®는 DBIID를 사용하여 트랜잭션을 데이터베이스에 일치시킵니다.
일부 데이터베이스의 유지관리 활동(예: Compact 명령을 옵션과 함께 사용)으로 인해, Domino®는 이전의 트랜잭션 로그 레코드를 무효화하기 위해 데이터베이스를 재구성합니다. 이런 경우, 새 DBIID가 데이터베이스에 할당됩니다. 이 때부터, 데이터베이스에 대해 로그에 기록된 새 모든 트랜잭션은 새 DBIID를 사용합니다. 데이터베이스에 새 DBIID가 할당된 후 데이터베이스 전체 백업을 새로 수행하십시오. 새로운 전체 백업은 데이터베이스를 현재 상태(새로운 DBIID가 있는 상태)로 확인합니다. 그런 다음 데이터베이스 복구가 필요한 경우, Domino®에는 새 DBIID가 있는 새 트랜잭션만 필요합니다.
Domino® 다음과 같은 경우 새 DBIID를 할당합니다.
- 처음으로 트랜잭션 로깅을 설정합니다.
- Compact 태스크를 옵션(예: 파일 크기 축소 옵션)과 함께 실행합니다.
- 손상된 데이터베이스에서 오류 복구 태스크를 실행합니다.
- Domino® 데이터베이스를 로깅된 서버로 이동합니다.