Kapat
Debian 24 views 0

Debian MySQL master-master Replikasyon Onarım

Debian üzerinde MySQL master master replikasyon işlemimizi yaptık. Bir müddet zaman sonra replikasyon bozuldu. Onarım yaptığımız halde replikasyona devam etmiyor. Biraz daha derine inmemiz gerekebilir.

Bu yazımızda anlatacaklarımız master master replikasyonun yeniden düzenlenmesi ile ilgilidir.

 debian-mysql-master-master-replication-05-01

Öncelikle bir miktar kafa karışıklığı olmaması için bir noktaya değinmek gerekiyor. Biraz sonra görecemiz iki komut var. Bunlardan show master status komutu verdiğimiz makinenin bilgisi içindir. Show slave status ise diğer makinenin bilgisi içindir. Yani bu komut karşı makinedeki bilgileri ilgilendiriyor.

Show slave status bilgisini aldığımız zaman karşı makinedeki show master status komutuyla karşılaştırma yapıyoruz.

İşlemlere başlayalım.

Debian-1 sunucumuz : 192.168.2.211

Debian-2 sunucumuz : 192.168.2.212

1. Adım

Debian-1 makinemize geçelim.

 debian-mysql-master-master-replication-05-02

 mysql -u root -p komutuyla mysql içine girelim.

STOP SLAVE; ile replikasyonu durduralım.

SHOW MASTER STATUS; ile üzerinde bulunduğumuz makinedeki günlük kayıt dosyasını (mysql-bin.000003) bir yere not edelim. Position bilgisini de not edelim. Bunlar Debian-2 üzerinde bilgi girerken işimize yarayacak.

debian-mysql-master-master-replication-05-03

SHOW SLAVE STATUS\G; komutunu verelim.

Master_log_file ve Master_log_pos bilgileri debian-2 sunucusu üzerindeki log dosyalarının adı ve pozisyonunu belirtir. Bunları biraz sonra değiştireceğiz.

2. Adım

Yedek alma ve geri yükleme zamanı.

Birinci sunucudaki (debian-1) verilerin sağlam olduğunu ve güncel olduğunu varsayıyorum. İkinci sunucumuzdaki verileri tamamen silip debian-1 deki verileri yükleyelim.

debian-mysql-master-master-replication-05-11

Debian-1 üzerinden backup ile veri tabanını alıyorum. Backup işlemini farklı bir makinedeki (MySQL Administrator GUI) programı ile yapıyorum.

 debian-mysql-master-master-replication-05-12

Debian-2 üzerinde Restore işlemini gerçekleştiriyorum. Veri tabanları iki sunucuda da aynı olmuş oluyor.

 3. Adım

Debian-2 Sunucumuza geçelim.

debian-mysql-master-master-replication-05-04 

 mysql -u root -p ile mysql giriş yapalım.

STOP SLAVE; ile replikasyonu durduralım.

SHOW MASTER STATUS; ile üzerinde bulunduğumuz sunucunun log dosya adı ve pozisyon bilgisini not edelim.

debian-mysql-master-master-replication-05-05

SHOW SLAVE STATUS\G; komutunu verelim. Buradaki Slave_IO_Running ve Slave_SQL_Running sonuçları No gözüküyor. Yani bu işlemleri yapmıyor. Replikasyon yapıp yapmadığını iki sunucuda da bu komutu verdiğinizde anlayabilirsiniz. Bu iki seçenek Yes değil de No ise problem var demektir. Bu iki sonucun iki sunucuda da Yes olması gerekiyor!

Ayrıca yazının başında bahsetmiştik. Yukarıdaki Show Slave Status çıktısı ikinci (debian-2) sunucuya ait. Yani Master_Log_Files ve Master_Log_Pos satırlarının karşılıkları Debian-1 cihazımızdaki show master status komutunun karşılığındaki sonuçlarla eşit olması gerekir. Değilse bunları değiştirmeye başlayalım.

4. Adım

Debian-1 sunucumuza geçelim.

debian-mysql-master-master-replication-05-17

change master to Master_Log_File=’mysql-bin.000005′, Master_Log_Pos=1038; komutu ile Debian-2 üzerindeki log dosyalarının pozisyonlarını giriyoruz.

Yukarıdaki resimde de anlaşıldığı gibi 192.168.2.212 (debian-2) üzerindeki show master status; komutu ile aldığımız log dosyalarının ismini ve pozisyon numarasını 192.168.2.211 (debian-1) üzerinde yazdığımız komuta giriyoruz.

5. Adım

Debian-2 (192.168.2.212) makinemize geçiyoruz.

debian-mysql-master-master-replication-05-20

change master to Master_Log_File=’mysql-bin.000003′, Master_Log_Pos=1038;

komutunu giriyoruz. Buradaki log dosyalarının adları ve numaları aynı çıktı. Sizinkinde iki sunucuda da farklı olacaktır.

yine burdaki komutta girdiğimiz bilgiler diğer makinenin log ismi ve pozisyon numarası. Yani bilgileri karşılıklı teyit ettiriyoruz.

6. Adım

Sona yaklaşıyoruz.

debian-mysql-master-master-replication-05-21

Debian-1 sunucumuzda START SLAVE;

debian-mysql-master-master-replication-05-22

Debian-2 sunucumuzda START SLAVE;

komutlarını veriyoruz. Replikasyonu tekra başlatıyoruz.

SON ADIM

Replikasyon onarma işlemimiz bitti. Şimdi kontrolleri yapalım.

debian-mysql-master-master-replication-05-23

Debian-1 üzerinde Slave_IO_Running ve Slave_SQL_Running çalışıyor. Aynısını Debian-2 üzerinde de yapmamız gerekir.

debian-mysql-master-master-replication-05-24

Bu sunucumuzda da problem yok. İki değer de Yes. Bu değerlerin biri No ise veya herhangi bir sunucuda No ise replikasyon hatalıdır. Tekrar düzenleme yapılması gerekmektedir.

{bahattin}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.