다음을 통해 공유


손상된 백업에 의해 발생한 SQL Server 복원 오류에 응답

백업 미디어가 손상된 경우 복원 오류가 발생합니다. 복원 오류는 운영 체제에서 보고하거나 또는 체크섬에서 검색할 수 있습니다. 두 경우 모두 다음과 같은 3개의 옵션이 있습니다.

  • 오류 교정 후 복원 작업을 다시 시작합니다.

  • 오류가 있더라도 복원을 계속한 다음 복원이 완료된 후에 데이터베이스를 복구합니다.

  • 복원 작업을 중단한 다음 손상된 백업을 피하는 대체 복구 계획을 사용합니다.

[!참고]

미디어 세트 또는 백업 세트는 Microsoft Tape Format으로 해석할 수 있도록 최소한의 올바른 정보를 포함해야 합니다. 그렇지 않은 경우 RESTORE가 중지되고 해당 백업 형식이 잘못되었다고 표시됩니다.

오류 교정 및 복원 작업 다시 시작

다음과 같은 방법으로 오류를 교정할 수 있습니다.

  • 테이프 장치에서 오류가 발생한 경우 테이프 드라이브를 청소하거나 교체합니다.

  • 디스크 장치인 경우 장치 오류를 해결한 다음 손상된 파일을 교체할 수 있습니다.

  • 미디어 세트가 미러된 경우 손상된 미디어에 해당하는 미디어를 다른 미러에서 가져와 교체할 수 있습니다.

오류가 있어도 복원 계속

주의 사항주의

RESTORE 문의 WITH CONTINUE_AFTER_ERROR를 지정하면 데이터베이스의 복구가 시도됩니다. 그러나 데이터베이스 복구를 막는 여러 유형의 손상이 있습니다. 이 경우 다른 모든 방법을 사용하기 전에 CONTINUE_AFTER_ERROR 옵션을 사용하는 것이 좋습니다.

CONTINUE_AFTER_ERROR 옵션은 오류가 있더라도 복원을 계속하여 가능한 부분만 복원하며 이를 통해 롤포워드가 발생하고 후속 트랜잭션 로그 백업을 적용할 수 있습니다. 롤포워드에서 오류가 발생하여 대상 지정 시간까지 도달하지 못한 경우 이 오류는 로그에 나타납니다. 가능한 경우, 복구 지점에서 데이터베이스는 온라인 상태가 됩니다. 하지만 복구가 완료되지 않으면 데이터베이스는 오프라인 상태가 됩니다.

손실된 데이터의 양은 발생한 오류에 따라 다릅니다. 예를 들어 페이지에 불량 체크섬이 있는 경우 해당 페이지만 문제시되고 미디어를 계속 읽어 작업을 진행합니다. 반면 테이프 장치에서 I/O 오류가 발생하면 해당 오류를 지나 복원을 계속할 수 없으며 따라서 테이프의 나머지 부분은 복원할 수 없습니다.

오류가 발생해도 복원을 계속하도록 설정된 경우 확인이 실패한 페이지는 디스크에 기록되며 suspect_pages 테이블 및 오류 로그에 기록됩니다.

최상의 방법: WITH CONTINUE_AFTER_ERROR를 사용하여 데이터를 복원한 후 오류에 대한 세부 정보를 위해 오류 로그를 검사합니다. 또한 RESTORE 문에서 직접 가져오는 모든 메시지를 저장하고 분석합니다.

오류와 관계없이 계속하려면

기본 RESTORE 구문은 다음과 같습니다.

RESTORE DATABASE database_name FROM backup_device WITH CONTINUE_AFTER_ERROR, [ NORECOVERY ]

오프라인 데이터베이스 관리

오류가 있어도 계속 진행된 복원의 경우 복원 시퀀스 마지막에 DBCC CHECKDB를 사용하여 데이터베이스를 복구할 수 있습니다. RESTORE CONTINUE_AFTER_ERROR를 사용한 후 CHECKDB를 가장 일관성 있게 실행하려면 DBCC CHECKDB 명령에 WITH TABLOCK 옵션을 사용하는 것이 좋습니다. 자세한 내용은 DBCC CHECKDB(Transact-SQL)를 참조하십시오. 모든 복구 옵션을 사용할 수 있습니다. 필요한 최소 복구 수준을 알려면 복구 옵션을 사용하지 않고 DBCC CHECKDB를 실행합니다. 정보가 충분하지 않아 데이터베이스를 복구할 수 없는 특수한 경우도 있습니다.

ALTER DATABASE 명령의 EMERGENCY 옵션을 사용하여 데이터베이스를 응급 모드로 설정하면 데이터를 현재 상태에서 제한적으로 액세스할 수 있습니다.