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が分析するログの開始時間を指定します。formatはdatatimeまたはマイクロ秒タイムスタンプ形式で設定する必要があります。例:2024-01-09 16:23:00 または 1706164790844000。開始時間はobcdcの要件を満たす必要があります。開始時間が早すぎると、oblogminerの起動に失敗します。具体的な制限については、obcdc FAQを参照してください。 |
| -e | --end-time | いいえ | 文字列 | デフォルトは現在時刻 | oblogminerが分析するログの終了時間を指定します。formatはdatatimeまたはマイクロ秒タイムスタンプ形式で設定する必要があります。例: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 を指定し、認証に使用されます。