Azure Blob Storage から SQL Server 2014 に復元するときに、「RESTORE DATABASE TERMINATED ABNORMALLY」(エラー 3013) が表示されるのはなぜですか?

Azure Blob Storage から SQL Server 2014 に復元するときに、「RESTORE DATABASE TERMINATED ABNORMALLY」(エラー 3013) が表示されるのはなぜですか?

弊社の運用データベース サーバーは、SQL Server 2014 Standard のコマンドを使用して、データベースを夜間に Azure Blob Storage にバックアップしていますBACKUP TO URL。現在、Azure にセットアップした新しい SQL Server VM (これも SQL Server 2014 Standard を実行) にこれらのバックアップを復元しようとしています。次の SQL コマンドを実行しています。

RESTORE DATABASE Example FROM URL = 'https://exampleaccount.blob.core.windows.net/livedbbackups/ExampleBackup-2015-10-15T01-13-08.bak';
WITH CREDENTIAL = 'AzureBackupCredential', 
MOVE 'Example' TO 'C:\Databases\Example.mdf',
MOVE 'Example_log' TO 'C:\Databases\Example.ldf',
STATS = 5;

これを実行すると、復元は 10 分以上実行され、SQL Server Management Studio の [メッセージ] ウィンドウで進行状況を確認できます。ただし、100% 完了する直前に、次のエラー メッセージが表示されます。

Windows NT 6.3 (ビルド 9600: ) (ハイパーバイザー) 上で Microsoft SQL Server 2014 - 12.0.4213.0 (X64) Standard Edition (64 ビット) を実行している Azure VM の出力:

85 percent processed.
90 percent processed.
95 percent processed.
Msg 3013, Level 16, State 1, Line 5
RESTORE DATABASE is terminating abnormally.

「SQL Server エラー 3013」または「SQL Server データベースの復元が異常終了」を Google で検索すると、データベース ファイルが破損しているというページが多数表示されます。ただし、次の操作を実行できるため、破損しているとは思えません。まったく同じSQLSQL Server 2014 Express を実行しているラップトップで、次の出力が表示されます。

Windows NT 6.3 (ビルド 10240: ) (ハイパーバイザー) 上で Microsoft SQL Server 2014 - 12.0.2269.0 (X64) Express Edition (64 ビット) を実行しているラップトップの出力:

85 percent processed.
90 percent processed.
95 percent processed.
100 percent processed.
Processed 233600 pages for database 'Example', file 'Example' on file 1.
Processed 5 pages for database 'Example', file 'Example_log' on file 1.
RESTORE DATABASE successfully processed 233605 pages in 205.802 seconds (8.867 MB/sec).

これらの復元ステートメントは両方とも、まったく同じ URL に対して、変更されていない同じバックアップ ファイルを使用して実行されました。SQL Server Express のローカル コピーで正しく復元された場合、破損しているはずがありません。

私が除外しようとした他の考えられる原因は次のとおりです:

  • バージョンが一致しません- バックアップは、Microsoft SQL Server 2014 - 12.0.2269.0 (X64) Standard Edition (64 ビット) を実行しているサーバーで実行されました。復元は、Microsoft SQL Server 2014 - 12.0.4213.0 (X64) Standard Edition (64 ビット) を実行しているサーバーで実行されました。これらのバージョン番号は、SELECT @@VERSION各サーバーで実行することによって決定されました。
  • パーミッションエラー- と はRESTORE HEADERONLYRESTORE FILELISTONLYデータベースを復元しない Azure VM 上では正常に動作します。
  • フリースペース- Azure VM の C: ドライブには 80 GB を超える空き容量があります。
  • ネットワーク接続- 広範囲にわたるテストは行っていませんが、SQL Server を実行する VM が Azure 内で実行されており、バックアップ ファイルも Azure 内にあることを考えると、かなり安定していると思われます。ファイルのダウンロードとブラウザーでの簡単なテストでは、接続が安定していて高速であることが示されています。

問題のデータベースは、復元すると約 2 GB になり、ログ ファイルは 5 GB になります。同じデータベースの他のバックアップが Azure に保存されており、いずれを復元しようとしても同じ結果になります (ローカル SQL Server Express 2014 では動作しますが、Azure VM SQL Server Standard 2014 では失敗します)。

この原因は何であり、どのように修正すればよいか、何かアイデアはありますか?

答え1

このスレッドは少し古いですが、今日同じ問題に直面しました。しばらく前に BLOB ストレージから復元を実行したところ、すべて正常に動作しましたが、1 週間後に同じ復元を実行すると、「RESTORE DATABASE TERMINATED ABNORMALLY」というエラーが返されました。そこで、バックアップ ファイルを別のコンテナーに移動したところ、問題なく動作しました。

この回避策が他の誰かの役に立つことを願っています。

関連情報