Master-Slave Replication Mimarisi ve Kurulum Senaryoları
Master-Slave Replication Mimarisi ve Kurulum Senaryoları
1. Konunun Mimari Önemi ve Temel Çalışma Prensibleri
Master-Slave replication mimarisi, bir veritabanının birincil (master) sunucusu ve bir veya daha fazla ikincil (slave) sunucusu arasında veri çoğaltma sürecini sağlar. Bu mimari, veri yedeklemesi, yük dağılımı ve okuma performansını artırmak için kullanılır. Temel çalışma prensibinde, master sunucusu üzerinde yapılan tüm işlemler, slave sunuculara çoğaltılır.
2. Kurumsal Projelerde Dikkat Edilmesi Gereken En İyi Pratikler (Best Practices)
- Veri Sincronizasyonu: Master ve slave sunucular arasındaki veri gecikmesini minimuma indirmek için düzenli ve hızlı bir iletişim kurulmalıdır.
- Failover Planı: Master sunucusu başarısız olduğunda slave sunucular arasında yük dengelemesi veya oto-failover mekanizmaları kullanılmalıdır.
- Yetkilendirme: Sadece gerekli izinleri olan slave sunucuların master’a erişimine izin verilmelidir.
- Performans İzleme: Master ve slave sunucular arasındaki performansı düzenli olarak izlemek ve optimize etmek gerekmektedir.
3. Gerçek Dünya Senaryolarına Uygun Kod Bloğu Örneği
-- Master Sunucusu Ayarları
server-id=1
log-bin=mysql-bin
binlog-do-db=mydatabase
-- Slave Sunucusu Ayarları
server-id=2
relay-log=mysql-relay-bin
log-slave-updates=1
read-only=1
-- Slave Sunucusunda Master'a Bağlanma
CHANGE MASTER TO
MASTER_HOST='master_host_ip',
MASTER_USER='replication_user',
MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=120;
START SLAVE;
4. Performans Optimizasyonu ve Olası Darboğazlar
Master-Slave replication mimarisinde performans optimizasyonu için:
- İşlem Tipi Seçimi: Read-only işlemleri slave’a yönlendirilebilir.
- Binary Log Formatı: row-based binary logging daha verimli olabilir.
- İncremental Backups: Sadece değişiklikleri yedekleme, tam yedekleme yerine kullanılabilir.
Olası darboğazlar:
- Master Sunucusu Engellenebilir: Yüksek iş yükü durumunda master sunucusu performans kaybına neden olabilir.
- Veri Sincronizasyonu Gecikmesi: Büyük veri kümelerinde slave sunucular arasında veri gecikmesi yaşanabilir.





