オンラインログの分析
このセクションでは、OBServerノードのIPアドレスを 10.10.10.1、ポートを 2881 と仮定し、ユーザー root@mysql が2024年1月9日16時23分から現在までのログを分析し、分析結果を /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分から2024年1月10日10時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から連続する整数です。データファイルの出力が完了すると、METAディレクトリに対応するメタファイルが書き込まれます。メタファイルの名前はデータファイル名と同じです。CHECKPOINT:分析の進捗状況を記録します。
COMMIT_INDEX:インデックスファイルで、データファイルに対応するタイムスタンプが記録されています。
CONFIG:今回のログ分析の設定情報を記録します。
META:データファイルの出力が完了すると、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 情報 |