Mysql Cluster,
Yüksek trafiğe ve yüksek miktarda veri alış verişine sahip birdatabase’iniz varsa, ve bu database’iniz ölüp ölüp diriliyorsaartık cluster’a geçme vakti gelmiş demektir. Cluster kelime anlamıolarak kümeleme demektir. Mysql Clustering dataları tablo boyutunda,cluster’e dahil ndb node’larda kümeler halinde tutar. Ve yine bunode’lar kendi aralarında data kopya tutma işlerini bu şekilde yaparlar.Yani tabloları farklı fiziksel makinalarda tutup , datanın kopyalarınıoluştururlar. İstenirse kümeye yeni makinalar(ndb node) eklenebilir.Bu şekilde bir büyüme de sağlanmış olur.Clusterin performans’a olan katkısı haricinde database’inizinsürekliliğini sağlar. Yani ndb node’lardan biri çökerse diğerikaldığı yerden devam eder.

Şekil1
Şekil1

Şimdi yukarıdaki diagramda ,1 adet (192.168.1.21) ip’li yönetim nodu2 adet (192.168.1.22-192.168.1.23) ip’li ndb node (depolama nodu)1 adet (192.168.1.24) ip’li Api node mevcuttur.(sorguların gönderileceği mysql server)Adım adım cluster yapımızı kurmaya başlayalım.1-Adım: Tüm makinalarda Mysql server kurulu olduğunu varsayıyorum.
192.168.1.21 ip’li makinada sırayla,mkdir /var/lib/mysql-cluster –> /var/lib/in altında mysql-cluster
isimli bir dizin oluşturuyoruz.cd /var/lib/mysql-cluster –> oluşturduğumuz klasörün içine giriyoruz.
nano config.ini –> diyerek config.ini adında bir conf dosyası
oluşturup içini aşağıdaki gibi dolduruyoruz.,

Şekil2
Şekil2

Dosyayı kaydedip kapatıyoruz. Ve ndb_mgmd komutunu,daha sonra da, ps -ef | grep [n]db komutunu çalıştırıyoruz.
ps -ef | grep [n]dbkomutu ile yonetim nodunun çalışıp , çalışmadığını
kontrol ediyoruz.2-Adım: Şimdi ise her iki depolama nodunu bulunduğu makinalarda
(192.168.1.22-192.168.1.23) :Not:Bu arada her iki makinada da mysql stop durumda olacak.
nano /etc/mysql/my.cnfdosyalarını açıp aşağıdaki gibi dolduruyoruz.
[mysqld]ndbclusterndb-connectstring=’host=192.168.1.21′ # Yonetim nodunun ip adresi[mysql_cluster]ndb-connectstring=’host=192.168.1.21′ # Yonetim nodunun ip adresi
Dosyaları kaydedip kapattıkdan sonra ,mkdir /var/lib/mysql-cluster –> /var/lib/ in altında mysql-clusterisimli bir dizin oluşturuyoruz.
/usr/bin/ndbd – – initial –> komutunu veriyoruz.Ve mysql server’ı
/etc/init.d/mysql start –>komutu ile start ediyoruz.
ps -ef | grep [n]dbd –>komutu ile ndb nodların çalışıp çalışmadığını kontrol ediyoruz.
3-Adım: Yonetim noduna geçiyoruz.(192.168.1.21)
ndb_mgm komutunu çalıştırıp yonetim konsolunu
açmış oluyoruz.Sonra show komutu ile yonetim ve depolama nodlarının çalıştığını
görebiliriz.Şimdi test açısından depolama nodlarına gidip, her iki node da daaynı isme sahip bir database oluşturun. Ve devamında daserverlardan birinde bir tablo oluşturup, tabloya birkaç satırveri girişi yapın. Gidip diğer server’a baktığınızda aynı tablonundiğer server da da oluştuğunu göreceksiniz. Tam tersi içindegeçerlidir.DİKKAT:Tabloyu create ederken engine=ndbcluster; ifadesini
eklemeyi unutmayın.create table test (id int) engine=ndbcluster;
Ama ben her tablo create ettiğimde engine olarak bu tablonunndbcluster olduğunu belitmek istemiyorum diyorsanız
my.cnf confdosyasının içine ,
[mysqld]default-table-type=NDBCLUSTER
ifadesini eklemeniz gerekecektir.4-Adım:Evet şimdi ise Apı nodumuzu clusterımıza ekleyelim.
(192.168.1.24). Bu makinada da mysql serverın kurulu olduğunuve şu an stop durumda olduğunu varsayıyorum.nano /etc/mysql/my.cnf dosylarını açıp aşağıdaki gibi dolduruyoruz.
[mysqld]ndbclusterndb-connectstring=’host=192.168.1.21′ # Yonetim nodunun ip adresi[mysql_cluster]ndb-connectstring=’host=192.168.1.21′ # Yonetim nodunun ip adresi
Kaydedip kapatıyoruz./etc/init.d/mysql start –> komutunu vererek mysql start ediyoruz.
Evet böylece Apı nodumuzda cluster yapısına eklenmiş oldu.Api nodun bulunduğu mysql server’a bağlanıp ndb nodlardatest için oluşturduğumuz db yi, bu serverda da create edin.Ve göreceksiniz ki yeni oluşturduğumuz db içinde, test içindiğer tarafta oluşturduğumuz ve kayıt girdiğimiz tablolarolmuş olacak.Apı nodunu sadece select işlemleri için kullanmanız tavsiyeedilir.Tabi ki burada yapılan herhangi bir update ,insertanında diğer dblere yansır.Yonetim noduna gidip show komutunu tekrardan verirsenizapi nodununda cluster yapısına eklenmiş olduğunu görürsünüz.Clustring le ilgili püf noktaları anlatan bir makele de kısa süresonra yayına girecektir.Tayfur BÖLERDatabase Administratorwww.mysqlsupport.net