Pada dasarnya kami memiliki database MySQL yang besar dan kami ingin melakukan replikasi ke slave (master slave setup). Apakah Anda memiliki panduan langkah demi langkah tentang cara melakukan ini dengan MINIMAL downtime pada database? Mencadangkan basis data dan mentransfer cadangan ke server slave (bahkan melalui jaringan pribadi) membutuhkan waktu sekitar 40 menit. Cukup lama downtime.
sumber
untuk memulai replikasi Anda memerlukan salinan database Anda secara konsisten pada slave
Apakah meja Anda myisam atau innodb didukung? untuk mencari tahu masalah
dan lihat kolom 'Mesin'
jika semua tabel innodb dari yang Anda bisa lakukan nol pengaturan downtime menggunakan mysqldump --satu transaksi dan mengimpornya ke dalam slave
jika tabel adalah myisam maka harus ada downtime karena Anda harus mengunci tabel untuk ditulis saat sedang disalin. mysqlhotcopy adalah alat untuk membantu Anda dengan itu.
sebagai alternatif, jika Anda menggunakan LVM (manajer volume logis), Anda dapat menghentikan basis data, mengambil snapshot LVM dalam beberapa detik dan memulai db lagi. Kemudian Anda dapat membuat salinan yang konsisten dari foto itu.
sumber
Untuk mengatur slave, Anda perlu mengambil snapshot data dan merekam posisi log biner. Membuat cadangan basis data seharusnya tidak menyebabkan downtime meskipun akan menyebabkan penurunan kinerja, tetapi Anda sudah membuat cadangan basis data, bukan? Anda mungkin menemukan kebutuhan cadangan untuk mengunci beberapa tabel dan ini dapat menyebabkan penguncian pada aplikasi Anda, benar-benar perlu melihat bagaimana itu diterapkan untuk itu.
Bisakah Anda snapshot disk? Itu akan sangat mengurangi waktu henti jika Anda dapat melakukan hotbackup.
sumber