Pemantauan replikasi bertukar merah apabila VPN terputus, dan naluri pertama ialah menetapkan semula kedudukan. Naluri itulah yang menjadikan gangguan rangkaian sebagai masalah data. Laluan yang terputus tidak mengatakan apa-apa tentang apa yang telah diterima atau digunakan oleh replika, dan itu dua peringkat dengan dua keadaan. Bacalah kedua-duanya secara berasingan sebelum mengubah apa pun.

Dua peringkat, dua jawapan berasingan

Replika tak segerak biasa melakukan dua kerja. Penerima bersambung ke sumber, menarik peristiwa dan menulisnya ke log geganti secara setempat. Pelaksana membaca log itu dan melaksanakan peristiwa pada replika. Apabila laluan terputus, penerima berhenti serta-merta manakala pelaksana terus memproses tunggakan yang sudah ada pada cakera. Jadi satu gangguan menghasilkan dua soalan berbeza: adakah sambungan kembali, dan adakah kerja terkumpul telah dilaksanakan? Menganggap kedua-duanya sebagai satu soalan meratakan dua keadaan menjadi jawapan yang mengelirukan.

Pemulihan penerima memberitahu anda laluan sudah hidup. Ia tidak memberitahu sejauh mana pelaksana ketinggalan, atau sama ada ia menemui ralat semasa terputus.

Baca saluran dengan pernyataan yang betul

Pada MySQL 8.4, SHOW REPLICA STATUS mengembalikan satu baris bagi setiap saluran yang dikonfigurasikan, jadi bacalah baris bagi saluran yang anda maksudkan dan bukan yang pertama dalam senarai. Replica_IO_Running membezakan penerima yang bersambung daripada yang sedang bersambung atau berhenti, dan Replica_SQL_Running menerangkan pelaksana. Bacalah lajur ralat di sebelahnya, kerana penerima yang bersambung semula dan gagal serta-merta meninggalkan mesej yang tidak akan ditunjukkan oleh mana-mana bendera status. Keluaran lama menggunakan nama lajur yang berbeza, jadi jangan terjemah resipi lama hanya dengan menamakan semula arahan.

Semak juga identiti sumber dan sebarang penapis yang dikonfigurasikan. Replika yang menunjuk ke sumber yang salah, atau ditapis lebih sempit daripada yang anda sangka, melaporkan kesihatan sambil mereplikasi sesuatu yang berbeza daripada yang anda jangkakan.

Mengapa angka ketinggalan sifar boleh berbohong

Nilai ketinggalan membandingkan cap masa peristiwa terakhir yang dilaksanakan dengan masa semasa. Apabila penerima berhenti selama satu jam, pelaksana boleh memproses tunggakan dan mencapai penghujung apa yang diterimanya, dan pada ketika itu angka itu jatuh ke sifar walaupun replika ketinggalan satu jam di belakang sumber. Metrik ini mengukur baris gilir pelaksana, bukan kemutakhiran replika.

Sebaliknya bandingkan transaksi yang dilaksanakan dengan apa yang tersedia pada sumber. Perbandingan itu bertahan walaupun penerima tersekat.

Pengekalan menentukan tetingkap pemulihan sebenar

Menyusul memerlukan sumber masih menyimpan transaksi yang diperlukan oleh replika. Setelah transaksi itu dibersihkan, replika tidak dapat mengambilnya, dan berapa kali pun bersambung semula ia tidak berubah.

Dengan kedudukan automatik GTID, kegagalan itu jelas: replika meminta sejarah yang tidak lagi disimpan oleh sumber dan enggan meneruskan. Pilihannya ketika itu ialah mendapatkan peristiwa yang hilang daripada sumber yang masih memilikinya, atau membina semula daripada sandaran dan membiarkannya menyusul. Melangkau jurang bukan menyusul, dan ia meninggalkan replika yang datanya senyap tidak lengkap. Rancang tetingkap dengan membandingkan jangkaan tempoh gangguan dengan pengekalan log binari pada sumber dan kadar perubahan, kerana ketiga-tiga angka itu menentukan sama ada sesuatu gangguan boleh dipulihkan sama sekali.

Sahkan penyusulan, bukan warna penunjuk

Pulihkan laluan, termasuk penyelesaian nama dan keselamatan pengangkutan, kemudian perhatikan sama ada saluran sedia ada bersambung semula mengikut dasarnya sendiri. Berikan selang yang ditetapkan sebelum anda campur tangan, dan catat kemajuan penerimaan dan pelaksanaan di kedua-dua hujung selang itu. Saluran yang dimulakan semula dan saluran yang terkini ialah penemuan yang berbeza.

Sahkan pelaksana telah mencapai kedudukan semasa sumber, bukan sekadar penghujung tunggakan lama. Semak bahawa tiada ralat menunggu dalam pelaksana, kerana satu peristiwa gagal menghentikan kemajuan manakala penerima terus melaporkan bersambung. Kemudian catat buktinya: nama saluran, kedua-dua keadaan peringkat, kedudukan yang dilaksanakan dan masa. Penunjuk hijau ialah dakwaan; kedudukan ialah fakta.

Artikel berkaitan