運用において実際に考えられるメンテナンスプラン
from SQL Serverのバックアップ・リストア仕様
要望(≒ユーザーデータベース)からとるバックアップを整理する
1. 「完全バックアップはとりあえず週1回くらいかな?」
週次でとればいいか
2. 「差分バックアップは毎日とりたいよね?」
日次でとればいいか
3. 「トランザクションログは1時間に1回くらいとっとけばいいかな?」
毎時でとればいいか
4. 「完全バックアップを週1でとると、4世代くらい保持しててほしい」
どこかで古いバックアップを定期的にクリーンアップすればいいか
要望以外で考慮する必要があるもの
1. システムデータベースのバックアップは、どのデータベースをどのくらいの頻度でとるべきか
とりあえずバックアップのサイズを見て、毎日とっても問題ないか確認するか
2. SQL Serverエージェントジョブ履歴とかメンテナンスプランの履歴もクリーンアップしないといけない
これも定期的にクリーンアップする必要がある
上記から、実際に必要なメンテナンスプランとその実行タスクの整理
table:大まかに必要なメンテナンスプランとプランのタスク
No. メンテナンスプラン 間隔 実行タスク 備考
1.1 週次バックアップ 毎週 データベースの整合性確認タスク
1.2 日 データベースのバックアップ タスク 完全 ユーザーDB、システムDB
1.3 0:05 メンテナンス クリーンアップ タスク 不要な完全、差分(bak)の削除
1.4 メンテナンス クリーンアップ タスク 不要なログ(trn)の削除
2.1 日次バックアップ 毎日 データベースの整合性確認タスク
2.2 月~土 データベースのバックアップ タスク 差分 ユーザーデータベース
2.3 0:05 データベースのバックアップ タスク 完全 システムデータベース
3.1 トランザクション 毎日 データベースのバックアップ タスク ログ ユーザーデータベース
. ログバックアップ 0:30
. 1Hおき
4.1 諸々メンテナンス 毎日 メンテナンス クリーンアップ タスク 不要なテキストレポートの削除
4.2 1:00 履歴クリーンアップ タスク 不要なmsdbの履歴
上記のタイミングでバックアップをとるとこうなるはず
table:想定スケジュール
時→ 12 13 ... 23 00 01 ... 23 00 01 ... 23 00 01 ... 23 00 01 ... 23 00 01 ...
週次 ※ ○
日次 ├ == == == ○ ├ == == == ○
. ├ == == == == == == == ○ ├ == == == == == ...
. └ == == == == == == == == == == == ○ └ == == == == == ...
ログ ○ ○ ... ○ ○ ○ ... ○ ○ ○ ... ○ ○ ○ ... ○ ○ ○ ... ○ ○ ○ ...
諸々 ○ ○ ○ ○ ○
横幅の都合で木曜日スタートとした
※は初回完全バックアップなので手動でとった