oblogminerを使用する際、さまざまなコマンドラインパラメータを設定することで、oblogminerのさまざまな機能を実現できます。oblogminerがサポートするコマンドラインパラメータは以下の表のとおりです。詳細な使用方法については、使用例を参照してください。
パラメータ |
詳細パラメータ名 |
必須 |
パラメータタイプ |
デフォルト値 |
説明 |
|---|---|---|---|---|---|
| -m | --mode | いいえ | 文字列 | analysis | デフォルトは分析モードで、現在は分析モードのみサポートしています。 |
| -c | --cluster-addr | はい | 文字列 | NULL | クラスタアドレス。形式は ip:port です。複数のアドレスは | で区切ります。例:ip1:mysql_port1|ip2:mysql_port2|ip3:mysql_port3。クラスタアドレスは DBA_OB_ACCESS_POINT ビューをクエリすることで取得できます。具体的なコマンドは SELECT CONCAT(SVR_IP, ':', SQL_PORT) FROM DBA_OB_ACCESS_POINT; です。 |
| -u | --user-name | はい | 文字列 | NULL | テナントのユーザー名。形式は user@tenant です。 |
| -p | --password | はい | 文字列 | NULL | テナントのパスワード。指定が必要で、空のパスワードは許可されません。 |
| -a | --archive-dest | はい | 文字列 | NULL | アーカイブログのパス。-c、-u、-p パラメータと同時に指定することはできません。-c、-u、-p パラメータを設定した場合、情報はオンラインログから読み取られます。-a パラメータを設定した場合、データはアーカイブログから読み取られます。 |
| -l | --table-list | いいえ | 文字列 | *.*.* | 分析対象のデータベーステーブル名を指定します。形式は obcdc の tb_white_list と同じで、テナント名.データベース名.テーブル名(例:tenant.db1.tb1|tenant.db2.*)です。ここで、テナント名は -u/--user-name で指定されたテナント名、またはアーカイブログが属するテナントと一致している必要があります。 |
| -C | --column-cond | いいえ | 文字列 | NULL | JSON を使用して分析対象の列フィルタ条件を正確に指定することができます。詳細については、以下の説明を参照してください。 |
| -s | --start-time | はい | 文字列 | NULL | oblogminer が分析するログの開始時間を指定します。日付時刻形式またはマイクロ秒タイムスタンプ形式で設定する必要があります。例:2024-01-09 16:23:00 または 1706164790844000。開始時間は obcdc の要件を満たす必要があります。開始時間が早すぎると、oblogminer の起動に失敗します。具体的な制限については、obcdc よくある質問を参照してください。 |
| -e | --end-time | いいえ | 文字列 | デフォルトは現在時刻 | oblogminer が分析するログの終了時間を指定します。日付時刻形式またはマイクロ秒タイムスタンプ形式で設定する必要があります。例:2024-01-09 16:23:00 または 1706164790844000。 |
| -O | --operations | いいえ | 文字列 | insert|delete|update | 出力する DML 操作タイプを指定します。値の範囲は {'insert', 'delete','update'} の組み合わせで、| で結合します。デフォルトではすべて出力されます。 |
| -o | --output | はい | 文字列 | NULL | データファイルの出力ディレクトリ。ローカルディレクトリまたは OSS をサポートしています。ローカルディレクトリは絶対パスである必要があります。形式は次のとおりです:file:///output/ または oss://$PATH/$FILENAME/?host=$HOST&access_id=$ACCESS_ID&access_key=$ACCESSKEY。詳細については、以下の説明を参照してください。 |
| -L | --log_level | いいえ | 文字列 | ALL.*:INFO;PALF.*:WARN;SHARE.SCHEMA:WARN | oblogminerの実行時ログレベル。OceanBaseデータベースでサポートされているログレベルについては、ログレベルを参照してください。 |
| -z | --timezone | いいえ | 文字列 | +8:00 | タイムゾーンを指定します。 |
| -f | --record_format | いいえ | 文字列 | csv | レコードの保存形式。デフォルトはCSV形式です。
|
| -h | --help | いいえ | なし | 対象外 | help情報を出力します。 |
| -v | --verbose | いいえ | なし | 対象外 | コマンドラインで詳細情報を出力するかどうかを制御します。より多くのコマンドラインログが表示されます。 |
説明
パラメータタイプが文字列の場合は、引用符を付けて設定する必要があります。
-C/--column-condはJSON形式で設定する必要があります。指定しない場合、フィルタリングは実行されません。フィルタ条件を設定すると、一致しないテーブルデータは出力されませんが、対応するテーブルのDDLはフィルタリングされずに出力されます。設定例は以下の通りです:[ { "database_name":"db1", "table_name":"tbl1", "column_cond":[ { "col1":"val1", "col2":"val2" }, { "col3":null } ] } ]上記の設定例における各項目の意味は以下の通りです。
database_name、table_name、column_condのすべてを同時に設定する必要があります。database_nameは、分析対象のデータベース名を指定します。table_nameは、分析対象のテーブル名を指定します。column_condは、database_name.table_nameに対応する列レベルの条件を指定します。
-C/--column-condを設定する際には、以下の点にも注意してください:-C/--column-condの設定は配列形式である必要があり、英字の角括弧([])で囲みます。各テーブルのフィルタ条件はJSONオブジェクトでなければなりません。すべてのキーと値は文字列データであるため、引用符を付ける必要があります。列の値がNULLの場合、valueは
nullに設定する必要があります。column_condフィールドは配列形式でなければならず、各オブジェクト(object)は「かつ条件」のセットで、オブジェクト間は「または条件」となります。上記の設定例では、db1.tbl1のcol1列の値がval1かつcol2列の値がval2、またはcol3列の値がnullのレコードの変更を指定することを示しています。コマンドラインでこのパラメータを指定する場合、パラメータ内の引用符をエスケープする必要があります。つまり、
"は\"に置き換える必要があります。
-o/--outputは、データファイルの出力ディレクトリを設定するために使用され、ローカルディレクトリまたはOSSに設定できます。ディレクトリが空であることを確認する必要があります。ローカルファイルシステムでは、パスが
file://で始まる絶対パスを指定できます。例:file:///data/1/logminer_output/。OSSに設定する場合、パスは
oss://で始まり、形式はoss://$PATH/$FILENAME/?host=$HOST&access_id=$ACCESS_ID&access_key=$ACCESSKEYのようになります。$PATHはバケット内のファイルパスを指定し、ファイルが存在するディレクトリを示します。$FILENAMEはファイル名を指定し、アクセスする具体的なファイルを示します。$HOSTはOSSサービスのホスト名またはCDN高速化されたドメイン名、つまりアクセスするOSSサービスのアドレスを指定します。$ACCESS_IDは、OSSサービスへのアクセスに必要なAccess Key IDを指定し、認証に使用されます。$ACCESSKEYは、OSSサービスへのアクセスに必要なAccess Key Secretを指定し、認証に使用されます。