MySQL replikasyon (replication) nasıl kurulur? (Master-Slave, Master-Master)

MySQL Replikasyon Nedir?

MySQL replikasyonu, bir MySQL veritabanı sunucusunun verilerini bir veya daha fazla başka MySQL sunucusuna kopyalayarak veri tutarlılığını ve erişilebilirliği artıran bir teknolojidir. Bunun temel amacı, veri kaybını en aza indirmek, yük dengelemesi sağlamak ve acil durum kurtarma süreçlerini iyileştirmektir. İki ana replikasyon modeli bulunmaktadır: Master-Slave ve Master-Master replikasyonu.

Master-Slave Replikasyonu

Master-Slave replikasyon modeli, bir ana veritabanı (master) ile bir veya daha fazla yedek veritabanı (slave) arasında veri kopyalaması işlemi gerçekleştiren bir yapı sunar. Master sunucusu üzerinde gerçekleşen tüm veri değişiklikleri, slave sunucularına aktarılmaktadır.

Master Sunucusunun Yapılandırılması

1. MySQL Ayarları:
Master sunucusunda `my.cnf` (veya `my.ini`) dosyasına gidilerek aşağıdaki ayarlar yapılmalıdır:
“`
[mysqld]
server-id=1
log_bin=mysql-bin
“`
`server-id` her sunucu için benzersiz bir kimlik numarasıdır. `log_bin` seçeneği, binary logların kullanılmasını sağlayarak replikasyon işlemini mümkün kılar.

2. Kullanıcı Oluşturulması:
Slave sunucularında kullanılacak bir replikasyon kullanıcısı oluşturulmalıdır:
“`sql
CREATE USER ‘repl_user’@’%’ IDENTIFIED BY ‘password’;
GRANT REPLICATION SLAVE ON . TO ‘repl_user’@’%’;
FLUSH PRIVILEGES;
“`

3. Binary Log Bilgilerinin Alma:
Master sunucusunda aşağıdaki komut kullanılarak binary log bilgileri alınmalıdır:
“`sql
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
“`
Bu komut, replikasyon yapılandırması için gerekli olan `Log_File` ve `Log_Position` bilgilerini sunmaktadır.

4. Veri Yedekleme:
Master sunucusunun verileri yedeklenmeli ve slave sunucusuna aktarılmalıdır. Bunun için `mysqldump` veya dosya tabanlı yöntemler kullanılabilir.

5. Yedeklerin Aktarılması:
Yedek alınan veriler, slave sunucusuna kopyalanmalıdır.

Slave Sunucusunun Yapılandırılması

1. MySQL Ayarları:
Slave sunucusunda da `my.cnf` dosyasında benzer ayarlar yapılmalıdır:
“`
[mysqld]
server-id=2
“`

2. Veritabanının İçe Aktarılması:
Slave sunucusuna kopyalanan veriler, aşağıdaki komut ile içe aktarılmalıdır:
“`sql
CHANGE MASTER TO MASTER_HOST=’master_ip’, MASTER_USER=’repl_user’, MASTER_PASSWORD=’password’, MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=position_number;
“`

3. Replikasyonun Başlatılması:
Son olarak, replikasyon başlatılmalıdır:
“`sql
START SLAVE;
“`

Master-Master Replikasyonu

Master-Master replikasyonu, iki MySQL sunucusunun her birinin hem verilerin kopyasını almasını hem de bu verilerin güncellenmesini sağladığı bir yapıdır. Bu yapı, her iki sunucu arasında yük dengelemesi gerçekleştirilmesine olanak tanır.

Sunucuların Yapılandırılması

Her iki sunucunun `my.cnf` dosyasında aşağıdaki ayarların yapılması gerekmektedir:

“`
[mysqld]
server-id=1 Birinci Master için
log_bin=mysql-bin

[mysqld]
server-id=2 İkinci Master için
log_bin=mysql-bin
“`

Her iki sunucu için de replikasyon kullanıcıları oluşturulmalıdır. Örneğin:

“`sql
CREATE USER ‘repl_user’@’%’ IDENTIFIED BY ‘password’;
GRANT REPLICATION SLAVE ON . TO ‘repl_user’@’%’;
“`

Her bir sunucu için de `CHANGE MASTER TO` komutları ile diğer sunucunun bilgileri verilmelidir. Örneğin, birinci Master’da aşağıdaki gibi bir yapılandırma yapılabilir:

“`sql
CHANGE MASTER TO MASTER_HOST=’second_master_ip’, MASTER_USER=’repl_user’, MASTER_PASSWORD=’password’,MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=position_number;
“`

İkinci sunucu için de benzer yapılandırma yapıldıktan sonra, her iki sunucuda da replikasyon başlatılmalıdır:

“`sql
START SLAVE;
“`

Replikasyon İzleme

Replikasyon süreçleri sürekli olarak izlenmelidir. Hata tespit etmek için aşağıdaki komut kullanılabilir:

“`sql
SHOW SLAVE STATUS\G
“`

Bu komut, slave sunucusundaki replikasyon durumunu gösterir ve olası hata mesajlarını içerir.

Sonuç

MySQL replikasyonu, veri güvenliği ve sistem performansını artırmak amacıyla önemli bir araçtır. Master-Slave ve Master-Master konfigürasyonları, kullanıcının ihtiyaçlarına göre seçilmeli ve uygulanmalıdır. Verilerin tutarlılığı ve erişilebilirliği, doğru yapılandırma ve izleme ile sağlanabilir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR