オンラインログの分析
このセクションでは、OBServerノードのIPアドレスを10.10.10.1、ポート番号を2881と仮定し、ユーザーroot@mysqlの2024-01-09 16:23:00から現在時刻までのログを分析し、分析結果を/data/logminer_output/ファイルに書き込む例を示します。具体的な操作コマンドは以下のとおりです:
[admin@test001 ~]$ oblogminer -c "10.10.10.1:2881" -u "root@mysql" -p "***" -s "2024-01-09 16:23:00" -o "file:///data/logminer_output/"
アーカイブログの分析
このセクションでは、アーカイブディレクトリ/data/log_archive/下の2024年1月9日16時23分00秒から2024年1月10日10時00分00秒までのログを分析し、分析結果を/data/logminer_output/に書き込む例を示します。具体的な操作コマンドは以下のとおりです:
[admin@test001 ~]$ oblogminer -a "file:///data/log_archive/" -s "2024-01-09 16:23:00" -e "2024-01-10 10:00:00" -o "file:///data/logminer_output/"
実行結果の例
コマンドを実行すると、設定された出力ファイルディレクトリに以下のファイルが生成されます:
./logminer_output/
├── 0.csv
├── CHECKPOINT
├── COMMIT_INDEX
├── CONFIG
└── META
└── 0.meta
ディレクトリの紹介
このセクションでは、ディレクトリ内のさまざまなファイルの役割について簡単に説明します。
0.csv:出力データファイル。デフォルトでCSV形式で保存されますが、コマンドラインで
-f/--record_formatを設定することでデータファイルの形式を指定できます。ファイル名は0から始まる連続する整数で増加します。1つのデータファイルが出力された後、METAディレクトリにそのデータファイルに対応するメタファイルが書き込まれます。ファイル名はデータファイルと同じです。CHECKPOINT:解析の進捗を記録します。
COMMIT_INDEX:データファイルに対応するタイムスタンプを記録するインデックスファイルです。
CONFIG:今回のログ解析に関する設定情報を記録します。
META:1つのデータファイルが出力された後、METAディレクトリにそのデータファイルに対応するメタファイルが書き込まれます。ファイル名はデータファイルと同じで、拡張子は
.metaです。対応するデータファイルのタイムスタンプとデータサイズを記録します。内容の例は以下のとおりです:MIN_COMMIT_TS=1704788579999999 MAX_COMMIT_TS=1704788633200501 DATA_LEN=1066
データファイルの紹介
コマンド実行時に -f/--record_format を指定してデータファイルの形式を設定できます。設定可能な形式は、CSV、JSON、REDO_ONLY、UNDO_ONLY のいずれかです。各形式のデータファイルについて以下に説明します。
CSV形式
データファイルの拡張子は
.csvです。内容の例は以下のとおりです。具体的なフィールドの意味については、後の フィールドの紹介 を参照してください。TENANT_ID,TRANS_ID,PRIMARY_KEY,TENANT_NAME,DATABASE_NAME,TABLE_NAME,OPERATION,OPERATION_CODE,COMMIT_SCN,COMMIT_TIMESTAMP,SQL_REDO,SQL_UNDO,ORG_CLUSTER_ID 1004,0,"","mysql","test","","DDL",4,1704788606147445567,"2024-01-09 16:23:26.147445","create table t(a int, b varchar(100))","",1 1004,42590,"","","","","BEGIN",5,1704788614963917100,"2024-01-09 16:23:34.963917","","",1 1004,42590,"","mysql","test","t","INSERT",1,1704788614963917100,"2024-01-09 16:23:34.963917","INSERT INTO `test`.`t` (`a`, `b`) VALUES (1, 'abc');","DELETE FROM `test`.`t` WHERE `a`=1 AND `b`='abc' LIMIT 1;",1 1004,42590,"","","","","COMMIT",6,1704788614963917100,"2024-01-09 16:23:34.963917","","",1 1004,42604,"","","","","BEGIN",5,1704788619155575003,"2024-01-09 16:23:39.155575","","",1 1004,42604,"","mysql","test","t","DELETE",3,1704788619155575003,"2024-01-09 16:23:39.155575","DELETE FROM `test`.`t` WHERE `a`=1 AND `b`='abc' LIMIT 1;","INSERT INTO `test`.`t` (`a`, `b`) VALUES (1, 'abc');",1 1004,42604,"","","","","COMMIT",6,1704788619155575003,"2024-01-09 16:23:39.155575","","",1JSON形式
データファイルの拡張子は
.jsonです。各レコードは1行に出力され、改行文字(\n)で区切られます。JSON形式のデータファイルの内容の例は以下のとおりです。具体的なフィールドの意味については、後の フィールドの紹介 を参照してください。{"TENANT_ID":1002,"TRANS_ID":4415602,"PRIMARY_KEY":"","TENANT_NAME":"","DATABASE_NAME":"","TABLE_NAME":"","OPERATION":"BEGIN","OPERATION_CODE":5,"COMMIT_SCN":1708391913195415000,"COMMIT_TIMESTAMP":"2024-02-20 01:18:33.195415","SQL_REDO":"","SQL_UNDO":"","ORG_CLUSTER_ID":1} {"TENANT_ID":1002,"TRANS_ID":4415602,"PRIMARY_KEY":"","TENANT_NAME":"mysql","DATABASE_NAME":"test","TABLE_NAME":"t1","OPERATION":"INSERT","OPERATION_CODE":1,"COMMIT_SCN":1708391913195415000,"COMMIT_TIMESTAMP":"2024-02-20 01:18:33.195415","SQL_REDO":"INSERT INTO `test`.`t1` (`id`, `name`) VALUES (1, 'aaaa');","SQL_UNDO":"DELETE FROM `test`.`t1` WHERE `id`=1 AND `name`='aaaa' LIMIT 1;","ORG_CLUSTER_ID":1} {"TENANT_ID":1002,"TRANS_ID":4415602,"PRIMARY_KEY":"","TENANT_NAME":"","DATABASE_NAME":"","TABLE_NAME":"","OPERATION":"COMMIT","OPERATION_CODE":6,"COMMIT_SCN":1708391913195415000,"COMMIT_TIMESTAMP":"2024-02-20 01:18:33.195415","SQL_REDO":"","SQL_UNDO":"","ORG_CLUSTER_ID":1}REDO_ONLY形式
SQL_REDO結果のみ出力し、データファイルの拡張子は
.sqlです。UNDO_ONLY形式
SQL_UNDO結果のみ出力し、データファイルの拡張子は
.sqlです。
フィールドの詳細は以下のとおりです:
| フィールド | タイプ | 説明 |
|---|---|---|
| TENANT_ID | 数値 | テナントID |
| TRANS_ID | 数値 | 変更に属するトランザクションID。TRANS_IDは、テナント内でトランザクションを一意に識別します |
| PRIMARY_KEY | 文字列 | 変更行のすべての主キー列情報をデフォルトで/で区切ります |
| TENANT_NAME | 文字列 | テナント名 |
| DATABASE_NAME | 文字列 | データベース名 |
| TABLE_NAME | 文字列 | テーブル名 |
| OPERATION | 文字列 | ユーザーSQL操作タイプ。値は次のとおりです:
|
| OPERATION_CODE | 数値 | OPERATIONに対応する操作コード:
|
| COMMIT_SCN | 数値 | トランザクションのコミットバージョン番号 |
| COMMIT_TIMESTAMP | 日付 | トランザクションのコミット時間 |
| SQL_REDO | 文字列 | clogログ内のデータに基づいて再構築されたSQL。これはユーザーがデータベース上で実行したSQLと同じです |
| SQL_UNDO | 文字列 | データのフラッシュバックに使用される逆回転SQL。DDLトランザクションではSQL_UNDOが生成されません |
| ORG_CLUSTER_ID | 数値 | set ob_org_cluster_id=***コマンドで設定されたcluster id情報 |