Question & Answer
Question
ロギングに関連する EDU (スレッド) の役割と、これらの EDU でどのようにロギングが行われるのか教えて下さい。
Answer
【ロギングに関連する EDU の役割】
Db2 のトランザクション・ログの操作に関係する代表的な EDU は以下の通りです。
Db2 のトランザクション・ログの操作に関係する代表的な EDU は以下の通りです。
- db2loggr (ロガー)
ログ・ファイルの作成やリネームなど、ログ・ファイルの生成に責任を持ちます。 - db2loggw (ログ・ライター)
ログ・ファイルへのログ・レコードの書き出しに責任を持ちます。 - db2logmgr (ログ・マネージャー)
ログ・ファイルのアーカイブ処理およびリトリーブ処理に責任を持ちます。 - db2lfr (ログ・ファイル・リーダー)
ログ・ファイルの読み取りに責任を持ちます。
【ロギングに関わる処理を行う際の EDU の挙動】
トランザクションログの生成や書き込みなど、主なイベントと概要は以下の通りです。
- データベースの活動化
- 更新系トランザクションの開始
- トランザクションのコミット
- 現在のログ・ファイル (Current Log) の切り替え
- ログ・ファイルのリネーム及び作成
- ログ・ファイルのアーカイブ・ログ・パスへのコピー (アーカイブ)
- オンライン・バックアップ
- データベースの非活動化
- データベースの活動化
データベースが活動化されると、活動化のための処理の中でロギングに関する EDU (db2loggr/db2loggw/db2logmgr) も起動されます。
また、LOGPRIMARY の設定に応じて必要なログ・ファイルが db2loggr により作成されます。
- 更新系トランザクションの開始
UPDATE/INSERT/DELETE 等のデータを更新するステートメントが実行されると、その記録がトランザクション・ログとして書き出されます。
ステートメントを実行するエージェント (db2agent) はログ・バッファーにログ・レコードを記録します。ログ・バッファーが一杯になった時などに、db2loggw は必要に応じてログ・バッファー内のログ・レコードを現在のログ・ファイルに書き出します。
- トランザクションのコミット
db2agent は db2loggw にログ・バッファーからのログ・レコードの書き出しを同期的に依頼します。db2loggw はログ・レコードを現在のログ・ファイルに書き出します。ログの書き出しが完了すると db2loggw はそれを db2agent に通知し、db2agent はログの書き出しの完了をもってコミットを完了します。
- 現在のログ・ファイル (Current Log) の切り替え
db2loggw はログ・レコードを現在のログ・ファイル (Current Log) に書き出しますが、現在のログ・ファイルが一杯になった場合は、ログ・ファイルをクローズして次のログ・ファイルをオープンします。また、db2loggw は現在のログ・ファイルが切り替わったことをリカバリー履歴ファイルに記録します。
- ログ・ファイルのリネームおよび作成
追加のログ・スペースが必要な時に、db2loggr はアクティブ・ログ・パス上にリネーム可能且つアーカイブ・ログ・パスへコピー済みのログ・ファイルが無いかを確認し、存在すればそれをリネームします。存在しない場合は、LOGPRIMARY と LOGSECOND の合計を超えない範囲で新たなログ・ファイルを作成します。LOGPRIMARY と LOGSECOND の合計を超えてしまう場合、ログ・フルのエラーが発生します。
- ログ・ファイルのアーカイブ・ログ・パスへのコピー (アーカイブ)
db2logmgr は、アクティブ・ログ・パス上にクローズされたアーカイブ可能なログ・ファイルが存在するかを非同期に確認します。アーカイブ可能なログ・ファイルが存在すれば、そのログ・ファイルをアーカイブ・ログ・パスにコピーし、アーカイブ処理を行ったことをリカバリー履歴ファイルに記録します。
- オンライン・バックアップ
バックアップ処理の完了後、db2loggr は現在のログ・ファイルの切り捨てを db2loggw に依頼します。INCLUDE LOGS オプションが有効な場合、db2logmgr はロールフォワードに必要なログ・ファイルがアクティブ・ログ・パス上になければアーカイブ・ログ・パスからログ・ファイルをリトリーブします。その後、db2lfr はアクティブ・ログ・パス上のログ・ファイルを読み取り、バックアップ・イメージにログ・ファイルのデータを統合します。
- データベースの非活動化
データベースが非活動化されると、db2loggw は現在のログ・ファイルを切り捨てて、クローズします。その後、他の EDU 同様にロギングに関する EDU も終了します。
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PmcAAE","label":"Recovery-\u003ELogging"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
15 February 2024
UID
swg21655156