SQL 2017 TDEデータベースで破損を引き起こすバックアップ圧縮
SQL Server 2017(CU3)では、TDEデータベースの1つでバックアップ圧縮を有効にすると、バックアッププロセスによってデータベースの特定のページが常に破損します。圧縮せずにバックアップを実行しても、破損しません。この問題を確認して再現するために行った手順は次のとおりです。 データベース「TDE_DB1」でDBCC CheckDBを実行します。すべてが良好で、エラーはありません。 圧縮せずにデータベースを正常にバックアップします。RESTORE VERIFYONLYはすべてが良いと言っています。 データベースを「TDE_DB2」として正常に復元します。すべて良好で、DBCC CheckDBはエラーを表示しません。 「TDE_DB1」データベースを圧縮して正常にバックアップします。「バックアップセットへの損傷が検出されました」と言うVERIFYONLYエラーを復元します。 データベースを「TDE_DB2」として復元しようとします。「データベースでページ(1:92454)でエラーが検出されました」というエラー 手順1〜3を繰り返します。すべてが良いです; DROP "TDE_DB1"および "TDE_DB2"; バックアップから「TDE_DB1」を復元します。すべてが良いです; 手順1〜5を繰り返します。同じ結果が得られます。 要約すると、データベースと通常のバックアップは正常に見え、データベースでCHECKDBを実行し、バックアップでVERIFYONLYを実行してもエラーは報告されません。圧縮を使用してデータベースをバックアップすると、破損が発生するようです。 以下にエラーのあるコードサンプルを示します。(注:TDEデータベースで圧縮を使用するには、MAXTRANSFERSIZEが必要です) -- Good, completes with no corruption; BACKUP DATABASE [TDE_DB1] TO DISK = N'E:\MSSQL\Backup\TDE_DB1a.bak' WITH CHECKSUM; RESTORE VERIFYONLY FROM DISK = N'E:\MSSQL\Backup\TDE_DB1a.bak' WITH CHECKSUM; RESTORE DATABASE [TDE_DB2] FROM DISK = 'E:\MSSQL\Backup\TDE_DB1a.bak' WITH …