私は最近、SQL Server 2005 から 2014 までのいくつかの SQL サーバーのデータベース管理を担当しました。ここでは、多くの DB が完全復旧モードになっていますが、適切な継続的なバックアップ メンテナンス プランはこれまでセットアップされていませんでした。
以前の DBA は、トランザクション ログ ファイルが制御不能になり、ハード ドライブがいっぱいになったときにのみ処理していたように思えます。だから私はこれを変更して、問題を完全に修正したいと思います。私はいくつかの本を読んでいて、何をする必要があるかについて十分に理解していると思うので、私の理解を検証し、まだ完全に理解していないいくつかの点を明確にするためにいくつかの質問をしたいと思います. .
そのため、これまでの私の理解に基づいて、完全バックアップから始まる保守計画を作成する必要があります。RTO や許容可能なデータ損失などを把握するために経営陣と話し合う必要があるため、この例では日曜日にフル バックアップを行うと仮定します。
次に、この保守計画に毎晩の差分バックアップを追加します...つまり、月曜日から土曜日までです。これは完全なバックアップであったり、より頻繁に差分を実行したりすることもあると思いますが、これは、私が物事を正しく理解していることを確認するための単なる例です。
次に、トランザクション ログのバックアップについてです。これらをバックアップし、ログ ファイルを切り捨てて、ログ ファイルが継続的に成長して制御不能になるのを防ぐ必要があることがわかりました。これをバックアップする頻度について具体的な推奨事項があるかどうかはわかりませんが、15 分が推奨されているのを見てきました。これは、許容可能なデータ損失ウィンドウにさらに収まると思います。あれは正しいですか?
私が発見したもう 1 つのことは、トランケーションを使用してトランザクション ログ ファイルをバックアップすると、ログ ファイルがすでに制御不能になっている場合、ファイルが縮小されないことです。また、これらのファイルを少なくとも定期的に圧縮するのは良くないことも読みました。一度圧縮すると、再び拡大する必要があり、断片化やパフォーマンスの問題が発生するからです。
今、私は現在、ファイルがすでに制御不能になっている状況にあるので、メンテナンスを行ったら、ログファイルを実際に一度縮小する必要があると思います。その仮定は正しいですか?
また、今回トランザクション ログ ファイルを縮小したら、ログ ファイルの縮小によるパフォーマンスの問題を回避するために実行する必要があるメンテナンス タスクはありますか?
私が疑問に思っていたもう 1 つの質問は、ポイント イン タイム リカバリに関するものです。たとえば、午前 5 時に完全バックアップを作成し、15 分ごとにトランザクション ログ バックアップを作成するとします。午前 6 時 18 分に何か問題が発生したというアラートが表示されます (テーブルが削除されたとしましょう)。したがって、午前 5:00 に発生したフル バックアップで復元し、それを NO RECOVERY モードのままにして、午前 5:15 から午前 6:15 までのすべてのトランザクション ログ バックアップを復元できることを知っていますが、ここに私が興味を持っているものがあります。で... DB が完全復旧モードになっているため、既存のトランザクション ログ ファイル (バックアップではない) を使用して、テーブルが削除される直前の 6:15 から 6:17 の間のすべてのトランザクションをロール フォワードすることはできますか? もしそうなら、あなたはこれをどのようにしますか?トランザクション ログ ファイルを含むハード ドライブを紛失した場合、これは明らかに機能しないと思います。
ありがとう