このセクションでは、トランザクションログの出力フォーマットについて説明します。
通常、clogファイルにはさまざまな種類のログが含まれており、その中でもOB_LOG_SUBMITが主要なログタイプです。これは、他のモジュール(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つのログレコードのサイズに制限があるため、1つのトランザクションの変更データ量が大きい場合、複数のredo型のトランザクションログレコードが生成される可能性があります。