全部产品
Search
文档中心

ApsaraDB RDS:FAQ tentang Log Query Umum ApsaraDB RDS untuk MySQL

更新时间:Nov 10, 2025

Ketika log query umum diaktifkan, ia mencatat semua operasi pengguna, termasuk detail eksekusi setiap Pernyataan SQL. Jika instans Anda menangani lalu lintas tinggi atau Anda tidak membersihkan file log query umum untuk waktu yang lama, file tersebut dapat mengonsumsi sejumlah besar ruang penyimpanan dan menyebabkan penyimpanan habis. Topik ini menjelaskan masalah umum dan solusi terkait log query umum.

Informasi latar belakang

ApsaraDB RDS untuk MySQL menyimpan log query umum dalam format TABLE secara default karena alasan berikut:

  1. Anda tidak dapat memeriksa atau mengunduh langsung log yang disimpan dalam format FILE karena Anda tidak dapat mengakses langsung file dari instans ApsaraDB RDS untuk MySQL.

  2. Parameter `log_output` memengaruhi baik log query umum maupun log kueri lambat. ApsaraDB RDS untuk MySQL menggunakan mekanisme rotasi untuk mengumpulkan log kueri lambat, yang memerlukan penyimpanannya dalam format TABLE. Oleh karena itu, log query umum juga harus disimpan dalam format TABLE.

Log query umum menempati sejumlah besar ruang penyimpanan

Deskripsi masalah

Ruang penyimpanan instans ApsaraDB RDS untuk MySQL Anda penuh. Anda bisa melihat penggunaan penyimpanan instans. Jika Anda menemukan bahwa `general_log_size` terlalu besar, masalah ini disebabkan oleh file log query umum yang terlalu besar.

Penyebab

Ketika log query umum diaktifkan untuk instans ApsaraDB RDS untuk MySQL, file log mencatat semua operasi pengguna, termasuk detail setiap pernyataan SQL seperti kueri, insert, update, dan delete. Jika instans menangani lalu lintas tinggi atau file log query umum tidak dibersihkan untuk waktu yang lama, file tersebut terus bertambah. Jika tidak ditangani dengan segera, file tersebut pada akhirnya akan menghabiskan ruang penyimpanan instans.

Log query umum menyebabkan masalah kinerja

Deskripsi masalah

Jumlah koneksi dan utilisasi CPU meningkat. Ketika Anda menjalankan SHOW PROCESSLIST atau memeriksa tabel `innodb_trx`, Anda dapat melihat bahwa banyak koneksi berada dalam status `Menunggu kunci tingkat tabel`.

Penyebab

ApsaraDB RDS untuk MySQL menggunakan format TABLE sebagai penyimpanan default untuk log query umum. Thread menulis ke log query umum secara serial. Menulis ke log memerlukan kunci metadata (MDL) dan kunci tingkat tabel. Kunci tingkat tabel ini menyebabkan koneksi masuk ke status `Menunggu kunci tingkat tabel`.

Log query umum menyebabkan RTO lebih lama

Deskripsi masalah

Waktu pemulihan instans setelah crash bertambah, yang menghasilkan Recovery Time Objective (RTO) yang lebih lama. Selama periode ini, instans tidak tersedia.

Penyebab

Jika instans mati secara tak terduga, tanda crash untuk log query umum diatur menjadi true. Hal ini memicu proses pemulihan otomatis ketika instans dihidupkan ulang. Jika tabel besar, pemulihan memakan waktu lama. Instans tidak tersedia selama proses ini.

Solusi

Bersihkan file log query umum

  1. Nonaktifkan log query umum dengan mengatur parameter `general_log` ke OFF. Ini mencegah pembuatan log baru. Untuk informasi lebih lanjut, lihat Setel Parameter Instans.

  2. Gunakan akun istimewa untuk terhubung ke instans ApsaraDB RDS untuk MySQL. Kemudian, jalankan pernyataan berikut untuk membersihkan file log query umum. Setelah beberapa saat, Anda dapat memeriksa penggunaan penyimpanan log query umum pada halaman pemantauan instans.

    Catatan

    Anda tidak dapat menjalankan perintah `TRUNCATE` untuk membersihkan file log query umum pada instans ApsaraDB RDS untuk MySQL 5.6. Untuk membersihkan file tersebut, Anda harus menghubungi kami.

    TRUNCATE TABLE mysql.general_log;

Nonaktifkan log query umum selama penggunaan database normal. Aktifkan hanya sementara untuk debugging atau melacak masalah. Setelah selesai, bersihkan dan nonaktifkan log dengan segera. Ini mencegah akumulasi file log dan kehabisan penyimpanan yang dapat disebabkan oleh lalu lintas tinggi atau tidak membersihkan log untuk waktu yang lama. Untuk melihat dan menganalisis detail eksekusi pernyataan SQL, Anda dapat memilih salah satu dari dua metode berikut:

  • (Direkomendasikan) Aktifkan SQL Explorer dan Audit. Sistem secara otomatis mencatat dan menganalisis pernyataan SQL yang dieksekusi. Wawasan dan data audit yang dihasilkan disimpan di Database Autonomy Service (DAS). Metode ini tidak menggunakan ruang penyimpanan instans RDS Anda atau memengaruhi performanya.

  • Aktifkan Sementara Log Query Umum. Anda dapat mengaktifkan sementara log query umum untuk debugging atau melacak masalah. Gunakan perintah berikut untuk memeriksa eksekusi pernyataan SQL. Setelah selesai debugging, nonaktifkan dan bersihkan file log query umum.

    SELECT * FROM mysql.general_log;

Pemeliharaan selanjutnya

Anda dapat memperluas ruang penyimpanan instans secara manual atau mengaktifkan fitur ekspansi penyimpanan otomatis. Jika Anda mengaktifkan ekspansi penyimpanan otomatis, sistem secara otomatis memperluas ruang penyimpanan ketika penggunaan penyimpanan mencapai ambang batas tertentu.