KB5014298 - 해결 방법: RESTORE DATABASE OR RESTORE LOG 실행 중 오류 3241 발생

적용 대상
SQL Server 2019 on Windows

증상

Microsoft SQL Server 2019에서 압축된 데이터베이스를 복원하거나 TDE(투명한 데이터 암호화)가 사용하도록 설정된 데이터베이스의 로그 백업을 복원할 때 다음 오류가 발생할 수 있습니다.

참고

  • 메시지 3241, 수준 16, 상태 18, 줄 <LineNumber>
  • 디바이스 '<백업 파일 이름>'의 미디어 패밀리가 잘못 구성되었습니다. SQL Server에서 이 미디어 패밀리를 처리할 수 없습니다.

해결 방법

이 문제를 해결하려면 다음 방법 중 하나를 사용하여 TDE 사용 데이터베이스의 백업을 압축하지 마세요.

해결 방법

누적 업데이트 정보

이 문제는 SQL Server에 대한 다음 누적 업데이트에서 해결되었습니다.

SQL Server 2019용 누적 업데이트 16

노트 문제를 방지하려면 이 수정 사항과 함께 백업을 만들어야 합니다. 대상 instance에 고정된 CU를 설치하고 수정 없이 생성된 동일한 백업을 복원하려고 하면 작동하지 않습니다.

추가 정보

중요

SQL Server 2019 CU16부터 TDE 사용 데이터베이스의 압축된 백업(데이터베이스 또는 로그)을 만들 때 CU16 이상이 설치된 instance에서만 복원할 수 있는 새로운 백업 형식이 사용됩니다.

버전 CU15 이하의 SQL Server 2019 instance에서 CU16 이상에서 만든 TDE 지원 데이터베이스의 압축된 백업을 복원하지 못하고 다음 오류가 발생합니다.

  • 데이터베이스 복원

    참고

    • 메시지 3013, 수준 16, 상태 1, 줄 <LineNumber>
    • RESTORE DATABASE가 비정상적으로 종료됩니다.
    • 메시지 9004, 수준 21, 상태 1, 줄 <LineNumber>
    • 데이터베이스 'TDE_DB'의 로그를 처리하는 동안 오류가 발생했습니다. 가능하면 백업에서 복원합니다. 백업을 사용할 수 없는 경우 로그를 다시 작성해야 할 수 있습니다.
  • 복원 로그

    참고

    • 위치: mediaRead.cpp:1018
    • 식: readSize <= m_Demand
    • SPID: 84
    • 프로세스 ID: ProcessID
    • 메시지 3013, 수준 16, 상태 1, 줄 <LineNumber>
    • RESTORE LOG가 비정상적으로 종료됩니다.
    • 메시지 3624, 수준 20, 상태 1, 줄 <LineNumber>
    • 시스템 어설션 검사에 실패했습니다. 자세한 내용은 SQL Server 오류 로그를 확인합니다. 일반적으로 어설션 실패는 소프트웨어 버그 또는 데이터 손상으로 인해 발생합니다. 데이터베이스 손상 여부를 검사하려면 DBCC CHECKDB를 실행하는 것이 좋습니다. 설치하는 동안 Microsoft에 덤프를 보내기로 동의한 경우 미니 덤프가 Microsoft로 전송됩니다. 업데이트는 Microsoft에서 최신 서비스 팩으로 제공되거나 기술 지원의 핫픽스를 통해 제공될 수도 있습니다.

노트 RESTORE HEADERONLY 및 RESTORE FILELISTONLY는 이 문제의 영향을 받지 않으며 모든 경우에 작동합니다.

위의 시나리오에 따라 잘못된 전체 백업에 대해 RESTORE VERIFYONLY가 성공적으로 반환될 수 있습니다. 위의 문제에 부딪히지 않고 백업을 복원할 수 있는지 확인하기 위해 RESTORE VERIFYONLY에 의존하지 마세요. 로그 백업에 대한 RESTORE VERIFYONLY는 일반적으로 위에서 설명한 실제 RESTORE LOG와 동일한 오류와 함께 실패합니다.

따라서 TDE 및 백업 압축을 사용하도록 설정할 수 있는 컨텍스트에서 다른 SQL Server 2019 인스턴스에서 백업을 사용하는 모든 SQL Server 2019 인스턴스가 백업 자료를 생성하는 인스턴스보다 먼저 CU16(또는 그 이상)을 받는지 확인하는 것이 중요합니다. 로그 전달 아키텍처는 이러한 상황의 대표적인 예일 것입니다. 먼저 보조 인스턴스를 업그레이드합니다.

압축을 사용하여 트랜잭션 로그 백업을 만든 후에는 일반적으로 압축 없이 다시 만들 수 없습니다. 따라서 이러한 상황에서 로그 전달 주 서버를 SQL Server 2019 CU16 이상으로 업그레이드하면 보조 서버도 업그레이드될 때까지 복원 작업이 중단됩니다.

TDE 사용 데이터베이스의 압축되지 않은 백업, TDE에 대해 사용하도록 설정되지 않은 데이터베이스의 압축 백업 또는 TDE에 대해 사용하도록 설정되지 않은 데이터베이스의 압축되지 않은 백업은 CU16에 도입된 새로운 백업 형식을 사용하지 않으며 모든 버전의 SQL Server 2019 instance에서 복원할 수 있습니다.

따라서 TDE 지원 데이터베이스 자료(전체 백업 또는 트랜잭션 로그 백업)를 SQL Server 2019 CU16 이전의 이전 버전의 SQL Server 인스턴스로 복원하려는 경우 백업 압축을 사용하지 않도록 설정해야 합니다.

SQL Server의 누적 업데이트 정보

SQL Server에 대한 각각의 새로운 누적 업데이트에는 이전 빌드의 모든 핫픽스 및 보안 수정 사항이 포함되어 있습니다. 사용 중인 SQL Server 버전에 맞는 최신 빌드를 설치하는 것이 좋습니다.

SQL Server 2019용 최신 누적 업데이트

상태

Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.

참조 자료

Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어에 대해 알아보세요.