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の場合、値は
nullとして設定する必要があります。column_condフィールドは配列形式であり、各オブジェクトは「かつ」条件の一組であり、オブジェクト間は「または」条件となります。上記の設定例では、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を指定し、認証に使用されます。