web-dev-qa-db-ja.com

古くなった復元されたサーバーのポイントインタイムスナップショットの上から開始するデータベースバックアップでデータベースを復元することはできますか?

SQLインスタンスとデータベースが存在するサーバー全体を定期的にバックアップし、それを別のマシンに復元する場合、その完全なサーバースナップショットが生成された後に(元のサーバーで)行われたデータベースバックアップを使用して、サーバーを最新の状態に復元しましたか?

これを行うには、どのような種類のデータベースバックアップが必要ですか。最新のデータベースの完全バックアップがあればそれで十分だと思いますが、最後の完全バックアップがサーバースナップショットよりも古い(またはさらに古い)場合、その完全バックアップ+差分を使用できますか、トランザクションログなど、新しく復元されたサーバーのサーバースナップショットを最新の状態に戻すために、そのフルバックアップの後に行われたバックアップ

例(簡単にするために、これらの各バックアップが即座に完了すると仮定しましょう):

サーバー1には、毎日5:30 PMに取得された完全なサーバーポイントインタイムスナップショットがあります。

サーバー1のデータベースAは、毎日11:30 PMに夜間完全バックアップを実行します。

また、データベースAには、1日を通して1時間ごとに行われる定期的な差分バックアップがあります。

データベースAでは、1日中15分ごとにトランザクションログのバックアップが取られます。

シナリオ1:

サーバー1は午後11時50分にクラッシュします。

サーバー2は、サーバー1のサーバー全体のポイントインタイムスナップショットバックアップから5:30に復元されますPMその日の前半。

11:30からのデータベースAの(サーバー1からの)完全バックアップを使用できますかPM(クラッシュの20分前))データベースを11:30の状態に復元しますPM次に、11:45 PMトランザクションログバックアップを使用して、データベースを可能な限り最新の状態にします(サーバー2))?

シナリオ2:

サーバー1は午後11時20分にクラッシュします。

サーバー2は、サーバー1のサーバー全体のポイントインタイムスナップショットバックアップから5:30に復元されますPMその日の前半。

前日の夜11時30分にデータベースAの完全バックアップを使用できますかPM(クラッシュ前にまだ1つ取得できなかったため)、その後、1時間ごとの差分バックアップをすべて使用できますか? 11:30の間PM前夜まで11 PMの夜、その後11:15のトランザクションログバックアップにより、データベースを可能な限り最新のものにする(サーバー2)?

上記のいずれかのシナリオで復元するより効率的な方法、および/またはデータベースバックアップのタイプと頻度を処理するより良い方法はありますか?

1
J.D.

完全にサーバースナップショットが生成された後に(元のサーバーで)行われたデータベースバックアップを使用して、新しく復元されたサーバーを最新の状態にできますか?

いいえ。オンラインデータベースを手動でRESTORINGに切り替えてログバックアップを適用したり、データベースを接続してRESTORING状態のままにしたりすることはできません。

これは便利な機能であり、以前に要求されていました。例 ここ を参照してください。

これを行うには、どのような種類のデータベースバックアップが必要ですか。

フルバックアップ、オプションで差分バックアップ、その後のログバックアップ。すべてのログバックアップがそのフルに戻る限り、最新のフルバックアップである必要はありません。完全バックアップと差分バックアップがログチェーンを壊すことはありません。

スナップショットはバックアップではありません。クラッシュから保護し、障害が発生した場合に復元するために、バックアップが必要です。バックアップの頻度は、RPO、RTO、SLA-sによって異なります。

データベーススナップショットはデータベースの完全なコピーではなく、ソースデータベースと同じサーバーインスタンスに存在します。データベースが破損または失われた場合、または別のサーバー上にある場合、スナップショットから復元することはできません。

スナップショットはデータベースの読み取り専用の状態であり、レポート、監査、または開発目的に使用する必要があります。

次のドキュメントをご覧ください。

https://docs.Microsoft.com/en-us/sql/relational-databases/databases/database-snapshots-sql-server?view=sql-server-ver15

0
osiris_v6