Database Autonomy Service ( DAS ) が提供する検索 ( 監査 ) 機能を使用すると、SQL 文に関する情報をクエリおよびエクスポートできます。このトピックでは、SQL エクスプローラーおよび監査モジュールで検索機能を使用する方法について説明します。
DAS Enterprise Edition V3 を有効にしている場合、検索機能は監査機能という名前に変更されます。
前提条件
管理するデータベースインスタンスが DAS に接続されており、正常なアクセス 状態であること。
データベースインスタンスで SQL エクスプローラーおよび監査機能が有効になっていること。詳細については、「概要」トピックの SQL エクスプローラーと監査を有効にする セクションをご参照ください。
RAM ユーザーとして検索機能を使用する場合、AliyunHDMReadOnlyWithSQLLogArchiveAccess ポリシーが Resource Access Management ( RAM ) ユーザーにアタッチされていること。詳細については、「RAM ユーザーとして DAS を使用するにはどうすればよいですか?」トピックの システムポリシーを使用して RAM ユーザーに権限を付与する セクションをご参照ください。
説明カスタムポリシーを作成して、ログエクスポート機能を含む検索機能を使用するための権限を RAM ユーザーに付与することもできます。詳細については、「RAM ユーザーとして DAS を使用するにはどうすればよいですか?」トピックの「カスタムポリシーを使用して、SQL エクスプローラーおよび監査モジュールで検索およびエクスポート機能を使用するための権限を RAM ユーザーに付与する」セクションをご参照ください RAM ユーザーとして DAS を使用するにはどうすればよいですか?。
使用上の注意
Logs セクションの SQL 文に対応する ステータス 列に [完了] と表示されている場合、SQL 文は想定どおりに実行されています。たとえば、トランザクションのロールバック時にトランザクション内の SQL 文が想定どおりに実行された場合、Logs セクションの SQL 文に対応する ステータス 列に [完了] と表示されます。
ApsaraDB RDS for MySQL インスタンスおよび PolarDB for MySQL クラスタへの接続は再利用される場合があります。そのため、Logs セクションに表示される IP アドレスとポートは、接続されているクライアントの実際の IP アドレスおよびポートとは異なる場合があります。詳細については、「コネクションプーリング機能を構成する」(ApsaraDB RDS for MySQL ドキュメント)および「コネクションプール」(PolarDB for MySQL ドキュメント)をご参照ください。
SQL ログの SQL 文の最大長は 8,192 バイトです。SQL 文の実際の長さが 8,192 バイトを超える場合、超過部分は記録されません。ApsaraDB RDS for MySQL インスタンスと PolarDB for MySQL クラスタの場合、SQL ログの SQL 文の最大長はパラメーターで指定されます。次の項目に注意してください。
SQL 文の最大長を 8,192 バイト以下の長さに指定した場合、指定した長さが上限として使用され、SQL 文の超過部分は記録されません。データの収集と処理中に、SQL 文にプレフィックスが追加されます。その結果、SQL ログの SQL 文の最大長は、指定した長さよりもわずかに短くなります。
SQL 文の最大長を 8,192 バイトを超える長さに指定した場合、デフォルトの上限は 8,192 バイトです。SQL 文の実際の長さが上限を超える場合、超過部分は記録されません。データの収集と処理中に、SQL 文にプレフィックスが追加されます。その結果、SQL ログの SQL 文の最大長は 8,192 バイトよりわずかに短くなります。
説明MySQL 5.6 または 5.7 を実行する ApsaraDB RDS for MySQL インスタンスと PolarDB for MySQL クラスタの場合、SQL 文の最大長は loose_rds_audit_max_sql_size パラメーターで指定されます。
MySQL 8.0 を実行する ApsaraDB RDS for MySQL インスタンスと PolarDB for MySQL クラスタの場合、SQL 文の最大長は loose_rds_audit_log_event_buffer_size パラメーターで指定されます。
高度なクエリを有効にし、データベースインスタンスのバージョンが次の要件を満たしている場合、トランザクション ID でデータをクエリできます。Enable Advanced Query トランザクション ID
ApsaraDB RDS for MySQL インスタンスの場合、メジャーバージョンが 8.0、マイナーバージョンが 20210311 以降であり、loose_rds_audit_log_version パラメーターが MYSQL_V3 に設定されていること。詳細については、MySQL 8.0 を実行する ApsaraDB RDS インスタンスでサポートされているパラメーター をご参照ください。
PolarDB for MySQL クラスタの場合、バージョンが 8.0.1.1.15 以降であること。
手順
DAS コンソール にログインします。
左側のナビゲーションウィンドウで、[インテリジェント O&M センター] > インスタンスモニター を選択します。
表示されたページで、管理するデータベースインスタンスを見つけ、インスタンス ID をクリックします。インスタンスの詳細ページが表示されます。
左側のナビゲーションウィンドウで、[リクエスト分析] > SQL Explorer and Audit を選択します。次に、検索 タブで、次の表に示すパラメーターを設定してクエリ条件を指定します。
DAS Enterprise Edition V3 を有効にしている場合は、[監査] タブでパラメーターを設定します。
パラメーター
説明
時間範囲
実行された SQL 文をクエリする時間範囲。
オンラインクエリの最大時間範囲は 24 時間です。開始時刻は、SQL エクスプローラーのデータ保存期間内でなければなりません。これは、SQL エクスプローラー機能が多数の SQL 文を記録するためです。この機能を使用して、データベースインスタンスで実行されるすべての操作を追跡できます。オンラインクエリの時間範囲が 24 時間を超える場合、クエリには長時間かかり、タイムアウトする可能性があります。
説明データをクエリする時間範囲は、DAS Enterprise Edition が有効になった時刻よりも後でなければならず、SQL エクスプローラーのデータ保存期間内でなければなりません。
24 時間を超える時間範囲内の SQL 文をクエリする場合は、ログをオンプレミスのコンピューターにエクスポートすることをお勧めします。
ホットストレージとコールドストレージの組み合わせを使用する SQL エクスプローラーおよび監査モジュールでは、最大 24 時間の時間範囲内のデータをクエリおよびエクスポートできます。
キーワード
データのクエリに使用されるキーワード。スペースで区切られた複数のキーワードを指定できます。あいまいクエリはサポートされていません。
説明各キーワードは 4 文字以上でなければなりません。
ユーザー
データのクエリに使用されるユーザー名。スペースで区切られた複数のユーザー名を指定できます。例:user1 user2 user3。
データベース
データのクエリに使用されるデータベース名。スペースで区切られた複数のデータベース名を指定できます。例:DB1 DB2 DB3。
操作タイプ
クエリする操作タイプ。1 つ以上の操作タイプを選択できます。
説明Enable Advanced Query をクリックして、さらにパラメーターを設定し、クエリを絞り込むことができます。
クエリ をクリックします。次に、Logs セクションで、クエリされた SQL 文に関する情報を表示できます。
ログをエクスポートするには、エクスポート をクリックします。SQL レコードのエクスポート ダイアログボックスで、エクスポートされたフィールド パラメーターを設定します。エクスポート期間 パラメーターを設定して、SQL ログをエクスポートする時間範囲を指定します。
CSV 区切り文字 モジュール ( ホットストレージとコールドストレージの組み合わせを使用 ) では、エクスポートされる CSV ファイルの列区切り文字として、SQL ログに含まれていない特殊文字を選択できます。これにより、エクスポートされた CSV ファイルの SQL ログの列を区切ることができます。詳細については、このトピックの CSV ファイルの設定と開く セクションをご参照ください。
重要一度に最大 1,000 万件のデータレコードを 7 日以内にエクスポートできます。
ホットストレージとコールドストレージの組み合わせを使用する SQL エクスプローラーおよび監査モジュールの場合、コールドストレージのデータをクエリまたはエクスポートすると、システムはクエリまたはエクスポートタスクを作成します。タスクリスト をクリックして、タスクの進捗状況と履歴タスクを表示できます。
監査ログ機能が有効になっているデータのみをクエリおよびエクスポートできます。
CSV ファイルの設定と開く
CSV ファイルにエクスポートされた SQL ログに区切り文字が含まれている場合でも、Excel などのツールを使用して CSV ファイルを開いた後、エクスポートされたデータが 1 つの列に表示される場合があります。この問題を防ぐために、CSV 区切り文字 モジュール ( ホットストレージとコールドストレージの組み合わせを使用 ) の検索機能を使用して SQL ログを CSV ファイルにエクスポートするときに、列区切り文字を選択できます。このセクションでは、複数の列に表示できるデータをエクスポートするために CSV ファイルを設定する方法について説明します。この例では、Windows オペレーティングシステムの Excel 2019 を使用しています。
エクスポートタスクの作成後に表示される [プロンプト] ダイアログボックスで、エクスポートされる CSV ファイルの列区切り文字として、SQL ログに含まれていない特殊文字 (
$
など ) を選択します。エクスポートされた CSV ファイルを Excel を使用して開きます。
表示するデータを選択します。上部のナビゲーションバーで、[データ] をクリックします。[データツール] セクションで、データ ツール[テキストを列に変換] をクリックします。
[テキストファイルウィザード] ダイアログボックスのステップ 1 の [元のデータの型] セクションで、[区切り文字] を選択します。次に、[次へ] をクリックします。
[区切り文字] セクションで、[その他] を選択し、フィールドに
$
と入力します。次に、[次へ] をクリックします。[データのプレビュー] セクションで、表示効果をプレビューできます。
[列のデータ形式] セクションで、[標準] を選択します。次に、[完了] をクリックします。
よくある質問
関連 API 操作
次の表に、ApsaraDB RDS for MySQL インスタンス、ApsaraDB RDS for PostgreSQL インスタンス、または ApsaraDB RDS for SQL Server インスタンスの SQL ログをクエリするために呼び出すことができる API 操作を示します。
操作 | 説明 |
ApsaraDB RDS インスタンスの SQL エクスプローラー ( SQL 監査 ) 機能によって生成された監査ログをクエリします。 | |
ApsaraDB RDS インスタンスの SQL エクスプローラー ( SQL 監査 ) 機能によって生成されたログファイルをクエリします。 |