SQL Server 2008 の復旧モデルとトランザクション ログの肥大化
SQL Server のトランザクションログは、復旧モデルによって変化し、完全モデルでは肥大化する
復旧モデルは、
完全
一括ログ
単純
があり、復旧モデルの確認/変更は、データベースのプロパティで実行する
SQLコマンドラインでは、ALTER DATABASE で以下のようにする
USE master
ALTER DATABASE [DatabaseName] SET RECOVERY { FULL | BULK_LOGGED | SIMPLE }
完全(Full)モデル(デフォルトの復旧モデル)
トランザクションログへ、すべての処理履歴を完全に記録する
このため、障害発生時に、障害が発生した直前まで、あるいは、指定時刻まで、
データを復旧することができる
一括ログ(Bulk Logged)モデル
トランザクションログへ記録する処理履歴を最小限に抑える
一括(bulk:バルク)操作のパフォーマンスを向上を優先する
インデックスの作成や再構築、
bcp コマンド、
BULK INSERT ステートメント、
Integration Services パッケージ、
SELECT INTO、
INSERT INTO など
このため、障害発生時に、期待通りの復旧ができない可能性がある
単純(Simple)モデル
チェックポイントが完了するごとに、トランザクションログを切り捨てる
ログの肥大化を防ぐことができる
障害発生時に、障害が発生した直前にはデータを復旧できない
(バックアップを取得した時点までの復旧となる)
トランザクションログのバックアップもとれない
※ ログの肥大化で、ディスク領域を圧迫している場合、
完全 から 単純 に切り替えて、バックアップを実行し、ログを切り捨てる
(Windows Server 2008 R2, SQL Server 2008 R2)
タグ:SQL
2015-01-24 18:38
nice!(0)
コメント(0)
トラックバック(0)
コメント 0