全部产品
Search
文档中心

ApsaraDB RDS:FAQ tentang fitur log query umum ApsaraDB RDS for MySQL

更新时间:Jul 06, 2025

Jika fitur log query umum diaktifkan untuk instance ApsaraDB RDS for MySQL Anda, file log query umum mencatat semua operasi pengguna, termasuk detail eksekusi setiap pernyataan SQL. Jika sejumlah besar permintaan akses diproses atau file log query umum tidak dibersihkan dalam waktu lama, sumber daya penyimpanan akan terkuras. Akibatnya, kapasitas penyimpanan dapat habis. Topik ini menjawab beberapa pertanyaan umum tentang fitur log query umum ApsaraDB RDS for MySQL.

Informasi latar belakang

Secara default, ApsaraDB RDS for MySQL menyimpan log query umum ke tabel dengan alasan berikut:

  1. Log query umum yang disimpan dalam file tidak dapat langsung di-query atau diunduh, karena pengguna tidak diizinkan mengakses file di ApsaraDB RDS for MySQL.

  2. Format output log query umum dan log query lambat ditentukan oleh nilai parameter log_output. ApsaraDB RDS for MySQL memutar log query lambat, yang mengharuskan log query lambat disimpan dalam tabel. Oleh karena itu, log query umum juga harus disimpan dalam tabel.

Log query umum menempati banyak penyimpanan

Deskripsi masalah

Kapasitas penyimpanan instance RDS habis. Untuk memeriksa apakah masalah ini kemungkinan besar disebabkan oleh ukuran log query umum yang terlalu besar, ikuti langkah-langkah berikut:

  1. Periksa penggunaan penyimpanan instance RDS. File sys_data_size terlalu besar. Untuk informasi lebih lanjut, lihat Lihat Informasi Pemantauan.

  2. Lihat Parameter Instance. Parameter general_log diatur ke ON.

Penyebab

Jika fitur log query umum diaktifkan untuk instance RDS Anda, file log query umum mencatat semua operasi pengguna, termasuk detail eksekusi setiap pernyataan SQL seperti SELECT, INSERT, UPDATE, atau DELETE. Jika sejumlah besar permintaan akses diproses atau file log query umum tidak dibersihkan dalam waktu lama, ukuran file log query umum terus bertambah. Jika masalah ini tidak segera diselesaikan, kapasitas penyimpanan akan habis.

Log query umum menyebabkan masalah kinerja

Deskripsi masalah

Seiring meningkatnya jumlah koneksi, utilisasi CPU juga meningkat. Setelah menjalankan pernyataan SHOW PROCESSLIST atau menanyakan tabel innodb_trx, hasilnya menunjukkan bahwa sejumlah besar koneksi berada dalam status Menunggu kunci tingkat tabel.

Penyebab

Secara default, log query umum dari instance RDS Anda disimpan dalam tabel. Setiap thread secara berurutan menulis data ke tabel karena proses tersebut memerlukan Metadata Locks (MDL) dan kunci tabel. Dalam hal ini, koneksi memasuki status Menunggu kunci tingkat tabel ketika beberapa thread mencoba menulis data secara bersamaan ke tabel.

Log query umum menyebabkan RTO lebih lama

Deskripsi masalah

Waktu Tujuan Pemulihan (RTO) instance RDS Anda meningkat. Selama periode pemulihan, instance RDS tidak tersedia.

Penyebab

Jika instance RDS Anda mati secara tak terduga, penanda crash log query umum bernilai true. Dalam hal ini, instance RDS memulai proses pemulihan otomatis saat restart. Selama pemulihan, jika ukuran tabel pada instance RDS besar, diperlukan waktu lama untuk memulihkan tabel dan instance RDS tetap tidak tersedia.

Solusi

Anda dapat membersihkan log umum untuk menyelesaikan masalah ini.

  1. Untuk mencegah log baru dihasilkan, atur parameter general_log ke OFF. Untuk informasi lebih lanjut, lihat Ubah Parameter Instance ApsaraDB RDS for MySQL.

  2. Gunakan akun istimewa untuk terhubung ke instance RDS dan jalankan pernyataan berikut untuk membersihkan file log query umum. Setelah beberapa saat, Anda dapat melihat sumber daya penyimpanan yang digunakan oleh file log query umum pada halaman pemantauan instance.

    Catatan

    Anda tidak dapat menjalankan pernyataan TRUNCATE untuk membersihkan file log query umum instance RDS yang menjalankan MySQL 5.6. Untuk informasi lebih lanjut, lihat Fitur. Jika Anda ingin membersihkan file log query umum, hubungi Dukungan Teknis.

    TRUNCATE TABLE mysql.general_log;

Kami merekomendasikan agar Anda menonaktifkan fitur log query umum untuk instance RDS Anda dan hanya mengaktifkannya sementara selama debugging atau pelacakan masalah. Setelah debugging atau pelacakan selesai, segera nonaktifkan fitur tersebut dan bersihkan log query umum. Ini mencegah akumulasi file dan kehabisan kapasitas penyimpanan yang disebabkan oleh sejumlah besar permintaan akses atau log query umum yang tidak dibersihkan dalam waktu lama. Jika Anda ingin memeriksa dan menganalisis eksekusi pernyataan SQL, gunakan salah satu metode berikut:

  • Aktifkan Fitur SQL Explorer dan Audit: Kami merekomendasikan agar Anda menggunakan metode ini. Setelah mengaktifkan fitur ini, sistem secara otomatis mencatat dan menganalisis pernyataan SQL yang dieksekusi. Data terkait fitur ini disimpan di Database Autonomy Service (DAS) dan tidak menempati kapasitas penyimpanan instance RDS Anda. Oleh karena itu, fitur ini tidak memengaruhi kinerja instance. Untuk informasi lebih lanjut, lihat Gunakan Fitur SQL Explorer dan Audit.

  • Sementara Waktu Aktifkan Fitur Log Query Umum: Anda dapat sementara waktu mengaktifkan fitur log query umum untuk debugging dan melacak masalah. Setelah mengaktifkan fitur log query umum, jalankan pernyataan berikut untuk memeriksa eksekusi pernyataan SQL. Setelah debugging selesai, nonaktifkan fitur log query umum dan bersihkan file log query umum. Untuk informasi lebih lanjut tentang cara mengaktifkan log umum, lihat Ubah Parameter Instance ApsaraDB RDS for MySQL.

    SELECT * FROM mysql.general_log;

Apa yang harus dilakukan selanjutnya

Anda dapat secara manual memperluas kapasitas penyimpanan atau mengaktifkan fitur ekspansi penyimpanan otomatis untuk instance RDS. Ketika penggunaan penyimpanan instance RDS mencapai ambang batas tertentu, sistem secara otomatis memperluas kapasitas penyimpanan instance RDS. Untuk informasi lebih lanjut, lihat Ubah Spesifikasi Instance dan Konfigurasikan Ekspansi Penyimpanan Otomatis.