フルリンクトレースとは?
OceanBaseデータベースは分散システムとして、複雑な呼び出しパスを持っています。タイムアウト問題が発生した場合、それがOceanBase内部コンポーネントの問題なのか、ネットワークの問題なのかを迅速に特定することはしばしば困難であり、運用保守担当者は経験とobserverログに基づいて分析するしかありませんでした。診断効率を向上させるため、今回の更新では、ユーザーのSQLリクエストがデータベースの全リンクプロセスにおいて、異なるコンポーネントや段階で実行される関連情報を追跡し、視覚化してユーザーに提示する、全く新しいフルリンクトレースメカニズムが導入されました。これにより、ユーザーは問題の位置を迅速に特定でき、コンポーネント内部の問題を迅速かつ正確に発見することが支援されます。
フルリンクトレースのパス
フルリンクトレースは、主に2つのデータストリームパスをカバーします。
- 1つ目は、リクエストがアプリケーションから始まり、クライアント(JDBCやOCIなど)を通じてODP(プロキシサーバー)に渡され、その後ODPからOBServerに転送され、最終的に結果がアプリケーションに返されるパスです。
- 2つ目は、リクエストがアプリケーションから直接クライアントを経由してOBServerに送信され、結果が直接返されるパスです。
フルリンクトレースの目的は、これら2つのパス上のすべてのコンポーネントにおける問題の特定です。 ユーザーはクライアントを使用してOceanBaseデータベースに接続し、クライアントからリクエストを送信する際、リクエストはOBProxyを経由してOBServerに転送されるか、または直接OBServerに到達します。フルリンクトレース機能を利用することで、運用保守担当者はPL/SQLのDBMS_MONITORパッケージのメソッドを使用し、必要に応じてアプリケーションでのフルリンクトレース(trace)の有無や、トレース情報の出力詳細を制御・監視できます。
フルリンクトレースのログ
フルリンクトレースのログ、すなわちトレースログ(trace logs)は、データアクセスパスに基づいて記録内容が決定されます。ODPを介してデータベースにアクセスする場合、トレース情報はOBProxyとOBServerの両方のログファイルに記録されます。OBServerに直接アクセスする場合は、OBServerのログファイルにのみ記録されます。具体的には、OBProxyのトレースログファイル名はobproxy_trace.log、OBServerのものはtrace.logとなります。各ログファイルのサイズ制限は256MBで、ログがこのサイズに達すると、システムは新しいログファイルを作成し、古いファイルをアーカイブします。アーカイブファイルの数は構成パラメータmax_syslog_file_countによって制御され、上限を超えるファイルは自動的に削除されます。 運用保守担当者は、すべてのトレースログを収集・分析することで、各トランザクションやSQLクエリが全呼び出しチェーン上での実行時間やその他の関連情報を追跡できます。これは問題の正確な特定に重要な手がかりを提供するだけでなく、運用保守の効率を大幅に向上させます。