このセクションでは、トランザクションログの出力フォーマットについて説明します。
通常、clogファイルにはさまざまな種類のログが含まれていますが、その中でOB_LOG_SUBMITが主要なログタイプです。これは、対応するclogログが他のモジュール(clogモジュール以外)からコミットされたログであり、トランザクションモジュールがclogにコミットしたトランザクションログを含むことを示しています。
トランザクションログの出力フォーマットは、主に3つの部分で構成されています:要約(abstract)、ヘッダー(header)、および本文(content)。ログの形式は以下のとおりです:
$$$abstract |header ||| |||content
要約
要約は、ログレコードがログファイル内で保持する関連情報を記述しており、内容の形式は以下のとおりです:
file_id:*** offset:*** len:*** OB_LOG_SUBMIT
次の表は、フィールド名の詳細情報を示しています。
フィールド名 |
説明 |
|---|---|
file_id |
clogログファイル名 |
offset |
ログレコードのログファイル内でのオフセット量 |
len |
ログレコードの長さ |
OB_LOG_SUBMIT |
clogログタイプがOB_LOG_SUBMITの場合 |
ヘッダー
ヘッダーは、ログレコード自体に関する情報を記述しており、内容の形式は以下のとおりです:
ObLogEntryHeader:{magic:***, version:***, type:***, partition_key:***, log_id:***, data_len:***, generation_timestamp:***, epoch_id:***, proposal_id:***, submit_timestamp:***, is_batch_committed:***, is_trans_log:***, data_checksum:***, active_memstore_version:***, header_checksum:***}
次の表は、一部のフィールド名の詳細情報を示しています。
フィールド名 |
説明 |
|---|---|
partition_key |
ログレコードが対応するデータパーティションのパーティション識別子。 |
log_id |
ログレコードの識別子で、ログシーケンス番号と見なすことができます。 |
generation_timestamp_ |
ログレコードが生成された時刻(Unixタイムスタンプ)。 |
epoch_id |
選挙関連変数、選挙サイクル識別子(Unixタイムスタンプ)。 |
proposal_id |
Paxosプロトコル関連変数。 |
is_trans_log |
ログレコードがトランザクションレコードかどうかを示します。 |
本文
本文は、そのログレコードに含まれるデータを記述しています。このログレコードがトランザクションログレコードの場合、内容の形式は以下のとおりです:
Trans: log_type:***, trans_inc:*** {[trans_log]}||| [mutator]
次の表は、一部のフィールド名の詳細情報を示しています。
フィールド名 |
説明 |
|---|---|
log_type |
トランザクションログのタイプ |
trans_id |
トランザクションログに対応するトランザクション識別子 |
[trans_log] |
トランザクションログの関連情報 |
[mutator] |
トランザクションログタイプがredoの場合、このログにはトランザクションの変更内容が含まれます |
注意
OceanBaseデータベースは1つのログレコードのサイズに制限があるため、トランザクションの変更データ量が大きい場合、複数のredoタイプのトランザクションログレコードが生成される可能性があります。