9 장, 자동 백업 구성에서 설명된 자동 백업 기능을 사용한 경우 라이브 데이터베이스가 손상되었다면 핫 백업 복사본을 복원할 수 있습니다.
이 절에서는 서로 다른 두 자동 백업 복원 방법에 대해 설명합니다.
백업을 복원하기 전에 다음을 확인해야 합니다.
활성 데이터베이스를 손상시킨 트랜잭션을 진단했는지 여부
새 아카이브가 손상되지 않도록 손상 트랜잭션을 제거했거나 수정했는지 여부
손상된 데이터베이스를 다른 디렉토리나 이동식 매체에 복사하여 보관했는지 여부반드시 기술 지원부에 문의해야 합니다.
 핫 백업을 복원하려면
핫 백업을 복원하려면라이브 데이터베이스가 손상된 경우 핫 백업을 가장 먼저 선택해야 합니다. 핫 백업을 복원하려면 다음 단계를 수행합니다.
적용되지 않았거나 손상된 활성 데이터베이스 디렉토리에 쓰기 위해 열려 있는 로그 파일을 식별합니다.
쓰기 위해 열려 있는 로그를 닫습니다. 이 로그에는 최신 트랜잭션이 포함되어 있습니다.
새 (복구) 디렉토리를 만듭니다.
현재 핫 백업 복사본을 새 복구 데이터베이스 디렉토리에 복사합니다.
손상된 라이브 데이터베이스 디렉토리의 log.* 파일을 새 복구 데이터베이스 디렉토리에 복사합니다.
데이터베이스의 아카이브 복사본을 저장하는 경우 경우 활성 데이터베이스에 적용되지 않은 로그를 아카이브 디렉토리에 복사하여 아카이브 백업 복사를 완료합니다.
새 복구 데이터베이스에 대해 지정된 -c -h 옵션과 함께 db_recover를 실행합니다.
예를 들어, 새 복구 디렉토리가 recoverydb인 경우 명령은 다음과 같습니다.
db_recover -c -h recoverydb
log.* 파일을 새 복구 디렉토리에 그대로 둡니다.
db_recover 프로그램이 로그 파일을 새 복구 데이터베이스에 적용했지만 버전 4.2부터 Berkeley DB는 로그 파일이 그대로 유지되는 것으로 기대합니다.
새 복구 디렉토리에 있는 데이터베이스 파일에 대해 db_verify를 실행합니다. db_verify를 실행하려면 다음을 수행합니다.
다음 명령을 사용하여 Calendar Server를 중지합니다.
cd /opt/SUNWics5/cal/sbin
./stop-cal
다음 명령을 사용하여 Calendar Server 데이터베이스(csdb)의 다른 복사본을 만듭니다.
cp -Rp /var/opt/SUNWics5/csdb /var/opt/SUNWics5/csdb.db_verify
csdb의 복사본에서 db_verify를 실행합니다.
원본 csdb에서 db_verify를 실행하지 마십시오.
LD_LIBRARY_PATH=/opt/SUNWics5/cal/lib export LD_LIBRARY_PATH cd /opt/SUNWics5/cal/tools/unsupported/bin ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50alarms.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50calprops.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50events.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50gse.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50journals.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50recurring.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50todos.db ./db_verify -o -h /var/opt/SUNWics5/csdb.db_verify ics50deletelog.db
ics50deletelog.db에 대해 -o 옵션을 사용하여 db_verify를 실행합니다.
어떠한 오류 메시지도 표시되지 않으면 db_verify가 성공적으로 실행된 것입니다. 데이터베이스 파일이 손상된 경우 오류 메시지가 표시되지 않습니다. 예를 들면 다음과 같습니다.
| ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50todos.db db_verify:Page 612: last item on page sorted greater than parent entry db_verify: Page 612: incorrect next_pgno 885 found in leaf chain (should be 501) db_verify: Page 0: page 501 encountered a second time on free list db_verify: DB->verify: ics50todos.db: DB_VERIFY_BAD: Database verification failed | 
새 복구 디렉토리에 대해 csdb -v list를 실행합니다.
새 복구 디렉토리가 앞의 세 복구 단계를 모두 통과한 경우 손상된 이전 활성 데이터베이스를 새 복구 데이터베이스로 대체합니다.
새 스냅샷 역할을 하도록 새 라이브 데이터베이스를 핫 백업 디렉토리에 복사합니다.
다음에 정기 스냅샷을 찍을 때까지 모든 새 로그가 이 복사본에 적용됩니다.
Calendar Server를 시작합니다.
새 복구 디렉토리에서 단계가 실패할 경우 다음과 같은 방법으로 손상되지 않은 이전 핫 백업을 식별합니다.
핫 백업에 대한 역방향 작업을 통해 db_verify 및 csdb -v list를 하나씩 차례로 실행하여 손상되지 않은 최신 복사본을 찾습니다.
통과한 첫 번째 핫 백업 복사본을 라이브 데이터베이스 디렉토리에 복원할 수 있습니다.
핫 백업을 복원하려면의 설명대로 손상된 라이브 데이터베이스를 손상 없는 핫 백업으로 대체합니다. (먼저 22.5.8.1 복원하기 전에를 읽으십시오.)
핫 백업과 아카이브 백업이 없는 경우 기술 지원부에 문의하십시오. 아카이브 백업이 있는 경우 아카이브 백업을 복원하려면 다음에 나오는 절차를 따르십시오. (또한 22.5.8.1 복원하기 전에를 참조하십시오.)
 아카이브 백업을 복원하려면
아카이브 백업을 복원하려면손상되지 않은 핫 백업이 없지만 아카이브 백업과 해당 트랜잭션 로그가 있는 경우 다음 단계를 수행하여 손상되지 않은 최신 아카이브 데이터베이스 버전을 복원할 수 있습니다.
적용되지 않았거나 손상된 활성 데이터베이스 디렉토리에 쓰기 위해 열려 있는 로그 파일을 식별합니다.
쓰기 위해 열려 있는 로그를 닫습니다. 이 로그에는 최신 트랜잭션이 포함되어 있습니다.
새 (복구) 디렉토리를 만듭니다.
최신 아카이브 복사본과 해당 로그 파일을 새 복구 데이터베이스 디렉토리에 복사합니다.
손상된 라이브 데이터베이스 디렉토리의 적용되지 않은 log.* 파일을 새 복구 데이터베이스 디렉토리에 복사합니다.
새 복구 데이터베이스에 대해 지정된 -c -h 옵션과 함께 db_recover를 실행합니다.
예를 들어, 새 복구 디렉토리가 recoverydb인 경우 명령은 다음과 같습니다.
db_recover -c -h recoverydb
log.* 파일을 새 복구 디렉토리에 그대로 둡니다.
db_recover 프로그램이 로그 파일을 새 복구 데이터베이스에 적용했지만 버전 4.2부터 Berkeley DB는 로그 파일이 해당 위치에 그대로 있는 것으로 기대합니다.
새 복구 디렉토리에 있는 데이터베이스 파일에 대해 db_verify를 실행합니다.
핫 백업을 복원하려면 절차에 나와 있는 단계는 db_verify를 실행하는 방법을 설명합니다.
새 복구 디렉토리에 대해 csdb -v list를 실행합니다.
새 복구 디렉토리가 앞의 세 복구 단계를 모두 통과한 경우 손상된 이전 활성 데이터베이스를 새 복구 데이터베이스로 대체합니다.
새 스냅샷 역할을 하도록 새 라이브 데이터베이스를 핫 백업 디렉토리에 복사합니다.
Calendar Server를 시작합니다.
새 복구 디렉토리에서 단계가 실패할 경우 다음과 같은 방법으로 손상되지 않은 이전 아카이브 백업을 식별합니다.
아카이브 백업 복사본 역방향 작업을 통해 각각에 대해 세 복구 프로그램db_recover -c-h, db_verify 및 csdb -v list를 차례로 실행하여 손상되지 않은 최신 복사본을 찾습니다.
통과한 첫 번째 아카이브 복사본을 라이브 데이터베이스 디렉토리에 복원할 수 있습니다.
아카이브 백업을 복원하려면에 표시된 것처럼 손상된 라이브 데이터베이스를 손상 없는 아카이브 백업으로 대체합니다.
아카이브 백업이 수행되지 않으면 기술 지원부에 문의하십시오.