All Products
Search
Document Center

Database Autonomy Service:Pembatasan SQL Otomatis

Last Updated:Mar 28, 2026

Ketika eksekusi SQL konkuren melonjak—akibat cache penetration, traffic mencurigakan, atau indeks yang tidak tersedia—fitur Pembatasan SQL Otomatis akan aktif untuk melindungi instans database Anda. Database Autonomy Service (DAS) memantau kinerja, mendeteksi anomali, dan secara otomatis mengekstraksi karakteristik SQL untuk membatasi pernyataan bermasalah berdasarkan kata kunci.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Jenis instans database yang didukung:

    • ApsaraDB RDS for MySQL Edisi Ketersediaan Tinggi atau Edisi Perusahaan (MySQL 5.5 tidak didukung)

    • PolarDB for MySQL Cluster Edition (kluster single-node tidak didukung)

    • ApsaraDB MyBase for MySQL Edisi Ketersediaan Tinggi

  • Instans database di wilayah yang mendukung fitur deteksi anomali. Wilayah yang didukung: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Shenzhen), Tiongkok (Heyuan), Tiongkok (Guangzhou), Tiongkok (Qingdao), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Hohhot), Tiongkok (Ulanqab), Tiongkok (Nanjing - Local Region), Tiongkok (Fuzhou - Local Region), Tiongkok (Chengdu), Tiongkok (Zhengzhou - Local Region), Tiongkok (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)

Kasus Penggunaan

SkenarioDeskripsi
Traffic spikeCache penetration atau permintaan mencurigakan menyebabkan lonjakan kueri SQL konkuren dari jenis tertentu.
Single-source overloadSejumlah besar kueri SQL berasal dari sumber yang sama — misalnya, satu pengguna melakukan banyak pesanan di platform e-commerce.
Missing indexesSejumlah besar pernyataan SQL dijalankan tanpa indeks, sehingga menurunkan kinerja database.

Batasan

Pembatasan SQL otomatis hanya menggunakan mode Throttled by Keywords.

  • Jenis pernyataan yang dapat dibatasi: SELECT, UPDATE, DELETE, dan INSERT

  • Pernyataan INSERT...SELECT... tidak dapat dibatasi

  • Pembatasan INSERT hanya didukung pada ApsaraDB RDS for MySQL yang menjalankan MySQL 8.0 dan kluster PolarDB for MySQL yang menjalankan MySQL 5.7 atau 8.0

Cara Kerja

Saat aturan pembatasan aktif dan aplikasi mengeksekusi pernyataan SQL yang cocok, database akan mengembalikan error atau menahan pernyataan dalam status menunggu tergantung pada versi MySQL.

MySQL 5.6 dan 5.7 (ApsaraDB RDS for MySQL) serta MySQL 5.6 (PolarDB for MySQL)

Database mengembalikan kode kesalahan 1317 dengan pesan query execution was interrupted.

MySQL 8.0 (ApsaraDB RDS for MySQL) dan MySQL 5.7 atau 8.0 (PolarDB for MySQL)

Pernyataan yang cocok masuk ke status Concurrency control waiting. Setelah jumlah pernyataan yang menunggu melebihi ambang batas ccl_max_waiting_count, database mengembalikan salah satu error berikut:

Jenis instansKode kesalahan
ApsaraDB RDS for MySQL 8.0ERROR 7534 (HY000)
PolarDB for MySQL 5.7ERROR 3277 (HY000)
PolarDB for MySQL 8.0ERROR 7533 (HY000)

Tentang `ccl_max_waiting_count`: Nilai default-nya adalah 0, yang membuat semua pernyataan yang dibatasi tetap dalam status menunggu tanpa mengembalikan error. Saat DAS menerapkan aturan pembatasan dan mendeteksi bahwa ccl_max_waiting_count bernilai 0, DAS secara otomatis mengaturnya menjadi 10. Jika Anda mengaturnya ke nilai apa pun yang lebih besar dari 0, DAS akan menggunakan nilai tersebut.

Untuk ikhtisar konseptual tentang Pembatasan SQL Otomatis, lihat Pembatasan SQL Otomatis.

Aktifkan Pembatasan SQL Otomatis

  1. Masuk ke Konsol DAS.

  2. Di panel navigasi sebelah kiri, klik Instance Monitoring.

  3. Temukan instans database yang ingin Anda kelola dan klik ID instans-nya untuk membuka halaman detail instans.

  4. Di panel navigasi sebelah kiri, klik Autonomy Center.

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

开关设置
  1. Di tab Autonomous Function Settings pada panel Autonomous Function Management, aktifkan layanan otonomi. Lalu buka tab Optimization and Throttling, pilih Automatic Throttling, dan konfigurasikan parameter berikut.

2
ParameterDeskripsi
CPU Utilization >Ambang batas utilisasi CPU. Atur ke 70 atau lebih tinggi.
Number of Active Sessions >Ambang batas sesi aktif. Atur ke 16 atau lebih tinggi jika dikombinasikan dengan utilisasi CPU menggunakan operator OR; atur ke 2 atau lebih tinggi jika menggunakan operator AND.
Available Time RangeRentang waktu selama pembatasan otomatis diperbolehkan berjalan.
Maximum Throttling DurationDurasi maksimum untuk satu event pembatasan. Jika diatur ke 0, pembatasan dipicu tetapi langsung dinonaktifkan — tidak ada pernyataan SQL yang benar-benar dibatasi.
Duration >Berapa lama utilisasi CPU dan sesi aktif harus terus-menerus memenuhi ambang batas sebelum pembatasan dipicu.
Contohnya, atur utilisasi CPU di atas 80%, sesi aktif di atas 64, dan durasi di atas 2 menit. Ketika kondisi ini terpenuhi dalam rentang waktu yang dikonfigurasi, DAS mulai membatasi dan memantau instans. Jika masalah tetap berlanjut setelah pembatasan, DAS secara otomatis membatalkan operasi pembatasan tersebut. Durasi pembatasan tidak akan melebihi durasi maksimum pembatasan yang Anda konfigurasi.
  1. Klik OK. Setelah pembatasan dipicu, lihat aturan pembatasan aktif dan riwayatnya di halaman Instance Sessions. Untuk detailnya, lihat Lihat riwayat pembatasan.

  2. (Opsional) Klik tab Event Subscription Settings untuk mengonfigurasi notifikasi untuk event pembatasan SQL otomatis. Saat pembatasan SQL otomatis dipicu, DAS mengirim notifikasi event Warning. Aktifkan Enable Subscription Service dan konfigurasikan parameter-parameter tersebut. Untuk informasi lebih lanjut, lihat Event subscription.

  3. Di bagian Alert Configuration, konfigurasikan templat peringatan dan berlangganan pemberitahuan peringatan untuk melacak status tugas pembatasan secara real time. DAS merekomendasikan templat peringatan dan secara otomatis menambahkan aturan peringatan untuk event otonomi yang diperlukan. Konfigurasikan templat sesuai petunjuk.

    Jika templat peringatan sudah dikonfigurasi untuk instans Anda, tambahkan aturan peringatan untuk event otonomi yang diperlukan ke templat yang sudah ada sesuai petunjuk. Untuk informasi lebih lanjut, lihat Konfigurasi templat peringatan dan Konfigurasi aturan peringatan.
  4. Pada bagian Select Contact Group, pilih kelompok kontak peringatan. Untuk informasi selengkapnya, lihat Mengelola kontak peringatan.

    • Klik Add Contact untuk menambahkan kontak peringatan.

    • Klik Create Contact Group untuk membuat kelompok kontak peringatan baru.

    • Untuk mengedit atau menghapus kontak yang sudah ada, klik Edit atau Remove di kolom Actions.

  5. Klik Submit Configuration dan konfirmasi pengaturan di kotak dialog.

Lihat Riwayat Pembatasan

  1. Masuk ke Konsol DAS.

  2. Di panel navigasi sebelah kiri, klik Instance Monitoring.

  3. Temukan instans database yang ingin Anda kelola dan klik ID instans-nya untuk membuka halaman detail instans.

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

  5. Di bagian Instance Sessions pada tab Session Management, lakukan tindakan yang relevan.

ss
  • Klik SQL Throttling untuk membuka kotak dialog SQL Throttling:

    • Tab Running: Lihat aturan pembatasan yang sedang berlaku.

    • Tab Complete: Pilih rentang waktu untuk meninjau event pembatasan historis.

SQL限流

    Langkah Berikutnya

    • Optimalkan pernyataan SQL untuk mengurangi konsumsi resource dan meningkatkan efisiensi kueri:

    • Pembatasan SQL manual: Jika utilisasi CPU atau sesi aktif tidak mencapai ambang batas yang diperlukan untuk memicu pembatasan otomatis, konfigurasikan aturan secara manual. Lihat Pembatasan SQL.

    Referensi API

    OperasiDeskripsi
    UpdateAutoThrottleRulesAsyncMengonfigurasi parameter pembatasan SQL otomatis untuk beberapa instans database sekaligus secara asinkron.
    GetAutoThrottleRulesMenanyakan aturan pembatasan SQL otomatis dari instans database.
    DisableAutoThrottleRulesMenonaktifkan pembatasan SQL otomatis untuk beberapa instans database sekaligus.