これが私の問題です。完全な復元を介してデータベースを新しいサーバーに移動してから、差分バックアップ/復元をすばやく実行しようとしています。問題なく完全に復元できますが、差分バックアップを復元すると、次の警告が表示されます。
メッセージ3127、レベル16、状態1、行1復元されたデータベース 'DatabaseName'のファイル 'Database_Log2'は、データベースが単純復旧モデルを使用しており、ファイルが読み取り/書き込みアクセス用にマークされているため、無効な状態のままです。したがって、断片的な復元で回復できるのは読み取り専用ファイルのみです。
データベースは復元され、オンラインと見なされますが、このDEFUNCTファイルが原因でバックアップ操作が失敗し、次のエラーが発生します。
メッセージ3636、レベル16、状態2、行1データベースID 10ファイルID 6の「BackupMetadata」メタデータの処理中にエラーが発生しました。メッセージ3046、レベル16、状態2、行1一貫性のないメタデータが検出されました。可能なバックアップ操作は、WITH CONTINUE_AFTER_ERRORまたはNO_TRUNCATEオプションを使用したログ末尾のバックアップのみです。メッセージ3013、レベル16、状態1、行1 BACKUP DATABASEが異常終了しています。
フルと差分でRESTORE FILELISTONLYを実行すると、同じ出力が得られます。これは、ソースデータベースのsys.database_filesから見たものと一致します。サーバーはSQL2012 SP1のDeveloperエディションです。
フルバックアップを実行してすぐに差分を作成し、これらのファイルを同じサーバー上の別のデータベースに復元すると、まったく同じ問題が発生するため、差分の作成方法に原因があります。完全バックアップを復元して復元すると問題はありません。このファイルが以前このデータベースに存在していたかどうかはわかりませんが、このファイルが以前から存在し、かなり前に削除された可能性は十分にあります。復元されたデータベースでsys.database_filesを照会すると、DEFUNCTファイルにはdrop_lsnの値があり、これはこれを確認しているようです。現在、ソースデータベースには、ファイルグループ(PRIMARY)が1つ、データファイルが4つ、ログファイルが1つしかありません。
何か案は?