読者です 読者をやめる 読者になる 読者になる

もう悩まない!! SQLServerバックアップ設定! 

SQL Server

♪な~つがすーぎー、かぜあざみぃ~

早いもので8月も後半になってしまいました。夏の終わりを感じる悲しい時期になり、ちょっとしょんぼりしています(´・ω・`)ども、哀しみのuozy★です。 f:id:uozy:20150826142418p:plain


前回はDBが破損した時のヤバい話を書きましたが、今回はそんなヤバい時になっても焦らないようにバックアップ設定のベストプラクティスを書いてみようと思います。

tech.sanwasystem.com

バックアップの種類

SQLServerには3種類のバックアップ方法があります。まずはそれぞれの違いを見ていきましょう。
※この記事は「完全復旧モデル」を採用している環境を対象としています。

①完全バックアップ

→その時点でのデータを全てバックアップします。データを全てバックアップするのでデータ量が増えると必然的に処理時間も増える事になります。

差分バックアップ

→前回の完全バックアップからの差分のみをバックアップします。完全バックアップよりも処理時間が短くなります。

トランザクションログバックアップ

→前回のログバックアップからの差分のみ(増分)をバックアップします。処理時間は最短になります。決して肥大するだけの邪魔な存在ではないです(笑)

トランザクションログとは・・・データベースへの操作と変更情報が記録されたログファイル

各バックアップの動作まとめ

上記の3種類のバックアップの動きをまとめると、以下の図のようになります。 f:id:uozy:20150826171116p:plain

ベストな設定

上記の各バックアップの特性を考慮すると、汎用的に使えるベストプラクティスとしてuozy☆は以下のように設定すればいいのではないかと思っています!

  1. 週一で完全バックアップを取得
  2. 数時間毎にログバックアップを取得
  3. 毎日差分バックアップを取得

f:id:uozy:20150826173657p:plain

上記のように設定しておけば、

f:id:uozy:20150826175053p:plain

例えば、木曜日の7時頃に障害が発生した場合でも①→②→③の順にリストアすれば、少なくとも6時時点の状態に復旧できるわけです。例では6時間毎のログバックアップですが、1時間毎でもいいですし、15分毎でも構いません。これはどこまでやるか論になるので、そこは業務に合わせて貰えればいいと思います。

と、今回はここまで!残り少ない夏を楽しみましょう~!

バイバーイ\(^o^)/