現象
次のような状況で問題が発生します。
-
Microsoft SQL Server 2012 または Microsoft SQL Server 2014 で、2つのトランザクションログファイルを持つデータベースがあること。
-
完全な回復モードで完全バックアップを実行します。
-
いずれかのトランザクションログファイルを削除し、回復モードを [simple recovery] モードに変更します。
-
完全バックアップと差分バックアップを実行します。
-
最新の完全バックアップファイルと差分バックアップファイルを使用して、データベースを復元します。
このとき、次のエラー メッセージが表示されます。
メッセージ3127、レベル16、状態1、行3復元されたデータベース '% s ' のファイル '% s ' は、単純な回復モデルを使用しているため、ファイルは読み取り/書き込みアクセス用とマークされているため、非アクティブ状態のままです。 そのため、段階的な復元によって回復できるのは読み取り専用のファイルだけです。また、削除されたログファイルは sys.master_files でも、[非アクティブ] という状態で再び表示されます。
さらに、データベースをバックアップしようとすると、次のエラーメッセージが表示されます。
メッセージ3636、レベル16、状態2、行1データベース id 16 ファイル id 3 の ' BackupMetadata ' メタデータの処理中にエラーが発生しました。メッセージ3046、レベル16、状態2、行1An のメタデータが検出されました。 使用できるバックアップ操作は、WITH CONTINUE_AFTER_ERROR または NO_TRUNCATE オプションを使用したログ末尾のバックアップだけです。メッセージ3013、レベル16、状態1、行1バックアップデータベースは異常終了しています。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 の累積更新プログラム5 /en-us/help/3011055
SQL Server 2012 SP2 の累積更新プログラム3 /en-us/help/3002049
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。