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 |
| 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 konkurensitanpa 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
Masuk ke Konsol DAS.
Di panel navigasi sebelah kiri, pilih Intelligent O&M Center > Instance Monitoring.
Di halaman yang muncul, temukan instansi database yang ingin dikelola dan klik ID instansi. Halaman detail instansi akan muncul.
Di halaman detail instansi, klik Autonomy Center di panel navigasi sebelah kiri.
Di halaman Autonomy Center, klik Autonomy Service Settings di pojok kanan atas.

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.

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.
CatatanSebagai 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.
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.
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.
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.
CatatanJika 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.
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.
Klik Submit Configuration. Di kotak dialog yang muncul, konfirmasikan konfigurasi.
Lihat Riwayat Pembatasan SQL Otomatis
Masuk ke Konsol DAS.
Di panel navigasi sebelah kiri, pilih Intelligent O&M Center > Instance Monitoring.
Di halaman yang muncul, temukan instansi database yang ingin dikelola dan klik ID instansi. Halaman detail instansi akan muncul.
Di panel navigasi sebelah kiri, klik Instance Sessions.
Di bagian Instance Sessions pada tab Manajemen Sesi, Anda dapat melakukan operasi berdasarkan kebutuhan bisnis Anda.

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.

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 |
Menentukan parameter pembatasan SQL otomatis untuk beberapa instansi database secara asinkron pada satu waktu. | |
Mengquery aturan pembatasan SQL otomatis dari instansi database. | |
Menonaktifkan fitur pembatasan SQL otomatis untuk beberapa instansi database pada satu waktu. |