Fitur analisis deadlock membantu Anda mengidentifikasi dan menyelesaikan masalah terkait kunci pada instans ApsaraDB RDS for MySQL. Gunakan fitur ini untuk menyelidiki deadlock yang baru saja terjadi, memantau tren deadlock dari waktu ke waktu, atau mendiagnosis kunci metadata dan pemblokiran transaksi secara langsung.
Prasyarat
Sebelum memulai, pastikan Anda telah memenuhi hal-hal berikut:
Instans RDS yang menjalankan salah satu versi dan edisi MySQL berikut:
MySQL 8.0 pada RDS High-availability Edition, RDS Enterprise Edition, atau RDS Cluster Edition, RDS Enterprise Edition,
MySQL 5.7 pada RDS High-availability Edition, RDS Enterprise Edition, atau RDS Cluster Edition, RDS Enterprise Edition,
MySQL 5.6 pada RDS High-availability Edition
MySQL 5.5 pada RDS High-availability Edition
Instans RDS Basic Edition tidak mendukung fitur ini. Untuk memverifikasi versi dan edisi instans Anda, buka halaman Basic Information di Konsol ApsaraDB RDS, lalu periksa bidang Type and Edition, RDS Enterprise Edition, dan Database Engine.
Parameter yang diperlukan telah dikonfigurasi untuk jenis analisis yang akan digunakan. Lihat Parameter yang diperlukan.
Cara kerja
Fitur analisis deadlock memiliki tiga sub-fitur. Pilih berdasarkan skenario Anda:
| Sub-fitur | Kapan digunakan | Sumber data |
|---|---|---|
| Recent Deadlock Analysis | Deadlock baru saja terjadi dan Anda perlu segera menyelidikinya | Log deadlock terbaru dari output SHOW ENGINE INNODB STATUS |
| Full Deadlock Analysis | Anda ingin memantau tren deadlock atau menyelidiki deadlock berulang dalam rentang waktu tertentu | Log error, yang diurai secara berkala |
| Other Deadlock Analysis | Anda perlu mendiagnosis kunci metadata langsung atau pemblokiran transaksi dalam session saat ini | Data real-time dari information_schema dan performance_schema |
Full Deadlock Analysis dan Other Deadlock Analysis memerlukan Database Autonomy Service (DAS) Cost-efficient Edition atau DAS Enterprise Edition, yang hanya tersedia di beberapa wilayah. Untuk daftar wilayah yang didukung, lihat Database dan wilayah yang didukung. Untuk mengaktifkan edisi DAS, lihat Aktifkan DAS Cost-efficient Edition dan DAS Enterprise Edition.
Recent Deadlock Analysis
DAS menganalisis log deadlock terbaru dari output SHOW ENGINE INNODB STATUS. Jika terjadi beberapa deadlock, hanya deadlock terbaru yang dianalisis. Gunakan sub-fitur ini untuk investigasi segera setelah insiden terjadi.
Full Deadlock Analysis
DAS mengurai log error secara berkala untuk mengekstrak informasi deadlock. Gunakan sub-fitur ini untuk melihat tren deadlock dan menyelidiki detail setiap deadlock dalam rentang waktu tertentu — berguna untuk mengidentifikasi pola atau masalah berulang sebelum memburuk.
Other Deadlock Analysis
DAS menganalisis session saat ini dari instans RDS Anda secara real-time:
Metadata lock analysis: Menyimpulkan hubungan tunggu kunci dan menghasilkan diagram berdasarkan data di
information_schema.processlist.Transaction blocking analysis: Menganalisis hubungan pemblokiran transaksi dan menghasilkan diagram berdasarkan data di
information_schema.processlistdaninformation_schema.innodb_trx.MySQL 5.6 dan 5.7: menggunakan
information_schema.innodb_lock_waitsMySQL 8.0: menggunakan
performance_schema.data_lock_waits
Parameter yang diperlukan
Konfigurasikan parameter yang diperlukan sebelum menggunakan setiap sub-fitur. Untuk mengubah parameter instans, lihat Ubah parameter instans.
| Sub-fitur | Parameter yang diperlukan |
|---|---|
| Recent Deadlock Analysis | Aktifkan innodb_deadlock_detect |
| Full Deadlock Analysis | Aktifkan innodb_deadlock_detect; aktifkan innodb_print_all_deadlocks; atur log_error_verbosity ke 3 |
| Transaction blocking analysis (Other Deadlock Analysis, hanya MySQL 8.0) | Aktifkan performance_schema |
Batasan
Fitur analisis deadlock tidak dapat menganalisis deadlock yang berisi pesan berikut:
TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTIONJalankan analisis deadlock
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS Anda berada. Temukan instans tersebut dan klik ID-nya.
Di panel navigasi kiri, pilih Autonomy Services > Diagnostics.
Klik tab Deadlock Analysis.
Klik Diagnose di pojok kiri atas.
Temukan entri deadlock yang dihasilkan dan klik View Details di kolom Details.
Di halaman Lock Analysis, pilih jenis analisis berdasarkan skenario Anda:
Recent Deadlock Analysis — menyelidiki deadlock yang baru saja terjadi
Di tab Recent Deadlock Analysis, klik Create Analysis Task. DAS menganalisis log deadlock terbaru dari
SHOW ENGINE INNODB STATUS.Tentukan rentang waktu untuk memfilter hasil.
Temukan tugas dan klik View Details di kolom Details untuk melihat hasil diagnosa lengkap.
Full Deadlock Analysis — memantau tren deadlock dalam rentang waktu tertentu. Di tab Full Deadlock Analysis, tentukan rentang waktu untuk melihat tren deadlock dan detail masing-masing deadlock.
Other Deadlock Analysis — mendiagnosis kunci metadata aktif atau pemblokiran transaksi
Di tab Other Deadlock Analysis, klik Create Analysis Task. DAS menganalisis kunci metadata langsung dan pemblokiran transaksi dari
information_schemadanperformance_schema.Tentukan rentang waktu untuk memfilter hasil.
Klik ikon
di sebelah kiri hasil untuk melihat statistik.Klik View Details di kolom Actions untuk membuka diagram analisis deadlock. Arahkan kursor ke session untuk melihat diagram tunggu kuncinya, atau klik session untuk melihat detailnya.
Langkah selanjutnya
Setelah menjalankan analisis deadlock, gunakan ID thread dari hasilnya untuk menyelidiki transaksi terkait di halaman SQL Explorer and Audit. Hal ini membantu Anda melacak akar penyebab — misalnya, mengidentifikasi transaksi jangka panjang yang mengunci baris dan menyebabkan session berikutnya masuk ke status LOCK WAIT.