トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション



ビギナーボードリーダー:堀川 明

毎月第2、第4木曜日はボードリーダーからのレポートを掲載いたします。
 
   

 2003年4月10日

『CREATE DATABASE文の解説( 9 )』


 データベースを構成するトランザクションログファイルも、必要に応じて複 数個のファイルを作成することができます。

 しかしデータファイルと異なり、トランザクションログファイルは、ファイ ルグループを構成しません。

 SQL Server 7/2000 のトランザクションログアーキテクチャの概念は難しく、 初心者の範囲を超えますので、ここでは詳しく解説することはできませんが、 簡単に説明すると、次のようになります。

( 1 )新しいログの書き込み
L->L->L->L->L->
新しいログは、物理ログファイルの後ろにどんどん追加される。
もし物理ログファイルが一杯になると、ファイルの自動拡張が行われる。
自動拡張が禁止になっていたり、DISK の領域が不足しているときは、1105 番 エラーが発生します。

( 2 )古いログの切捨てとその再利用
 トランザクションログファイルのバックアップを実行し、そのバックアップ を実行した部分のログ部分が不要になり、再利用可能とマーク付けされます。
 あるいは明示的に、トランザクションログのバックアップを取らずにトラン ザクションログが不要だと切捨てすることもあります。

 再利用可能な部分は、すぐに再利用されるのではありません。新しいトラン ザクションログが物理ログファイルの後ろに追加されて行き、ファイルの最後 に到達したときに、次のトランザクションログを書き込むときに、ファイルの 自動拡張をしないかわりに物理ログファイルの先頭に戻って、書き込みします。

L->L->L->L->L->L->L

ログのバックアップを取って、切捨てします。
再利用可能なマークが付きます。
R->R->R->R->R->R->R

新しいログを書き込みます(但し、ファイルの自動拡張は発生しないとします)
R->R->R->R->R->R->R->L->L->L->L

新しいログを書き込みます(但し、ファイルの自動拡張が必要です)。
ここで物理ログファイルの先頭に再利用可能なマークが付いているのでファイ ルの自動拡張を行わずに、ファイルの先頭に戻って書き込みします。
L->L->L->L->R->R->R->L->L->L->L

再利用可能な部分を全部使い果たしました
L->L->L->L->L->L->L->L->L->L->L

ここで初めてファイルの自動拡張が行われ、その拡張された部分に新しいログ レコードが書き込まれます

 もしトランザクションログファイルが複数個存在するときは、ファイルの先 頭に戻る操作をする前に、別の物理ログファイルの使用に移ります。

 データファイルのファイルグループと異なって、トランザクションログファ イルは複数個あったとしても、その利用は、1 個 1 個使われます。

このように、トランザクションログファイルの中は、ローテート(回転)し ながら新しいログ情報が書き込まれて行きます。

 このためトランザクションログの切捨て操作を実行しても、物理的なトラン ザクションログファイルのサイズを小さくするのではなく、トランザクション ログファイルの中のログ部分を再利用可能な領域であると宣言するだけです。

 非常に肥大化したトランザクションログファイルを小さくするためには、ロ グの切捨てした後に、ファイルの圧縮命令を使うことになります。




ボードリーダーレポート トップページへ

 

 
PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.