Çoğaltma, aynı veriyi taşıyan ikinci bir sunucuyu ayakta tutar; o sunucu aynı değişiklikleri birincisinden az sonra uygular. Üç şeye yarar ve sağlamadığı dördüncü bir şey için de düzenli olarak kurulur.
Neye yarar
- Okuma kapasitesi - raporlar ve arama kopyaya, yazmalar ise ana sunucuya gider.
- Yük bindirmeyen yedekler - yedeği kopyadan alın, canlı site hiçbir şey fark etmez.
- Devretme - yükseltilmeye hazır ılık bir kopya; bu, bir yeniden kurulumu bir anahtar çevirmeye dönüştürür.
Ne değildir
Kimsenin hesaba katmadığı gecikme
Çoğaltma varsayılan olarak eşzamansızdır: ana sunucu beklemez. Bir yazmanın hemen ardından kopyadan yapılan bir okuma eski değeri döndürebilir - bir müşteri profilini kaydeder ve profil değişmemiş görünür.
mysql -e "SHOW REPLICA STATUS\G" | grep -E 'Seconds_Behind|Replica_(IO|SQL)_Running'
Bundan kaçınmanın kuralı: kopyadan yalnızca biraz eskimiş verinin kabul edilebildiği yerlerde okuyun. Kullanıcının az önce yazdığı her şey ana sunucudan okunur.
Kurulumu, ana hatlarıyla
- Ana sunucuda ikili kaydı açın —
log_bin, benzersiz birserver_idvegtid_mode = ON. - Bir çoğaltma kullanıcısı oluşturun — yalnızca REPLICATION SLAVE yetkisiyle.
- Kopyayı tutarlı bir yedekten tohumlayın —
mysqldump --single-transaction --source-data=2 - Onu ana sunucuya yöneltip başlatın — sonra yetişene kadar durumunu izleyin.
Ondan sonra da izleyin
Durmuş bir kopya sessizdir. Okumalara, artık günler öncesine ait veriyle yanıt vermeyi sürdürür; bu da düşmüş olmaktan beterdir. Hem çalışma bayraklarına hem de gecikmeye uyarı koyun.