全部产品
Search
文档中心

Database Autonomy Service:Pembatasan SQL Otomatis

更新时间:Jul 06, 2025

Jika jumlah pernyataan SQL bersamaan meningkat signifikan akibat lonjakan trafik tak terduga, beberapa pernyataan SQL mengonsumsi banyak sumber daya database, atau sejumlah besar pernyataan SQL tanpa indeks dijalankan, Anda harus membatasi konkurensi pernyataan SQL untuk menjaga stabilitas bisnis. Database Autonomy Service (DAS) menyediakan fitur pembatasan SQL otomatis yang secara otomatis mengekstrak karakteristik pernyataan SQL dan membatasi pernyataan SQL bermasalah berdasarkan kata kunci.

Prasyarat

Instansi database yang ingin Anda kelola adalah salah satu jenis yang dijelaskan dalam tabel berikut.

Instansi database

Wilayah

  • ApsaraDB RDS for MySQL Edisi High-availability atau Enterprise

    Catatan

    ApsaraDB RDS for MySQL instansi yang menjalankan MySQL 5.5 tidak didukung.

  • PolarDB for MySQL Edisi Kluster

    Catatan

    PolarDB for MySQL Edisi Kluster yang memiliki satu node tidak didukung.

  • ApsaraDB MyBase for MySQL Edisi High-availability

Fitur pembatasan SQL otomatis bergantung pada fitur deteksi anomali. Anda hanya dapat mengaktifkan pembatasan SQL otomatis untuk instansi database di wilayah yang mendukung fitur deteksi anomali. Wilayah-wilayah berikut didukung:

Cina (Hangzhou), Cina (Shanghai), Cina (Shenzhen), Cina (Heyuan), Cina (Guangzhou), Cina (Qingdao), Cina (Beijing), Cina (Zhangjiakou), Cina (Hohhot), Cina (Ulanqab), Cina (Nanjing - Local Region), Cina (Fuzhou - Local Region), Cina (Chengdu), Cina (Zhengzhou - Local Region), Cina (Hong Kong), Jepang (Tokyo), Korea Selatan (Seoul), Singapura, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Filipina (Manila), Thailand (Bangkok), UEA (Dubai), SAU (Riyadh - Partner Region), Jerman (Frankfurt), AS (Silicon Valley), AS (Virginia), dan Inggris (London)

Skenario

Fitur pembatasan SQL otomatis berlaku untuk skenario berikut:

  • Trafik: Penetrasi cache atau permintaan mencurigakan menyebabkan lonjakan kueri SQL bersamaan dari tipe tertentu.

  • Data: Sejumlah besar kueri SQL dikirimkan dari sumber yang sama. Misalnya, pengguna platform belanja online menempatkan banyak pesanan, sehingga mengirimkan banyak kueri SQL terkait akun pengguna yang mengonsumsi sumber daya database dalam jumlah besar.

  • Pernyataan SQL: Sejumlah besar pernyataan SQL tanpa indeks dijalankan, memengaruhi kinerja database.

Batasan

Mode pembatasan pembatasan SQL otomatis adalah Dibatasi Berdasarkan Kata Kunci:

  • Pernyataan SQL dari jenis berikut dapat dibatasi: SELECT, UPDATE, DELETE, dan INSERT.

  • Pernyataan SQL dari tipe INSERT...SELECT... tidak dapat dibatasi.

  • Hanya instansi ApsaraDB RDS for MySQL yang menjalankan MySQL 8.0 dan kluster PolarDB for MySQL yang menjalankan MySQL 5.7 atau 8.0 yang dapat membatasi pernyataan SQL tipe INSERT.

Deskripsi Fitur

Setelah membuat aturan pembatasan SQL otomatis untuk instansi database, jika aplikasi yang terhubung ke instansi mengeksekusi pernyataan SQL yang dibatasi, informasi berikut akan dikembalikan:

  • Untuk instansi ApsaraDB RDS for MySQL yang menjalankan MySQL 5.6 atau 5.7 atau kluster PolarDB for MySQL yang menjalankan MySQL 5.6, sistem database mengembalikan kode kesalahan 1317 dengan pesan "eksekusi query terganggu".

  • Untuk instansi ApsaraDB RDS for MySQL yang menjalankan MySQL 8.0 atau kluster PolarDB for MySQL yang menjalankan MySQL 5.7 atau 8.0, pernyataan SQL masuk ke status Menunggu kontrol konkurensi. Jika jumlah pernyataan SQL dalam status ini melebihi ambang batas yang ditentukan oleh parameter ccl_max_waiting_count (jika versi instansi mendukung parameter ini), sistem database mengembalikan salah satu kode kesalahan berikut:

    • ERROR 7534 (HY000) untuk instansi ApsaraDB RDS for MySQL yang menjalankan MySQL 8.0.

    • ERROR 3277 (HY000) untuk kluster PolarDB for MySQL yang menjalankan MySQL 5.7.

    • ERROR 7533 (HY000) untuk kluster PolarDB for MySQL yang menjalankan MySQL 8.0.

    Jika parameter ccl_max_waiting_count disetel ke nilai default 0, semua pernyataan SQL yang dibatasi tetap dalam status Menunggu kontrol konkurensi tanpa kesalahan yang dikembalikan. Jika menggunakan DAS untuk menerapkan pembatasan SQL dan menyetel parameter ccl_max_waiting_count ke 0, DAS mengubah nilai parameter ini ke nilai default yang didefinisikan di DAS, yaitu 10. Jika menyetel parameter ccl_max_waiting_count ke nilai lebih besar dari 0, DAS menggunakan nilai tersebut untuk menerapkan pembatasan SQL.

Untuk informasi lebih lanjut tentang pembatasan SQL otomatis, lihat Pembatasan SQL Otomatis.

Prosedur

  1. Masuk ke Konsol DAS.

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

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

  4. Di halaman detail instansi, klik Autonomy Center di panel navigasi sebelah kiri.

  5. Di halaman Autonomy Center, klik Autonomy Service Settings di pojok kanan atas.

    开关设置

  6. Pada tab Autonomous Function Settings di panel Autonomous Function Management, aktifkan layanan otonomi. Pada tab Optimization and Throttling, pilih Automatic Throttling dan konfigurasikan parameter yang dijelaskan dalam tabel berikut untuk menentukan kondisi pemicu pembatasan SQL otomatis.

    2

    Parameter

    Deskripsi

    CPU Utilization >

    Ambang batas untuk pemanfaatan CPU. Atur parameter ini ke nilai yang lebih besar dari atau sama dengan 70.

    Number of Active Sessions >

    Ambang batas untuk jumlah sesi aktif.

    • Tentukan bilangan bulat yang lebih besar dari atau sama dengan 16 jika ambang batas untuk pemanfaatan CPU dan ambang batas untuk jumlah sesi aktif dievaluasi menggunakan operator ATAU.

    • Tentukan bilangan bulat yang lebih besar dari atau sama dengan 2 jika ambang batas untuk pemanfaatan CPU dan ambang batas untuk jumlah sesi aktif dievaluasi menggunakan operator DAN.

    Available Time Range

    Periode waktu selama pembatasan SQL otomatis dilakukan.

    Maximum Throttling Duration

    Durasi maksimum untuk pembatasan SQL.

    Jika Anda mengatur parameter Maximum Throttling Duration ke 0, pembatasan SQL otomatis akan dipicu ketika instance database Anda memenuhi kondisi yang Anda tentukan. Namun, pembatasan SQL otomatis segera menjadi tidak valid.

    Duration >

    Ambang batas untuk periode waktu selama pemanfaatan CPU dan jumlah sesi aktif memenuhi kondisi tertentu. Jika ambang batas yang ditentukan terlampaui, pembatasan SQL otomatis akan dipicu.

    Catatan

    Sebagai contoh, Anda dapat menentukan kondisi berikut: Pemanfaatan CPU melebihi 80%, jumlah sesi aktif lebih besar dari 64, dan situasi abnormal berlangsung selama lebih dari 2 menit. Jika kondisi ini terpenuhi dalam jendela pembatasan tertentu, pembatasan SQL otomatis akan dipicu, dan DAS mulai memantau kinerja instance database Anda.

    • Jika masalah tetap ada setelah pembatasan SQL otomatis dilakukan, DAS secara otomatis membatalkan operasi pembatasan tersebut.

    • Durasi pembatasan SQL otomatis tidak melebihi durasi pembatasan maksimum yang ditentukan.

  7. Klik OK.

    Anda dapat melihat pernyataan SQL yang dibatasi dari instance database di halaman Instance Sessions. Untuk informasi lebih lanjut, lihat bagian Lihat riwayat pembatasan SQL otomatis dari topik ini.

  8. Opsional. Klik tab Event Subscription Settings di panel Manajemen Fungsi Otonom untuk mengonfigurasi aturan notifikasi untuk acara pembatasan SQL otomatis.

    Ketika pembatasan SQL otomatis dipicu, DAS mengirimkan notifikasi untuk acara Warning. Untuk menerima notifikasi, Anda dapat mengaktifkan Enable Subscription Service dan mengonfigurasi parameter. Untuk informasi lebih lanjut, lihat Langganan Acara.

  9. Di bagian Alert Configuration, konfigurasikan template peringatan dan langganan notifikasi peringatan. Ini membantu Anda memahami status tugas pembatasan SQL otomatis pada kesempatan pertama.

    Sistem merekomendasikan template peringatan dan menambahkan aturan peringatan untuk acara otonomi yang diperlukan dalam template peringatan. Anda dapat mengonfigurasi template peringatan sesuai petunjuk.

    Catatan
    • Jika telah mengonfigurasi template peringatan untuk instansi database Anda, Anda harus menambahkan aturan peringatan untuk acara otonomi yang diperlukan ke template peringatan sesuai petunjuk.

    • Untuk informasi lebih lanjut tentang cara mengonfigurasi template peringatan dan aturan peringatan untuk instansi database Anda, lihat Konfigurasi Template Peringatan dan Konfigurasi Aturan Peringatan.

  10. Di bagian Select Contact Group, pilih grup kontak peringatan.

    • Klik Add Contact untuk menambahkan kontak peringatan.

    • Klik Create Contact Group untuk membuat grup kontak peringatan.

    • Temukan kontak peringatan yang ingin dikelola dan klik Edit atau Remove di kolom Aksi untuk memodifikasi atau menghapus informasi tentang kontak peringatan.

    Untuk informasi lebih lanjut, lihat Kelola Kontak Peringatan.

  11. Klik Submit Configuration. Di kotak dialog yang muncul, konfirmasikan konfigurasi.

Lihat Riwayat Pembatasan SQL Otomatis

  1. Masuk ke Konsol DAS.

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

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

  4. Di panel navigasi sebelah kiri, klik Instance Sessions.

  5. Di bagian Instance Sessions pada tab Manajemen Sesi, Anda dapat melakukan operasi berdasarkan kebutuhan bisnis Anda.

    ss

    • Klik SQL Throttling. Di dalam kotak dialog SQL Throttling, Anda dapat melakukan operasi berikut:

      • Klik tab Running untuk melihat aturan pembatasan yang sedang dipicu.

      • Klik tab Complete dan pilih rentang waktu untuk melihat riwayat pembatasan dalam rentang waktu yang ditentukan.

      SQL限流

    • Jika memilih Kill Abnormal SQL Statements in Execution saat mengonfigurasi parameter untuk pembatasan SQL otomatis, Anda dapat mengklik End Session History untuk melihat sesi yang telah diakhiri.

Referensi

  • Anda dapat mengoptimalkan pernyataan SQL untuk meningkatkan kinerja database, efisiensi kueri, dan mengurangi konsumsi sumber daya.

    • Untuk informasi lebih lanjut tentang optimasi SQL otomatis, lihat Optimasi SQL Otomatis.

    • Untuk informasi lebih lanjut tentang optimasi SQL manual, lihat Optimasi SQL.

  • Jika pembatasan SQL otomatis tidak dapat dipicu karena Penggunaan CPU atau Jumlah Sesi Aktif dari instansi tidak mencapai ambang batas yang ditentukan tetapi Anda ingin mengaktifkan pembatasan SQL, Anda dapat secara manual mengonfigurasi aturan untuk membatasi pernyataan SQL. Untuk informasi lebih lanjut, lihat Pembatasan SQL.

Operasi API Terkait

Operasi

Deskripsi

UpdateAutoThrottleRulesAsync

Menentukan parameter pembatasan SQL otomatis untuk beberapa instansi database secara asinkron pada satu waktu.

GetAutoThrottleRules

Mengquery aturan pembatasan SQL otomatis dari instansi database.

DisableAutoThrottleRules

Menonaktifkan fitur pembatasan SQL otomatis untuk beberapa instansi database pada satu waktu.