Merhabalar,
Bu yazımızda MySQL veritabanında DB ve tablo bazlı replikasyonun nasıl yapıldığını ele aldık, keyifli okumalar.
MySQL Tablo/DB Bazlı Replikasyon
MySQL veritabanı teknolojisinde, master-slave replikasyonu sırasında replike edilecek tablo ve/veya database’ler için filter oluşturmak diğer veritabanı teknolojilerine göre çok çok daha kolaydır. Basit 1-2 parametre ile replikasyona filtre verilebilir. MySQL Tablo/DB Bazlı Replikasyon yapmak için öncelikle master server’dan replikasyon yapılacak tablonun bulunduğu DB’nin dump’ı alınarak slave ortama restore edeceğiz. Slave ortamda aynı isimde db create edilmelidir.
Dump almak:
mysqldump -u <username> -p <password> dbname > /db/path/dbname.sql
Dump Restore:
mysql -u <username> -p <password> dbname < /db/path/dbname.sql
NOT: dump esnasında prod tarafa herhangi bir transaction gelmemesine dikkat edin. Eğer tutarlı bir şekilde taşıma yapmak istiyorsanız, percona xtradb backup tool’unu kullanabilirsiniz. Xtrabackup ile master-slave replikasyonu için makalemizi okuyabilirsiniz.
Mysql conf dosyanıza aşağıdaki parametreleri ekleyin:
#Tablo bazlı replikasyon için:
replicate-do-table=tablename
#DB bazlı replikasyon için
replicate-do-db=dbname
Parametreler girildikten sonra mysql servisi stop-start yapılır.
Aşağıdaki komut ile replikasyonun nereden devam edeceğini söylüyoruz.
change master to master_host='IP', master_port=3306, master_user='replica_user', master_password='reppass', MASTER_LOG_FILE='binlog.000385', MASTER_LOG_POS=706, MASTER_AUTO_POSITION=0;
Son olarak replikasyon başlatılır ve control edilir.
start slave;
Statuste replike yaptığınızz db’leri ve/veya tablo’ları görebilirsiniz.
show slave status\G
Umarım faydalı olmuştur…
MySQL veritabanı hakkında verdiğimiz destek hizmetimizden yararlanmak için siz de Forenda ile iletişime geçebilirsiniz.
dba@forenda.com.tr