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で指定)の使用はサポートされていません。現在、オブジェクトストレージ内のアーカイブログの分析はサポートされていません。