OceanBase LogMiner(略称:oblogminer)は、OceanBaseデータベースのログ分析を行うためのコマンドラインツールであり、オンラインログおよびアーカイブログの分析をサポートしています。oblogminerはobcdcを使用してclogログを取得・解析し、obcdcが出力するロジックログを読みやすい形式に変換し、分析結果を指定された場所に保存します。
機能の特長
オンラインログまたはアーカイブログからの読み取りと分析をサポートします。
分析結果をローカルまたはOSSに保存することをサポートします。
複数のレコードフィルタリング条件をサポートします。
複数のレコード出力形式をサポートします。
REDO/UNDO SQLの生成をサポートします。
複数のオプションコマンドラインパラメータをサポートします。
適用シナリオ
セルフサービス
oblogminerは、オンラインログとアーカイブログの分析および処理をサポートし、指定された期間内のすべての変更を表示することができます。一方で、障害発生時点の正確な特定が可能になり、もう一方で問題の調査の複雑さが低減し、診断効率が向上します。これにより、ユーザーは強力かつ迅速に問題を特定する能力を身に付け、セルフサービスの目的を達成できます。
細粒度復元
ユーザーが特定の時点でデータベースに誤操作を行った場合、oblogminerを使用して逆方向ロールバックSQL(UNDO SQL)を生成することで、「SQLフラッシュバック」による細粒度復元機能を提供します。
データ分析
oblogminerは、すべてのDDLおよびDML変更を取得し、実行順序で出力することを保証します。oblogminerは、clogログ内のさまざまな情報(トランザクション、テーブル構造など)を整理し、分かりやすく表示することで、可観測性を向上させます。
制限事項
oblogminerはobcdcに基づいて実装されているため、obcdcの制限事項もoblogminerの制限事項となります。例えば、obcdcが互換性のないOceanBaseデータベースバージョンでは、oblogminerも互換性がありません。
現在、中断されたトランザクションの出力はサポートされていません。デフォルトでは、すべてCOMMIT済みのトランザクションが出力されます。トランザクション内のデータは集約して出力されます。つまり、単一のトランザクション内のすべての操作が組み合わされ、異なるトランザクションはコミット順に出力されます。
現在、ROLLBACK TO SAVEPOINTでロールバックされたデータの出力はサポートされていません。
現在、スタンバイデータベースのログ分析はサポートされていません。
現在、非トランザクションデータやインデックステーブルデータの分析・出力はサポートされていません。
現在、指定ファイルの分析はサポートされていません。これは、分散トランザクションの組み立て(異なるマシン上の複数のRedoファイルに分散)、トランザクションの完全性(指定ファイルを分析する際にトランザクションデータが不完全である)などの理由によります。
一時テーブルのデータの解析および出力はサポートされていません。これはOracleの動作と一致しています。
DDLステートメントのフィルタリングはサポートされていません。
lob型またはサポートされていない型を含むレコードについては、REDO/UNDO SQLに
/* POTENTIALLY INACCURATE */とマークされ、REDO/UNDO SQLの結果が不正確である可能性があることを示します。トランザクションの完全性を保証するため、指定された終了時間を超えるトランザクションが出力される場合があります。
ダイレクトロードされたデータはサポートされていません。
システムテナントでの使用はサポートされていません。
アーカイブログの読み取りには、アーカイブログが連続していること、およびログアーカイブ機能が常に有効であることが必要です。
ログアーカイブには遅延があるため、ログアーカイブから最新のarchive_lag_target時間のログを分析する場合、分析速度は遅くなります。
ODPを介してOceanBaseデータベースに接続してログ分析を行う場合、現在
user@tenant#cluster形式のユーザー名(-u/--user-name指定)の使用はサポートされていません。現在、オブジェクトストレージ内のアーカイブログの分析はサポートされていません。