すべてのプロダクト
Search
ドキュメントセンター

Database Autonomy Service:セッション管理

最終更新日:Jun 28, 2025

データベースでパフォーマンスの問題または操作例外が発生した場合、データベースのセッション情報に基づいて問題または例外のトラブルシューティングを行うことができます。Database Autonomy Service (DAS) は、データベースインスタンスに関するセッション情報を表示し、セッションで O&M 操作を実行できるセッション管理機能を提供します。たとえば、セッションを終了し、データベースインスタンスで 10 秒 SQL 分析、SQL スロットリング、および SQL 最適化を実行できます。

前提条件

データベースインスタンスが DAS に接続されており、正常なアクセス 状態です。

説明

DAS は ApsaraDB RDS for SQL Server インスタンスのセッション管理機能を提供していません。

注記

マイナーエンジンバージョンが 20230610 より前の RDS MySQL 8.0 インスタンスの場合、COM_STATISTICSCOM_CHANGE_USERSHOW PROCESSLIST 文などのコマンドの同時実行により、デッドロックが発生する可能性があります(インスタンス接続障害が発生します)。最新のマイナーエンジンバージョンに更新することをお勧めします。

手順

このトピックでは、ApsaraDB RDS for MySQL インスタンスを使用して、セッション管理機能の使用方法を示します。

  1. DAS コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[インテリジェント O&M センター] > インスタンスモニター を選択します。

  3. 表示されるページで、管理するデータベースインスタンスを見つけ、インスタンス ID をクリックします。インスタンスの詳細ページが表示されます。

  4. 左側のペインで、インスタンスセッション をクリックします。

  5. セッション管理 タブで、インスタンスのセッション セクションと セッション統計 セクションでデータベースインスタンスに関するセッション情報を表示します。

    • インスタンスのセッション セクションでは、次の操作を実行できます。

      • 例外セッション、アクティブセッション、最長実行時間、CPU 使用率、接続使用率などの情報を表示します。

      • セクションの右上隅にある 10 秒 SQL 分析 をクリックします。表示されるダイアログボックスで、概要情報、低速クエリログ、SQL 概要など、10 秒以内のクエリの情報を表示します。詳細については、「10 秒 SQL 分析」をご参照ください。

      • SQL スロットリング をクリックします。SQL スロットリング ダイアログボックスで、セッションでしきい値ベースの SQL スロットリングを有効にするパラメーターを設定します。詳細については、「SQL スロットリング」をご参照ください。

      • 最適化 をクリックして、セッションを最適化します。詳細については、「SQL 最適化」をご参照ください。

      • アクティブなセッションをエクスポートします。

      • セッションを終了します。

        セッションを終了するには、セッションが作成されたデータベースのアカウントとパスワードを入力する必要があります。他のデータベースアカウントを使用して作成されたセッションを終了する権限を持つデータベースアカウントを使用することもできます。たとえば、特権アカウントを使用できます。

        説明
        • セッションの ユーザー 列には、セッションの作成に使用されたデータベースアカウントが表示されます。

        • セッション履歴の終了 をクリックすると、終了したセッションのレコードを表示できます。

    • セッション統計 セクションでは、次の操作を実行できます。

      • 概要情報と、ユーザー、アクセスソース、またはデータベース別のセッション統計を表示します。概要情報には、セッションの総数、進行中のセッションの総数、および最長セッション時間が含まれます。

      • 概要情報と、ユーザー、アクセスソース、またはデータベース別のセッション統計をエクスポートします。

よくある質問

Q: アクセスソース 列にパーセント記号(%)が表示されるのはなぜですか?

A: ストアドプロシージャを使用すると、SQL エクスプローラータブのソース統計タブのアクセスソース列にパーセント記号(%)が表示される場合があります。次の操作を実行して、この状況を再現できます。

説明

この例では、データベースインスタンスは ApsaraDB RDS for MySQL インスタンス、テストアカウントは test_user、テストデータベースは testdb です。

  1. ApsaraDB RDS コンソールでデータベースと標準アカウントを作成し、データベースに対する権限を標準アカウントに付与します。詳細については、「アカウントとデータベースの作成」をご参照ください。

  2. CLI を使用して、test_user アカウントを使用してインスタンスに接続します。詳細については、「データベースクライアントまたは CLI を使用して ApsaraDB RDS for MySQL インスタンスに接続する」をご参照ください。

  3. testdb データベースに切り替え、次のステートメントを実行してストアドプロシージャを作成します。

    -- testdb データベースに切り替えます。
    USE testdb;
    
    -- ストアドプロシージャを作成します。
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `das` $$
    CREATE DEFINER=`test_user`@`%` PROCEDURE `das`()
    BEGIN
    SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID();
    END $$
    DELIMITER;
  4. 特権アカウントを使用してデータベースインスタンスに接続します。詳細については、「データベースクライアントまたは CLI を使用して ApsaraDB RDS for MySQL インスタンスに接続する」をご参照ください。

  5. 作成したストアドプロシージャを呼び出します。

    -- testdb データベースに切り替えます。
    USE testdb;
    
    -- ストアドプロシージャを呼び出します。
    CALL das();
    
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | ID     | USER      | HOST   | DB     | COMMAND | TIME | STATE     | INFO                                                                    |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | 487818 | test_user | %:2065 | testdb | Query   |    0 | executing | SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID() |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+

Q: ApsaraDB RDS for MySQL インスタンスと PolarDB for MySQL クラスタでは、どのセッションが異常としてマークされますか?

A: 次のセッションは異常としてマークされます。

  • 「テーブルメタデータロックを待機しています」エラーを報告するセッションなど、ブロッキング SQL ステートメントを含むセッション。ブロッキング SQL ステートメントの実行時間が 30 秒を超えています。ブロッキング SQL ステートメントはリソースを長期間占有します。その結果、他の SQL ステートメントが実行に失敗する可能性があります。一般的なブロッキング SQL ステートメントには、FLUSH TABLES WITH READ LOCK ステートメントと、保留中のトランザクションが原因でメタデータロックを待機している DDL ステートメントが含まれます。

  • 期間が 30 秒を超えるトランザクションを含むセッション。

  • 長期間コミットされていないトランザクションを含むセッション。セッションでトランザクションが開始されても、10 秒以上新しい SQL ステートメントが実行されない場合、コードから COMMIT コマンドが省略されている可能性があります。これにより、トランザクションがリソースを長期間占有し、できるだけ早くリソースを解放できない可能性があります。