Ketika database mengalami masalah penantian kunci (lock wait), Anda dapat menggunakan fitur analisis kunci untuk menganalisis deadlock, pemblokiran transaksi, dan penantian kunci metadata secara visual. Fitur ini membantu Anda menemukan dan menyelesaikan masalah tersebut dengan cepat guna memastikan stabilitas database.
Prasyarat
Database target menjalankan salah satu mesin database berikut:
ApsaraDB RDS for MySQL
MySQL yang dikelola sendiri
PolarDB for MySQL
PolarDB-X 2.0
Instansiasi basis data target terhubung ke Database Autonomy Service (DAS) dan statusnya adalah Normal Access. Untuk informasi selengkapnya, lihat Menghubungkan instansiasi basis data ke DAS.
Tindakan pencegahan
Fitur analisis deadlock tidak dapat digunakan untuk menganalisis deadlock yang berisi pesan berikut: TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION.
Fitur
Fitur analisis kunci menyediakan analisis multidimensi terhadap deadlock, pemblokiran transaksi, dan penantian kunci metadata pada sebuah instans database.
Fitur analisis deadlock lengkap dan analisis kunci lainnya hanya didukung untuk instans database ApsaraDB RDS for MySQL dan PolarDB for MySQL. Untuk menggunakan fitur-fitur ini, aktifkan Alibaba Cloud Managed Services (sebelumnya Edisi Ekonomi). Perlu diperhatikan bahwa Alibaba Cloud Managed Services (sebelumnya Edisi Ekonomi) hanya tersedia di wilayah tertentu. Untuk informasi selengkapnya, lihat Database dan wilayah yang didukung. Untuk mengaktifkan layanan ini, lihat Mengelola Alibaba Cloud Managed Services (sebelumnya Edisi Ekonomi).
Analisis deadlock terbaru: DAS menganalisis log deadlock terbaru yang dikembalikan oleh perintah
SHOW ENGINE INNODB STATUS. Jika terjadi beberapa deadlock, DAS hanya menganalisis yang paling baru. Untuk informasi selengkapnya, lihat Analisis deadlock terbaru.Analisis deadlock lengkap: DAS secara berkala menganalisis log kesalahan, mengurai informasi deadlock, dan melakukan analisis deadlock komprehensif. DAS juga memungkinkan Anda melihat tren deadlock dalam rentang waktu tertentu serta detail setiap deadlock. Untuk informasi selengkapnya, lihat Analisis deadlock lengkap.
Analisis kunci lainnya: DAS menganalisis kunci metadata dan transaksi yang diblokir dalam sesi saat ini pada instans database Anda secara real-time menggunakan data dari
information_schemadanperformance_schema. Untuk informasi selengkapnya, lihat Analisis kunci lainnya.Analisis kunci metadata: DAS melakukan inferensi terhadap hubungan penantian kunci dan menghasilkan grafik yang sesuai berdasarkan data dari tabel seperti
information_schema.processlist.Analisis pemblokiran transaksi: DAS menganalisis hubungan pemblokiran transaksi dan menghasilkan grafik yang sesuai berdasarkan data dari
information_schema.processlist,information_schema.innodb_trx, dan salah satu dariinformation_schema.innodb_lock_waits(untuk MySQL 5.6 dan 5.7) atauperformance_schema.data_lock_waits(untuk MySQL 8.0).CatatanFitur analisis pemblokiran transaksi tidak didukung untuk instans PolarDB for MySQL 5.6.
Batasan parameter instansiasi basis data
Untuk menggunakan fitur analisis kunci, Anda harus mengatur parameter yang sesuai pada instans database target.
Fitur analisis kunci | Parameter Instans Database Terkait |
Analisis deadlock terbaru | Atur parameter |
Analisis deadlock lengkap |
|
Analisis pemblokiran transaksi di analisis kunci lainnya | Untuk instans ApsaraDB RDS for MySQL 8.0 atau instans PolarDB for MySQL 8.0, atur parameter |
Untuk mengubah parameter instansiasi basis data:
Untuk ApsaraDB RDS for MySQL, lihat Mengatur parameter instans.
Untuk PolarDB for MySQL, lihat Mengatur parameter kluster dan node.
Referensi
Apa yang harus dilakukan selanjutnya
Ketika terjadi deadlock atau pemblokiran transaksi pada instans database Anda, Anda dapat menggunakan informasi seperti ID thread dari analisis kunci untuk menganalisis eksekusi transaksi terkait di SQL Explorer and Audit. Hal ini membantu mengidentifikasi penyebab penantian kunci. Sebagai contoh, setelah sebuah transaksi dimulai dan memperbarui sejumlah baris data, baris-baris tersebut dikunci oleh transaksi tersebut. Jika transaksi berjalan lama dan tidak di-commit atau di-rollback (baik secara eksplisit maupun implisit), sesi atau transaksi berikutnya yang mencoba memperbarui baris data yang sama akan masuk ke status LOCK WAIT.