全部产品
Search
文档中心

Database Autonomy Service:Manajemen Sesi

更新时间:Jul 06, 2025

Ketika terjadi masalah kinerja atau pengecualian operasi pada database, Anda dapat mendiagnosis masalah tersebut berdasarkan informasi sesi di database. Database Autonomy Service (DAS) menyediakan fitur manajemen sesi yang memungkinkan Anda melihat informasi sesi dari instans database dan melakukan operasi O&M pada sesi. Sebagai contoh, Anda dapat menghentikan sesi serta melakukan analisis SQL 10 detik, pembatasan SQL, dan optimasi SQL pada instans database.

Prasyarat

Instans database Anda harus terhubung ke DAS dan berada dalam status Normal Access.

Catatan

DAS tidak menyediakan fitur manajemen sesi untuk instans ApsaraDB RDS for SQL Server.

Catatan

Untuk instans RDS MySQL 8.0 dengan versi mesin minor sebelum 20230610, eksekusi bersamaan perintah seperti COM_STATISTICS, COM_CHANGE_USER, dan pernyataan SHOW PROCESSLIST dapat menyebabkan deadlock (mengakibatkan kegagalan koneksi instans). Disarankan untuk memperbarui ke versi mesin minor terbaru.

Prosedur

Dalam topik ini, instans ApsaraDB RDS for MySQL digunakan sebagai contoh untuk menunjukkan cara menggunakan fitur manajemen sesi.

  1. Masuk ke Konsol DAS.

  2. Di panel navigasi sebelah kiri, pilih Intelligent O&M Center > Instance Monitoring.

  3. Di halaman yang muncul, temukan instans database yang ingin dikelola dan klik ID instans. Halaman detail instans akan ditampilkan.

  4. Di panel sebelah kiri, klik Instance Sessions.

  5. Di tab Session Management, lihat informasi sesi tentang instans database di bagian Instance Sessions dan Session Statistics.

    • Di bagian Instance Sessions, Anda dapat melakukan operasi berikut:

      • Lihat informasi seperti sesi pengecualian, sesi aktif, durasi eksekusi terlama, penggunaan CPU, dan penggunaan koneksi.

      • Klik 10s SQL Analysis di pojok kanan atas bagian tersebut. Di kotak dialog yang muncul, lihat informasi tentang kueri dalam 10 detik, seperti ringkasan, log kueri lambat, dan gambaran umum SQL. Untuk informasi lebih lanjut, lihat analisis SQL 10 detik.

      • Klik SQL Throttling. Di kotak dialog SQL Throttling, konfigurasikan parameter untuk mengaktifkan pembatasan SQL berbasis ambang batas pada sesi. Untuk informasi lebih lanjut, lihat pembatasan SQL.

      • Klik Optimize untuk mengoptimalkan sesi. Untuk informasi lebih lanjut, lihat optimasi SQL.

      • Ekspor sesi aktif.

      • Hentikan sesi.

        Untuk menghentikan sesi, Anda harus memasukkan akun dan kata sandi dari database tempat sesi dibuat. Anda juga dapat menggunakan akun database yang memiliki izin untuk menghentikan sesi yang dibuat menggunakan akun lain. Sebagai contoh, Anda dapat menggunakan akun berhak istimewa.

        Catatan
        • Di kolom User dari sesi, Anda dapat melihat akun database yang digunakan untuk membuat sesi.

        • Anda dapat mengklik End Session History untuk melihat catatan sesi yang telah dihentikan.

    • Di bagian Session Statistics, Anda dapat melakukan operasi berikut:

      • Lihat informasi ringkasan dan statistik sesi berdasarkan pengguna, sumber akses, atau database. Informasi ringkasan mencakup jumlah total sesi, jumlah total sesi yang sedang berlangsung, dan durasi sesi terpanjang.

      • Ekspor informasi ringkasan dan statistik sesi berdasarkan pengguna, sumber akses, atau database.

FAQ

T: Mengapa tanda persen (%) muncul di kolom Sumber Akses?

J: Saat menggunakan prosedur tersimpan, tanda persen (%) mungkin muncul di kolom Sumber Akses pada tab Statistik Sumber di tab Penjelajah SQL. Anda dapat melakukan langkah-langkah berikut untuk mereproduksi situasi ini:

Catatan

Dalam contoh ini, instans database adalah instans ApsaraDB RDS for MySQL, akun uji adalah test_user, dan database uji adalah testdb.

  1. Buat database dan akun standar serta berikan izin pada database kepada akun standar di konsol ApsaraDB RDS. Lihat Buat akun dan database untuk detailnya.

  2. Gunakan akun test_user untuk terhubung ke instans menggunakan CLI. Lihat Gunakan klien database atau CLI untuk terhubung ke instans ApsaraDB RDS for MySQL untuk detailnya.

  3. Beralih ke database testdb dan jalankan pernyataan berikut untuk membuat prosedur tersimpan:

    -- Beralih ke database testdb.
    USE testdb;
    
    -- Buat prosedur tersimpan.
    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. Gunakan akun berhak istimewa untuk terhubung ke instans database. Lihat Gunakan klien database atau CLI untuk terhubung ke instans ApsaraDB RDS for MySQL untuk detailnya.

  5. Panggil prosedur tersimpan yang Anda buat.

    -- Beralih ke database testdb.
    USE testdb;
    
    -- Panggil prosedur tersimpan.
    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() |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+

T: Sesi apa yang ditandai sebagai abnormal untuk instans ApsaraDB RDS for MySQL dan kluster PolarDB for MySQL?

J: Sesi berikut ditandai sebagai abnormal:

  • Sesi yang berisi pernyataan SQL yang memblokir, seperti sesi yang melaporkan kesalahan "Waiting for table metadata lock". Durasi eksekusi pernyataan SQL yang memblokir melebihi 30 detik. Pernyataan SQL yang memblokir menempati sumber daya untuk waktu yang lama, sehingga pernyataan SQL lain mungkin gagal dieksekusi. Pernyataan SQL yang sering memblokir termasuk pernyataan FLUSH TABLES WITH READ LOCK dan pernyataan DDL yang menunggu kunci metadata karena transaksi tertunda.

  • Sesi yang berisi transaksi dengan durasi melebihi 30 detik.

  • Sesi yang berisi transaksi yang belum dikomit untuk waktu yang lama. Jika transaksi dimulai dalam sesi tetapi tidak ada pernyataan SQL baru yang dieksekusi selama lebih dari 10 detik, kemungkinan besar perintah COMMIT dihilangkan dari kode. Ini dapat menyebabkan transaksi menempati sumber daya untuk waktu yang lama dan gagal melepaskan sumber daya secepat mungkin.