InnoDB ve MySQL Replikasyonu
MySQL’de replikasyon MyISAM tabloları için yapılabildiÄŸi gibi InnoDB tabloları için de yapılabilir. Aynı zamanda master sunucu ile slave sunucuda kullanılan veri motoru farklı olsa bile replikasyon gerçekleÅŸtirilebilir. ÖrneÄŸin, InnoDB yapıdaki bir master sunucuda bulunan tabloda yapılan deÄŸiÅŸiklikleri MyISAM yapıya sahip slave sunucuya replike edebiliriz.
Master sunucudan bir slave sunucu oluşturmak için InnoDB tablolarına ait .frm dosyalarının yanı sıra tablespace ve log dosyalarının da bir kopyasının alınması gerekir. Alınan bu kopyalar slave sunucusuna taşınır. Eğer innodb_file_per_table parametresi etkinleştirilmiş ise .ibd dosyalarının da kopyası alınmış olmalıdır.
InnoDB tablespace’inin ve log dosyalarının yedeÄŸini alabilmek için sunucuyu kapatmamız gerekir. Ayrıca LOAD_TABLE_FROM_MASTER komutu ile bir InnoDB replikasyonu baÅŸlatılamayacaktır. Bu komut sadece MyISAM tabloları için geçerlidir. Tabloları slave sunucuya taşımak için master sunucudaki tablonun dump edilerek slave sunucuda import edilmesi gerekir.
Master sunucuda baÅŸarısız olan transaction’lar slave sunucuyu etkilemeyecektir. MySQL replikasyonu binary log’ları kullanılarak yapılır. MySQL veriler üzerinde deÄŸiÅŸiklik yapan SQL sorgularını bu log dosyalarına yazar. Dolayısı ile bir transaction baÅŸarısız olursa binary log dosyasına yazılamayacak böylece de slave sunucuya da gönderilmeyecektir.
No related posts.