10 장, 자동 백업 구성(csstored)에 설명된 자동 백업 기능을 사용한 경우 라이브 데이터베이스가 손상되었다면 핫 백업 복사본을 복원할 수 있습니다.
이 절에서는 서로 다른 두 자동 백업 복원 방법에 대해 설명합니다.
백업을 복원하기 전에 다음을 확인해야 합니다.
활성 데이터베이스를 손상시킨 트랜잭션을 진단했는지 여부
새 아카이브가 손상되지 않도록 손상 트랜잭션을 제거했거나 수정했는지 여부
손상된 데이터베이스를 다른 디렉토리나 이동식 매체에 복사하여 보관했는지 여부반드시 기술 지원부에 문의해야 합니다.
라이브 데이터베이스가 손상된 경우 핫 백업을 가장 먼저 선택해야 합니다. 핫 백업을 복원하려면 다음 단계를 수행합니다.
적용되지 않았거나 손상된 활성 데이터베이스 디렉토리에 쓰기 위해 열려 있는 로그 파일을 식별합니다.
쓰기 위해 열려 있는 로그를 닫습니다. 이 로그에는 최신 트랜잭션이 포함되어 있습니다.
새 (복구) 디렉토리를 만듭니다.
현재 핫 백업 복사본을 새 복구 데이터베이스 디렉토리에 복사합니다.
손상된 라이브 데이터베이스 디렉토리의 log.* 파일을 새 복구 데이터베이스 디렉토리에 복사합니다.
데이터베이스의 아카이브 복사본을 저장하는 경우 경우 활성 데이터베이스에 적용되지 않은 로그를 아카이브 디렉토리에 복사하여 아카이브 백업 복사를 완료합니다.
새 복구 데이터베이스에 대해 지정된 -c -h 옵션과 함께 db_recover를 실행합니다.
예를 들어, 새 복구 디렉토리가 recoverydb인 경우 명령은 다음과 같습니다.
db_recover -c -h recoverydb
log.* 파일을 새 복구 디렉토리에 그대로 둡니다.
db_recover 프로그램이 로그 파일을 새 복구 데이터베이스에 적용했지만 버전 42부터 Berkeley DB는 로그 파일이 그대로 유지되는 것으로 기대합니다.
새 복구 디렉토리에 있는 데이터베이스 파일에 대해 db_verify를 실행합니다.
자세한 내용은 달력 데이터베이스 손상 검사 방법을 참조하십시오.
새 복구 디렉토리에 대해 csdb -v list를 실행합니다.
새 복구 디렉토리가 앞의 세 복구 단계를 모두 통과한 경우 손상된 이전 활성 데이터베이스를 새 복구 데이터베이스로 대체합니다.
새 스냅샷 역할을 하도록 새 라이브 데이터베이스를 핫 백업 디렉토리에 복사합니다.
다음에 정기 스냅샷을 찍을 때까지 모든 새 로그가 이 복사본에 적용됩니다.
Calendar Server를 시작합니다.
새 복구 디렉토리에서 단계가 실패할 경우 다음과 같은 방법으로 손상되지 않은 이전 핫 백업을 식별합니다.
핫 백업에 대한 역방향 작업을 통해 db_verify 및 csdb -v list를 하나씩 차례로 실행하여 손상되지 않은 최신 복사본을 찾습니다.
통과한 첫 번째 핫 백업 복사본을 라이브 데이터베이스 디렉토리에 복원할 수 있습니다.
핫 백업 복원의 설명대로 손상된 라이브 데이터베이스를 손상 없는 핫 백업으로 대체합니다. (먼저 복원하기 전에를 읽으십시오.)
핫 백업과 아카이브 백업이 없는 경우 기술 지원부에 문의하십시오. 아카이브 백업이 있는 경우 아카이브 백업을 복원하려면 다음에 나오는 절차를 따르십시오. (또한 복원하기 전에를 참조하십시오.)
손상되지 않은 핫 백업이 없지만 아카이브 백업과 해당 트랜잭션 로그가 있는 경우 다음 단계를 수행하여 손상되지 않은 최신 아카이브 데이터베이스 버전을 복원할 수 있습니다.
적용되지 않았거나 손상된 활성 데이터베이스 디렉토리에 쓰기 위해 열려 있는 로그 파일을 식별합니다.
쓰기 위해 열려 있는 로그를 닫습니다. 이 로그에는 최신 트랜잭션이 포함되어 있습니다.
새 (복구) 디렉토리를 만듭니다.
최신 아카이브 복사본과 해당 로그 파일을 새 복구 데이터베이스 디렉토리에 복사합니다.
손상된 라이브 데이터베이스 디렉토리의 적용되지 않은 log.* 파일을 새 복구 데이터베이스 디렉토리에 복사합니다.
새 복구 데이터베이스에 대해 지정된 -c -h 옵션과 함께 db_recover를 실행합니다.
예를 들어, 새 복구 디렉토리가 recoverydb인 경우 명령은 다음과 같습니다.
db_recover -c -h recoverydb
log.* 파일을 새 복구 디렉토리에 그대로 둡니다.
db_recover 프로그램이 로그 파일을 새 복구 데이터베이스에 적용했지만 버전 4.2부터 Berkeley DB는 로그 파일이 해당 위치에 그대로 있는 것으로 기대합니다.
새 복구 디렉토리에 있는 데이터베이스 파일에 대해 db_verify를 실행합니다.
자세한 내용은 달력 데이터베이스 손상 검사 방법을 참조하십시오.
새 복구 디렉토리에 대해 csdb -v list를 실행합니다.
새 복구 디렉토리가 앞의 세 복구 단계를 모두 통과한 경우 손상된 이전 활성 데이터베이스를 새 복구 데이터베이스로 대체합니다.
새 스냅샷 역할을 하도록 새 라이브 데이터베이스를 핫 백업 디렉토리에 복사합니다.
Calendar Server를 시작합니다.
새 복구 디렉토리에서 단계가 실패할 경우 다음과 같은 방법으로 손상되지 않은 이전 아카이브 백업을 식별합니다.
아카이브 백업 복사본 역방향 작업을 통해 각각에 대해 세 복구 프로그램을 차례로 실행하여 손상되지 않은 최신 복사본을 찾습니다. db_recover -c-h, db_verify 및 csdb -v list.
통과한 첫 번째 아카이브 복사본을 라이브 데이터베이스 디렉토리에 복원할 수 있습니다.
아카이브 백업을 복원하려면에 표시된 것처럼 손상된 라이브 데이터베이스를 손상 없는 아카이브 백업으로 대체합니다.
아카이브 백업이 수행되지 않으면 기술 지원부에 문의하십시오.