Bu Sayfayı Paylaş:

Kavram

Master/Slave

Tanım: Bir cihazın veya sunucunun master (efendi) , ona bağlı diğer cihaz veya sunucuların ise slave (köle, esir) olarak kabul edildiği bir model. Master gelen istekleri kontrol eder, gerektiğinde bilgileri ve görevleri slave'lere dağıtır

Kavram

Master

Tanım: Master/Slave sistemlerinde tüm slave (köle, esir) olan cihazları kontrol eden ve gerektiğinde nları kullanan cihazın veya sunucu. Master efendi, usta gibi anlamlara gelmektedir

Kavram

Slave

Tanım: Master/Slave sistemlerinde master (efendi) tarafından kontrol edilen cihazlar veya sunucular. Slave köle, esir gibi anlamlara gelmektedir

Veri

Master/Slave Sistemi

MySQL'de replication (çoğaltma) işlemi için Master/Slave sistemi kullanılabilir. Master/Slave sisteminde Master olarak şeçilen veritabanındaki bilgiler asenkron olarak Slave olarak seçilen bir veya daha fazla veritabanına kopyalanır. Kopyalama işlemi asenkron olmasından dolayı Master üzerinde yeni girilen veya güncellenen bilgiler belirli bir zaman sonra Slave'lere uygulanacaktır.
Master/Slave'ler de insert,update ve delete işlemi Master veritabanı kullanılırken, anlık olması gerekmeyen durumlarda select işlemleri slave veritabanı üzerinden yapılır

İpucu

CentOS Üzerinde MySQL Replication (Master-Slave) Kurulumu

CentOS'da (diğer Linux dağıtımlarında da çalışır) MySQL replication için bir Master ve bir Slave MySQL'i kurulması gerekir. 192.168.10.1 IP'sine Master için MySQL 5.5 , 192.168.10.2 IP'sine ise Slave için MySQL 5.5 kurulabilir. Kurulum işlemleri yapıldıktıktan sonra aşağıdaki işlemler yapılmalıdır

Master'da Slave MySQL'den replication yapılabilmesi için gerekli yetkilere sahip bir kullanıcı yaratılmalıdır : 

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'sifrem';
FLUSH PRIVILEGES; 

Yukarıdakini çalıştırarak hem replication için gerekli yetkiler veriyoruz hem de kullanıcıyı yaratıyoruz. 'slave_user'@'%' şeklinde tanımlanmasından dolayı slave_user herhangi bir IP'den istekte bulunabilir. Flush ile başlayan satır yetkilerin yenilenmesi için. Daha sonra restart işlemi zaten yapılacağında gerek olmayabilir.

Master MySQL'de my.cnf dosyasına (path'i /etc/my.cnf şeklinde) aşağıdakiler eklenmelidir : 

log-bin = mysql-bin
server-id = 1

Bu değişikliklerden sonra master MySQL'i restart edebilirsiniz

Slave MySQL'de my.cnf dosyasına (path'i /etc/my.cnf şeklinde) aşağıdakiler eklenmelidir : 

log-bin = mysql-bin
server-id = 2
relay-log = mysql-relay-bin
log-slave-updates = 1
read-only = 1

Slave MySQL'i restart edebilirsiniz

Bu işlemlerden sonra Slave MySQL'i master'daki durumdan başlatmak gerekiyor. Bunun için Master backup alınıp , Slave restore edilmesi gerekir. Aşağıdaki gibi bu işlem yapılabilir : 

mysqldump -u root -p --all-databases --master-data=2 > dbdump.db

dbdump.db dosyası slave MySQL'inin server'ına kopyalanıp , aşağıdaki ile restore işlemi yapılır : 

mysql -u root -p < dbdump.db

dbdump.db içeriğine bakarsanız aşağıdaki gibi bir satır görmeniz gerekmektedir : 

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=906;

Burada master'ın konum bilgisi bulunmaktadır. Slave MySQL'de replication'un hangi konumdan başlayacağını belirtmek için aşağıdaki komut çalıştırılması gerekmektedir : 

change master to master_host='192.168.10.1 ',  master_user='slave_user',  master_password='sifrem',  master_log_file='mysql-in.000006',  master_log_pos=906;

Bu işlemden sonra replication aşağıdaki komut ile başlatılır : 

start slave;

Replication ile ilgili bilgiyi show slave status komutunu çalıştırarak öğrenebilirsiniz

Test etmek için master MySQL'de bir veritabanı ve tablo yaratıp , içerik ekleyebilirsiniz. Eğer replication başarılı kuruldu ise yaptığınız işlemlerin aynen slave MySQL'de de olması gerekir

Bu çalışmada http://www.ovaistariq.net/565/setting-up-master-slave-replication-with-mysql/ makelesinden yararlanılmıştır. Master-Slave ortamı bu makale yardımıyla kurulmuş ve başarılı bir şekilde test edilmiştir.

 

 


Kavram

Keepalived

Tanım: Linux sistemlerinde , birden fazla makinenin ayakta olup olmadığını kontrol eden, birine erişilemediği zaman diğer sunuculara yönlendirme (loadbalancing) yapan , C ile yazılmış bir uygulama



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir