다음을 통해 공유


백업 및 복원 시 미디어 오류 검색 및 처리

Microsoft SQL Server 2005 이상 버전에서는 오류가 검색되면 데이터베이스를 복구할 수 있는 옵션을 제공합니다. 중요한 새 오류 검색 메커니즘을 사용하면 백업 작업으로 만들고 복원 작업으로 유효성을 검사할 수 있는 백업 체크섬을 만들 수 있습니다. 작업에서 오류를 검사할지 여부 및 오류 발생 시 작업을 중지할지 아니면 계속할지를 제어할 수 있습니다. 백업에 백업 체크섬이 들어 있으면 RESTORE 문과 RESTORE VERIFYONLY 문으로 오류를 검사할 수 있습니다.

[!참고]

미러된 백업은 미디어 세트 복사본(미러)을 4개까지 제공하고 손상된 미디어로 인한 오류를 복구하기 위한 대체 복사본을 제공합니다. 자세한 내용은 미러된 백업 미디어 세트 사용을 참조하십시오.

BACKUP 중의 체크섬

SQL Server에서는 페이지 체크섬, 로그 블록 체크섬 및 백업 체크섬 등 3가지 체크섬을 지원합니다. 백업 체크섬을 생성할 때 BACKUP은 데이터베이스에서 읽은 데이터가 데이터베이스에 들어 있는 체크섬이나 조각난 페이지 표시와 일치하는지 확인합니다.

BACKUP 문은 필요에 따라 백업 스트림에 대한 백업 체크섬을 계산합니다. 페이지 체크섬 또는 조각난 페이지 정보가 지정한 페이지에 있을 경우 BACKUP은 해당 페이지를 백업하면서 해당 페이지의 체크섬과 조각난 페이지 상태 및 페이지 ID도 확인합니다. 백업 체크섬을 만들 때 백업 작업은 체크섬을 페이지에 추가하지 않습니다. 페이지는 데이터베이스에 있는 대로 백업되고 페이지가 백업에 의해 수정되지 않습니다. 백업 체크섬을 사용하면 백업 체크섬을 확인하고 생성하는 오버헤드로 인해 성능이 저하될 수 있습니다. 작업과 백업 처리량이 모두 영향을 받을 수 있습니다. 그러므로 백업 체크섬은 필요한 경우에만 사용하십시오. 백업하는 동안 체크섬을 생성하기로 결정했으면 시스템에서 실행 중인 동시 작업에 대한 영향과 CPU 오버헤드 발생을 주의 깊게 모니터링하십시오.

[!참고]

BACKUP은 디스크에 있는 원본 페이지와 페이지의 내용을 절대로 수정하지 않습니다.

백업 체크섬 동작을 제어하는 BACKUP 옵션은 다음과 같습니다.

  • CHECKSUM

    백업 작업이 각 페이지의 체크섬과 조각난 페이지를 확인하고 사용 가능할 경우 전체 백업에 대해 체크섬을 생성하도록 요청합니다.

    백업 작업 중 체크섬 확인이 요청된 경우

    • 백업 미디어에 페이지를 쓰기 전에 BACKUP은 페이지 체크섬 또는 조각난 페이지 검색 등 페이지 수준 정보(있는 경우)를 확인합니다. 이 두 가지 정보가 모두 없으면 백업에서 페이지를 확인할 수 없습니다. 페이지는 있는 그대로 포함되고 내용은 전체 백업 체크섬에 추가됩니다.

      [!참고]

      페이지 체크섬과 조각난 페이지 검색에 대한 자세한 내용은 ALTER DATABASE 문의 PAGE_VERIFY 옵션을 참조하십시오. 자세한 내용은 ALTER DATABASE(Transact-SQL)를 참조하십시오.

    • 복원 시의 선택적인 사용에 대해 백업은 페이지 체크섬이 있는지 여부에 관계없이 별도의 백업 체크섬(백업 체크섬)을 생성하여 백업 미디어에 기록합니다.

    • 백업 세트의 플래그는 msdb..backupsethas_backup_checksums 열에서 포함 백업 체크섬으로 지정됩니다. 자세한 내용은 backupset(Transact-SQL)을 참조하십시오.

    [!참고]

    로그 백업의 경우 백업 체크섬이 생성되고 확인됩니다.

  • NO_CHECKSUM

    페이지의 유효성 검사와 백업 체크섬 생성을 사용하지 않도록 명시적으로 설정합니다. 기본 동작입니다.

오류에 대한 응답 제어

CHECKSUMS를 지정하면 확인하는 동안 BACKUP에 페이지 오류가 발생할 경우 백업이 실패합니다. 다음 BACKUP 옵션은 이 동작을 제어합니다.

  • CONTINUE_AFTER_ERROR

    잘못된 백업 체크섬이 발생해도 BACKUP이 계속 수행되도록 지정합니다. 이 경우 BACKUP은 다음을 수행합니다.

    백업 미디어의 백업 세트에 오류가 포함되었다는 플래그를 지정하고 msdb 데이터베이스의 suspect_pages 테이블에 들어 있는 페이지를 추적합니다. 자세한 내용은 suspect_pages(Transact-SQL)를 참조하십시오.

    • SQL Server 오류 로그에 오류를 기록합니다.

    • msdb.backupsetis_damaged 열에 이런 종류의 오류가 들어 있는 것으로 백업 세트를 표시합니다. 자세한 내용은 backupset(Transact-SQL)을 참조하십시오.

    • 백업이 생성되었지만 페이지 오류가 있다는 메시지를 표시합니다.

  • STOP_ON_ERROR

    체크섬에서 확인하지 않을 경우 BACKUP이 실패하도록 지정합니다. 기본 동작입니다.

RESTORE 및 RESTORE VERIFYONLY 중의 체크섬

백업 미디어에 백업 체크섬이 있을 경우 기본적으로 RESTORE 작업과 RESTORE VERIFYONLY 작업은 백업 체크섬과 페이지 체크섬을 모두 확인합니다. 백업 체크섬이 없을 경우 복원 작업은 확인 없이 진행됩니다. 백업 체크섬이 없으면 복원이 페이지 체크섬을 안정적으로 확인할 수 없기 때문입니다.

CHECKSUM과 NO_CHECKSUM 두 옵션을 사용하여 RESTORE 및 RESTORE VERIFYONLY로 체크섬 확인을 처리하는 방법을 다음과 같이 수정할 수 있습니다.

  • CHECKSUM

    복원 작업에 대해 CHECKSUM을 명시적으로 요청하는 경우와 백업에 백업 체크섬이 들어 있는 경우에는 기본적인 경우처럼 백업 체크섬과 페이지 체크섬이 모두 확인됩니다. 그러나 백업 세트에 백업 체크섬이 없으면 복원 작업은 체크섬이 없다는 메시지를 표시하고 수행되지 않습니다.

  • NO_CHECKSUM

    체크섬의 기본 유효성 검사를 복원 작업에서 사용하지 않도록 명시적으로 설정합니다.

오류에 대한 응답 제어

오류 발생 시 복원 작업의 동작 방법을 지정할 수 있도록 다음과 같은 RESTORE 옵션과 RESTORE VERIFYONLY 옵션을 사용합니다.

  • CONTINUE_AFTER_ERROR

    오류가 발생한 후에도 복원 작업을 계속하도록 지정합니다. 이것은 RESTORE VERIFYONLY의 기본 동작입니다. RESTORE VERIFYONLY는 유효성 검사 오류를 보고하고 백업 세트에 대한 정보를 최대한 많이 제공하면서 복원 작업을 계속할 수 있게 합니다. CONTINUE_AFTER_ERROR가 가능한 시점까지 RESTORE를 계속 사용하도록 지정합니다. 이렇게 하면 RESTORE가 잘못된 체크섬을 건너뛰게 됩니다.

  • STOP_ON_ERROR

    첫 번째 오류 발생 시 복원 작업이 중지되고 실패하도록 지정합니다. RESTORE의 기본 동작입니다.