こんにちはSQL Serverでミラーリングをセットアップするためにトランザクションログファイルをバックアップしようとしています
私は実行します
BACKUP LOG CUSTOMER TO DISK ='K:\JonDB\CUSTOMER.trn' WITH INIT
GO
そして私は受け取ります
Processed 6587361 pages for database 'CUSTOMER', file 'CUSTOMER' on file 1.
Processed 0 pages for database 'CUSTOMER', file 'CUSTOMER_log' on file 1.
Processed 6 pages for database 'CUSTOMER', file 'CUSTOMER_log2' on file 1.
BACKUP DATABASE successfully processed 6587368 pages in 969.013 seconds (46.948 MB/sec).
Msg 3049, Level 16, State 1, Line 5
BACKUP detected corruption in the database log. Check the errorlog for more information.
Msg 3013, Level 16, State 1, Line 5
BACKUP LOG is terminating abnormally.
エラーログはどこにありますか?利用可能なディスク領域がたくさんあるので、これではありません。ミラーリングをセットアップするには、データベースとトランザクションログファイルのバックアップを作成する必要があります。このステップを回避できれば理想的です。
トランザクションログファイルが破損しているようです。これは、構成のミラーリングを続行する前に解決する必要があります。
エラーログはどこにありますか?
SSMSを使用すると、エラーログは管理フォルダーにあります。
ログで詳細を確認し、完全なDBCC CHECKDBを実行して、データベースに問題がないことを確認します。
Paul RandallはSQL Serverのデータ破損の専門家であり、問題の修正について this の記事で言及しています。これを読んで、現在の状況をよく理解します。簡単に言うと、データベースをSIMPLEリカバリモードに切り替え、FULLリカバリモードに戻してから、FULLバックアップを実行することで、状況を解決できる可能性があります。完全バックアップにより、ログチェーンが再開されます。
また、トランザクションログファイルが実行されているハードドライブも検査します。ハードドライブが故障している場合、破損の原因となっている可能性があります。
BACKUPがデータベースログの破損を検出しました。詳細については、エラーログを確認してください。メッセージ3013、レベル16、状態1、行5 BACKUP LOGが異常終了しています。
メッセージは単純明快で、トランザクションログに破損があり、フルバックアップにはある程度のトランザクションログも含まれるため、バックアップは失敗しました。 continue_after_error 句を使用すると、バックアップがうまくいく場合があります。
BACKUP LOG CUSTOMER TO DISK ='K:\JonDB\CUSTOMER.trn' WITH INIT,continue_after_error
GO
注:DBCC CHECKDBはトランザクションログの完全な整合性チェックを実行せず、ログのアクティブな部分のみをチェックします。ログのアクティブな部分がチェックされ、整合性チェックを実行するためのデータベーススナップショットの作成の副産物として使用されます。トランザクションログの整合性チェックはありません。何らかの理由でログレコードが読み取られるときにチェックされるチェックサムのみです。
ログの破損を回避するには、これを読むことをお勧めします SQLmag.comの記事 。 Paulはトランザクションログの破損に対する返答を示しました。彼が提案したのは
トランザクションログのバックアップ中に破損したログレコードが見つかった場合、バックアップは失敗しますが、それだけです。これを回避するには、次のようにします。
データベースを単純復旧モデルに切り替える
チェックポイントを実行する(ログをアクティブにしておく必要があるものがない限り、アクティブログをクリアする必要があります)
完全復旧モデルに戻す
完全バックアップまたは差分バックアップを実行してログバックアップチェーンを再確立する