Yeniden Sizlerleyiz!

10.Yıl

  • Bahattin Arıcı
  • 5 views
  • Kasım 14, 2009
  • 0
  • 2

debian mysql master-master replikasyon #1: 1.makine ayarları

Uygulamamız MySQL veritabanını kullanıyor. İşyerimizdeki veriler çok önemli. Hiç kesinti olmaması gerekiyor. Veri kaybı hiç olmaması gerekiyor. Çalışmanın hiç kesintiye uğramaması gerekiyor. Bırakın 5-10 dakikayı. 5-10 saniye bile bizim için değerli, MySQL veritabanınızın bulunduğu makine cpu, bellek veya disk artık yetmiyor. Kaynaklarınız tepede geziyorsa bunlar sizin için olabilir.

  • Verilerinizin birden fazla makinede yedeğini anlık aldırın.
  • Herhangi bir makinede olan değişiklikler tüm yedek aldırdığınız makinelere anında işlensin.
  • Anlık değişiklikler diğer makinelerde de etkili olsun.
  • Kullanıcıları farklı MySQL makinelere bağlantı yaparak cpu, bellek kaynaklarını daha az kullanın.
  • Makinelerden biri çökse dahi çalışmalarınıza kesintisiz devam edin.

Yukarıdaki gibi istekler MySQL master-master replikasyonun kabiliyetleri arasında sıralanabilir.

Sistemimizi debian üzerine kuruyoruz. Debian ve mysql kurulumunu ve ilk ayarları önceki yazılarımızda bulabilirsiniz. Bu yazımızda hazır bir veri tabanınız olduğunu ve kullandığınızı varsayarak işlemlerimizi yapacağız.

debian-mysql-master-master-replication-01

Mevcut yapınızı yukarıdaki yapı haline getiriyoruz. Tek olan MySQL sunucunuzu iki adet yapıyoruz.

Bu iki sunucu arasına isterseniz cross isterseniz bir switch ile bağlı kablo bağlantısı yapıyoruz. Aralarına ayrı bir network hattı çekmekteki amacımız replikasyon işlemleri sırasında dış ağdan etkilenmemesi, dış ağın replikasyondan etkilenmemesi olarak düşünebiliriz.

Makinelerimizin ip’leri.

debian-1 lan: 192.168.2.211

debian-1 cross: 192.168.1.211

debian-2 lan: 192.168.2.212

debian-2 cross: 192.168.1.212

1. Makinemizdeki işlemler (Master-1, debian-1)

debian-mysql-master-master-replication-02

mysql -u root -p komutu ile mysql içine giriyoruz. Öncelikle replikasyon işlemleri için kullanıcı açıyoruz. Ben -p den sonra parolamı da yazdım. Siz de bu şekilde yapabilirsiniz.

debian-mysql-master-master-replication-03

GRANT REPLICATION SLAVE ON *.* TO ‘replication’@192.168.2.212 IDENTIFIED BY ‘012345678’;

FLUSH PRIVILEGES;

replikasyon işlemleri için tüm veritabanlarına işlem yapabilecek kullanıcı açıyoruz. Kullanıcımızın adı replication oluyor. Bu kullanıcı sadece 192.168.2.212 nolu ipden giriş yapmışsa izin veriyoruz. Bu demek ki diğer makinemizden bu makinemize işlem yapacak. Dışarıdan farklı bir replikasyon kullanıcısına izin vermiyoruz. Pardolası 012345678 olacak. Flush komutuyla kullanıcı işlemimizi uyguluyoruz. Bu işlemlerden sonra MySQLden quit ile çıkıyoruz.

debian-mysql-master-master-replication-04

nano /etc/mysql/my.cnf dosyamıza düzenleme amacıyla giriş yapıyoruz.

debian-mysql-master-master-replication-05

[myqsld] satırını buluyor. Değişikliklerimiz bunun altında olacak.

debian-mysql-master-master-replication-06

server-id = 1

Bu satırın başındaki # (pound) işaretini kaldırıyoruz.

log_bin = /var/log/mysql/mysql-bin.log

Bu satırın başındaki # (pound) işaretini kaldırıyoruz.

log_slave_updates

log_bin_index = /var/log/mysql/log-bin.index

log_error = /var/log/mysql/error.log


relay_log = /var/log/mysql/relay.log

relay_log_info_file = /var/log/mysql/relay-log.info

relay_log_index = /var/log/mysql/relay-log.index


auto_increment_increment = 10

auto_increment_offset = 1

buradaki auto_increment_increment = 10 işlemler sırasında makineler değiştiği anda (yani debian-1 yerine debian-2 kayıt ekleme) 10 id numarasını 10 basamak atlıyor.

auto_increment_offset = 1 ise aynı makine işlem yaparken id numaralarını kaçarlı atlaması gerektiğini belirtiyor. Bu iki satırla ilgili açıklamaları yazının devamında bulabilirsiniz.

master_host = 192.168.1.212

2.debian cihazımızın ipsi.

master_user = replication

açtığımız replikasyon kullanıcısı. Bu kullanıcıyı 2.makinede açmamız gerekir. Çünkü debian-2 deki kullanıcı buraya giriş yapacak. Yukarıda yazdığımız kullanıcıyı debian-2 içinde açmamız gerekiyor.

master_password = 012345678

replicate_do_db = deneme

replicate_do_db = deneme2

deneme ve deneme2 kullandığımız veritabanlarının adları. Bunları istediğiniz kadar çoğaltabilirsiniz. Ben şu anda sadece bir tane kullanıyorum

Yukarıdaki satırlar benim my.cnf dosyamda olmadığı için ekledim. Siz de ekleyebilirsiniz.

binlog_do_db = deneme

satırın başındaki # (pound) işareti kaldırın ve veri tabanınızın adını yazın.

debian-mysql-master-master-replication-07

Bu yazımızda neler yaptık: 2. makineden replikasyon yapması için kullanıcı açtık. my.cnf dosyamızda değişiklik yaptık.

Bundan sonraki yazımız debian-1 makinemizdeki veritabanını debian-2 üzerine de aktarmak olacak.

  • Kasım 14, 2009 tarihinde yazıldı.
  • 0 yorum yapıldı.
  • 2

Yazar: Bahattin Arıcı


Tüm Yazılarına Git

Yazı hakkında görüşlerinizi belirtmek istermisiniz?