MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Mengapa Basis Data MySQL Saya Rusak? Dapatkan Wawasan dengan MySQL Freeze Frame Baru

Jika Anda belum melihatnya, kami baru saja merilis ClusterControl 1.7.5  dengan peningkatan besar dan fitur baru yang berguna. Beberapa fitur tersebut antara lain Cluster Wide Maintenance, dukungan untuk versi CentOS 8 dan Debian 10, Dukungan PostgreSQL 12, dukungan MongoDB 4.2 dan Percona MongoDB v4.0, serta MySQL Freeze Frame yang baru.

Tunggu, tapi Apa itu MySQL Freeze Frame? Apakah Ini Sesuatu yang Baru di MySQL?

Yah, itu bukan sesuatu yang baru di dalam Kernel MySQL itu sendiri. Ini adalah fitur baru yang kami tambahkan ke ClusterControl 1.7.5 yang khusus untuk database MySQL. MySQL Freeze Frame di ClusterControl 1.7.5 akan mencakup hal-hal berikut:

  • Snapshot status MySQL sebelum kegagalan cluster.
  • Snapshot daftar proses MySQL sebelum kegagalan cluster (segera hadir).
  • Periksa insiden cluster dalam laporan operasional atau dari alat baris perintah s9s.

Ini adalah kumpulan informasi berharga yang dapat membantu melacak bug dan memperbaiki klaster MySQL/MariaDB Anda saat terjadi masalah. Di masa mendatang, kami berencana untuk menyertakan juga snapshot dari nilai status SHOW ENGINE InnoDB juga. Jadi, pantau terus rilis kami selanjutnya.

Perhatikan bahwa fitur ini masih dalam status beta, kami berharap dapat mengumpulkan lebih banyak set data saat kami bekerja dengan pengguna kami. Di blog ini, kami akan menunjukkan kepada Anda bagaimana memanfaatkan fitur ini, terutama ketika Anda membutuhkan informasi lebih lanjut saat mendiagnosis cluster MySQL/MariaDB Anda.

ClusterControl dalam Menangani Kegagalan Cluster

Untuk kegagalan cluster, ClusterControl tidak melakukan apa pun kecuali Pemulihan Otomatis (Cluster/Node) diaktifkan seperti di bawah ini:

Setelah diaktifkan, ClusterControl akan mencoba memulihkan node atau memulihkan cluster dengan memunculkan seluruh topologi cluster.

Untuk MySQL, misalnya dalam replikasi master-slave, ia harus memiliki setidaknya satu master yang hidup pada waktu tertentu, terlepas dari jumlah slave/s yang tersedia. ClusterControl mencoba untuk memperbaiki topologi setidaknya sekali untuk kluster replikasi, tetapi memberikan lebih banyak percobaan ulang untuk replikasi multi-master seperti Cluster NDB dan Cluster Galera. Pemulihan simpul mencoba memulihkan simpul basis data yang gagal, mis. ketika proses dimatikan (shutdown abnormal), atau proses mengalami OOM (Out-of-Memory). ClusterControl akan terhubung ke node melalui SSH dan mencoba memunculkan MySQL. Kami sebelumnya telah membuat blog tentang Bagaimana ClusterControl Melakukan Pemulihan dan Failover Database Otomatis, jadi silakan kunjungi artikel tersebut untuk mempelajari lebih lanjut tentang skema pemulihan otomatis ClusterControl.

Dalam versi ClusterControl <1.7.5 sebelumnya, upaya pemulihan tersebut memicu alarm. Tetapi satu hal yang terlewatkan oleh pelanggan kami adalah laporan insiden yang lebih lengkap dengan informasi status tepat sebelum kegagalan klaster. Sampai kami menyadari kekurangan ini dan menambahkan fitur ini di ClusterControl 1.7.5. Kami menyebutnya "Bingkai Pembekuan MySQL". MySQL Freeze Frame, pada tulisan ini, menawarkan ringkasan singkat dari insiden yang mengarah ke perubahan status cluster sebelum crash. Yang paling penting, itu termasuk di akhir laporan daftar host dan variabel dan nilai Status Global MySQL mereka.

Bagaimana Perbedaan Bingkai Pembekuan MySQL Dengan Pemulihan Otomatis?

MySQL Freeze Frame bukan bagian dari pemulihan otomatis ClusterControl. Baik Pemulihan Otomatis dinonaktifkan atau diaktifkan, MySQL Freeze Frame akan selalu berfungsi selama kegagalan cluster atau node terdeteksi.

Bagaimana Cara Kerja MySQL Freeze Frame?

Dalam ClusterControl, ada status tertentu yang kami klasifikasikan sebagai berbagai jenis Status Cluster. MySQL Freeze Frame akan menghasilkan laporan insiden ketika dua status ini dipicu:

  • CLUSTER_DEGRADED
  • CLUSTER_FAILURE

Dalam ClusterControl, CLUSTER_DEGRADED adalah saat Anda dapat menulis ke sebuah cluster, tetapi satu atau lebih node sedang down. Ketika ini terjadi, ClusterControl akan membuat laporan insiden.

Untuk CLUSTER_FAILURE, meskipun nomenklaturnya menjelaskan dirinya sendiri, ini adalah status di mana cluster Anda gagal dan tidak lagi dapat memproses baca atau tulis. Maka itu adalah status CLUSTER_FAILURE. Terlepas dari apakah proses pemulihan otomatis mencoba memperbaiki masalah atau menonaktifkannya, ClusterControl akan membuat laporan insiden.

Bagaimana Anda Mengaktifkan MySQL Freeze Frame?

Bingkai Pembekuan MySQL ClusterControl diaktifkan secara default dan hanya menghasilkan laporan insiden hanya ketika status CLUSTER_DEGRADED atau CLUSTER_FAILURE dipicu atau ditemui. Jadi pengguna tidak perlu mengatur pengaturan konfigurasi ClusterControl, ClusterControl akan melakukannya untuk Anda secara otomatis.

Menemukan Lokasi Laporan Insiden MySQL Freeze Frame

Pada tulisan ini, ada 4 cara Anda dapat menemukan laporan insiden. Ini dapat ditemukan dengan melakukan bagian berikut di bawah ini.

Menggunakan Tab Laporan Operasional

Laporan Operasional dari versi sebelumnya hanya digunakan untuk membuat, menjadwalkan, atau membuat daftar laporan operasional yang telah dibuat oleh pengguna. Sejak versi 1.7.5, kami menyertakan laporan insiden yang dihasilkan oleh fitur MySQL Freeze Frame kami. Lihat contoh di bawah ini:

Item yang dicentang atau item dengan tipe Laporan ==incident_report, adalah insiden laporan yang dihasilkan oleh fitur MySQL Freeze Frame di ClusterControl.

Menggunakan Laporan Kesalahan

Dengan memilih cluster dan membuat laporan kesalahan, yaitu melalui proses ini: