mrb, Nuri hocam sanırım mailimi eksik okudunuz, zira en sonundaki cümlede
> slave makine üzerinde sadece select querylerinizin çalışacağını > düşünerek yazdım. demişim. Nuri Akman wrote: > Slave makine, Master'a erişilememesi halinde işi üzerine alacak ve > master gibi hizmet vermeye devam edecek. > > Örnekteki koda baktığımızda: > Varsayalım ki, user1, db1'a bağlanamayınca db2'ya bağlanıp kayıt girdi. > user2 db1'e bağlanmayı denediğinde ise az önceki sorun ortadan > kalkmıştı ve user2 db1'e bağlanıp kayıt yaptı. > > Göreceğiniz gibi sistem çöktü :( > > > > > 29.01.2010 16:30, Atıf CEYLAN yazmış: >> merhaba, >> aslında ilk mailimde bu sorunuza cevap vermiştim. >> web uygulamanızda bağlantı alanınıza küçük bir kontrol eklemeniz >> yeterli olacaktırdiye düşünüyorum. >> >> baglan db1 >> >> if (db1 baglı değilse) >> baglan db2 >> >> if (db2 baglı değilse) >> echo yapaca bisey yok. >> >> slave makine üzerinde sadece select querylerinizin çalışacağını >> düşünerek yazdım. >> >> On 1/29/10, *Nuri Akman* <[email protected] >> <mailto:[email protected]>> wrote: >> >> Merhaba Atıf Bey, >> >> Benim, sadece Slave'deki MySQL'i güncel tutma ihtiyacım var. >> Çünkü, Web Server'da yer alan dosyalarımda güncelleme ihtiyacım >> neredeyse hiç olmuyor. >> >> *Ve, cevabını hala bulamadığım soru ise şu:* >> Master'a herhangi bir şekilde kısa veya uzun süre ulaşılamaması >> söz konusu olursa, Slave devreye girsin istiyorum. Bu sırada, >> Master kendine gelse bile Slave çalışmaya devam etsin. Sonrasında >> benim kontrolümde tekrar Master'a döneyim. >> >> Bu konuya aslında sizin de belirttiğiniz gibi Felaket Kurtarma >> Merkezi olarak da bakabiliriz. İstiyorum ki, kullanıcılar >> sunucudaki felaket durumunu hiç hissetmesinler; veya minimum >> duraksama ile hissetsinler. Ayrıca Master'dan Slave'e geçiş >> tamamen otomatik olsun, bana ihtiyaç duymasın. >> >> Bunu nasıl yapabileceğim konusunu araştırıyorum. >> >> Selamlar, >> Nuri Akman >> >> >> 29.01.2010 11:18, Atıf CEYLAN yazmış: >>> merhaba, >>> sadece veritabanı değil tüm sistemin yedeğini rsync ile alabilirsiniz. >>> >>> benzer bir durumu biz yaşıyoruz. yurt dışındaki sunucuların >>> yedeklemelerini hem aynı lokasyonda hemde türkiyedeki sunucularda >>> tutuyoruz. türkiye için süreç 1 saatlik rsync yedeklemesi şeklinde. bu >>> FKM (felaket kurtarma merkezi) için iyi bir yöntem. gönül isterki güzel >>> ülkemin hat maliyetleri düşse de artık bizlerde yurt sermayesine >>> katkıda >>> bulunsak :) >>> >>> kolay gelsin >>> >>> Nuri Akman wrote: >>> >>>> Merhaba, >>>> >>>> Master'da herhangi bir sorun oluşup master KISA veya UZUN süreli >>>> SUSARSA, ben devreye girene kadar Slave çalışsın istiyorum. Ben >>>> devreye girmeden Master kendine gelse bile Slave çalışmaya devam >>>> etmeli. >>>> >>>> Benim devreye girmemden amacım, Slave'deki güncel verilerin Master'ı >>>> kontrolüm dahilince güncellemesini sağlamak. >>>> >>>> Bu işi nasıl sağlayabilirim acaba? >>>> >>>> Ayrıca, düşündüğüm sistem web server'ın komple bir yedeğinin farklı >>>> bir fiziksel lokasyonda (Örnek: master Ankara, slave ABD'de) her an >>>> devreye girebilecek şekilde hazır bulunması. >>>> >>>> Selamlar, >>>> Nuri Akman >>>> >>>> >>>> >>>> 29.01.2010 10:41, serkan yazmış: >>>> >>>>> İlk dediğiniz şekilde. Ancak 5 dakika değil 1 saniyede bir, >>>>> ayarlanabiliyor ama oldukça kısa bir zaman. >>>>> >>>>> serkan >>>>> >>>>> >>>>> 2010/1/29 Nuri Akman <[email protected] >>>>> <mailto:[email protected]> >>>>> <mailto:[email protected]>> >>>>> >>>>> Merhaba Atıf Bey, >>>>> >>>>> Master-slave replikasyonu şu şekilde mi çalışıyor?: >>>>> Örneğin 5 dakikada bir, o ana kadar master'da gerçekleştirilen >>>>> update ve >>>>> insert komutları slave'e gönderiliyor ve bu komutlar slave >>>>> üzerinde >>>>> çalıştırılıyor. >>>>> >>>>> Yoksa; Master'daki her bir update/delete anlık olarak mı >>>>> güncelleniyor? >>>>> >>>>> Selamlar, >>>>> Nuri Akman >>>>> >>>>> >>>>> 29.01.2010 00:32, Atıf CEYLAN yazmış: >>>>> > Merhaba, >>>>> > konunun tamamını takip edemedim malesef, buradaki yazdıklarınıza >>>>> > istinaden nacizane tavsiyem, master-slave replication olacak. >>>>> yanlış >>>>> > hatırlamıyorsam mysql ndb vardı bir zamanlar. zahmetsiz bu işi >>>>> > hallediyor diye biliyorum. >>>>> > yazdığınızdan anladığım kadarı ile değişen veriniz hayli az. bu >>>>> nedenle >>>>> > master-slave replication işinizi fazlası ile görecektir. temel >>>>> mantığı; >>>>> > slave olan db belirlediğiniz sürelerde kendini, master db'den >>>>> günceller >>>>> > (örn. her dakikada). aynı uygulamanızın iki kopyası var sanırım, >>>>> > uygulamanızda insert, uğdate, delete işlemlerini master db'den >>>>> select >>>>> > işlemlerini oransal olarak her ikisinden yaparsınız. böylece >>>>> hem >>>>> > poolingde yapmış olursunuz. uygulama içinde bağlantı noktasında >>>>> if >>>>> > (!$db1) baglan(db2) benzeri bir kontrolle kullanıcılarınızın >>>>> aksaklıktan >>>>> > haberdar olmadan işlerine devam etmelerinide sağlamış olursunuz. >>>>> > >>>>> > kolay gelsin. >>>>> > >>>>> > Nuri Akman wrote: >>>>> > >>>>> >> Merhaba, >>>>> >> >>>>> >> Sanırım sizinkine benzer bir durum da benim başımda. Bende >>>>> durum >>>>> >> şöyle: İnternette aktif olarak çalışan PHP+MySQL uygulamam >>>>> var. Ancak, >>>>> >> "sunucum herhangi bir zamanda devre dışı kalırsa ne olacak?" >>>>> korkum >>>>> >> var. Veritabanımda on binlerce satır veri olmasına rağmen >>>>> bunların >>>>> >> sadece en son 500 - 700 tanesi GÜN İÇİNDE ekleniyor veya >>>>> >> değiştiriliyor. Eski kayıtlar olduğu gibi kalıyor ve hiç bir >>>>> şekilde >>>>> >> delete/update yapılmıyor. >>>>> >> >>>>> >> Aktif sunucu üzerindeki PHP dosyalarımı fiziksel olarak uzakta >>>>> bulunan >>>>> >> başka bir sunucuya da yükledim. Aynı sunucuda PHP+MySQL >>>>> çalışıyor. >>>>> >> Veritabanını da olduğu gibi kopyaladım ve sistem, bu sunucu >>>>> üzerinden >>>>> >> de hizmet veriyor. >>>>> >> >>>>> >> *Sorun da burada başlıyor: * >>>>> >> Her yeni işlemle birlikte ikinci sunucudaki veritabanım >>>>> güncelliğini >>>>> >> yitiriyor. İşte tam bu noktada replikasyon ihtiyacım var >>>>> diyorum. >>>>> >> >>>>> >> *Senaryoyu işleme koyalım: * >>>>> >> Sunucu 1 devre dışı kalmış. Kullanıcılar, bunu görüp Sunucu >>>>> 2'den >>>>> >> devam ediyorlar. >>>>> >> >>>>> >> Herhangi bir metodla Sunucu 2'ye aktardığım veriler ne kadar >>>>> güncelse >>>>> >> kullanıcılarım da o kadar güncel bir sistemde çalışıyorlar. Bu >>>>> metod >>>>> >> manuel bir şey de olsa, replikasyon da olsa amacımıza ulaştık >>>>> demektir. >>>>> >> >>>>> >> *Peki sonrasında ne olacak?* >>>>> >> Sunucu 2 bir süre hizmet verdi ve üzerine yeni veriler eklendi >>>>> / >>>>> >> güncellendi, ancak Sunucu 1 bundan habersiz. >>>>> >> >>>>> >> Acaba ihtiyaçlarımız benzeşiyor mu? >>>>> >> >>>>> >> Selamlar, >>>>> >> Nuri Akman >>>>> >> >>>>> >> >>>>> >> 28.01.2010 15:24, Ali Rıza Keleş yazmış: >>>>> >> >>>>> >>> On Thu, 2010-01-28 at 14:49 +0200, Nuri Akman wrote: >>>>> >>> >>>>> >>> >>>>> >>>> Merhaba, >>>>> >>>> >>>>> >>>> Mesajınıza baktığımda, amacınızın replikasyon olduğunu >>>>> belirtiyorsunuz, >>>>> >>>> ancak buna neden ihtiyaç duyduğunuzun yanıtını göremiyorum. >>>>> Bu konuda >>>>> >>>> bilgi verebilir misiniz? Veritabanınızı replike edince ne >>>>> olmasını >>>>> >>>> umuyorsunuz? >>>>> >>>> >>>>> >>>> >>>>> >>> Daha detaylı anlatayım... >>>>> >>> >>>>> >>> Intranet çalışan bir uygulamam var. Uygulama Vertabanı ile >>>>> birlikte >>>>> >>> yerel bir sunucuda. Sistem Debain Lenny. Buna srv1 diyelim >>>>> üzerindeki >>>>> >>> uygulamaya app1, vertabanına ise vt1. >>>>> >>> >>>>> >>> Aynı uygulamanın daha sınırlı bir kopyası Internet üzerinde >>>>> başka bir >>>>> >>> sunucuda.. Bunlara da sunucu srv2, uygulama app2, >>>>> veritabanına ise vt2 >>>>> >>> diyelim. Bu da aynı biçimde Debian Lenny. >>>>> >>> >>>>> >>> >>>>> >>> Esas datalar srv1 üzerinde app1 ile vt1 e işleniyor. İlk >>>>> istediğim bu >>>>> >>> işlemlerin kopyaları aynen srv2 üzerindeki vt2 ye birebir >>>>> kopyalanması >>>>> >>> ve app2 nin kullanımına hazır hale gelmesi. >>>>> >>> >>>>> >>> Yereldeki kadar olmasa da srv2 deki app2 bir miktar datayı >>>>> bağımsız >>>>> >>> biçimde üretip vt2 ye kaydedecek. Bu vt2 ye kaydedilen >>>>> datalarında aynen >>>>> >>> yereldeki vt1 'e kaydedilmesini istiyorum. >>>>> >>> >>>>> >>> Bunun yanında, ilerisi için soruyorum bunu, başka bir >>>>> lokasyonda 3. bir >>>>> >>> sunucu eklediğimde, srv3, app3 ve vt3 diyelim, 3 sunucuyu da >>>>> yukarıdaki >>>>> >>> ikisi gibi nasıl çalıştırabilirim. >>>>> >>> >>>>> >>> vt1-vt2 replikasyonu >>>>> >>> vt2-vt3 replikasyonu >>>>> >>> >>>>> >>> işimi görür mü? >>>>> >>> >>>>> >>> Eğer replikasyondan haberdar olmasaydım, şöyle çözecektim: >>>>> >>> >>>>> >>> 1- srv1 üzerindeki dataları bir biçimde ve sürekli şekilde web >>>>> >>> üzerindeki sunucuya da kaydedecek, >>>>> >>> >>>>> >>> 2- srv2 de üretilen datayı geçici tablolara kaydedip, app1 in >>>>> isteği >>>>> >>> üzerine, kullanıcının tetiklemesi ya da otomatik, hem srv1 e >>>>> hem de srv2 >>>>> >>> ye kaydedecektim. >>>>> >>> >>>>> >>> >>>>> >>> Son olarak bütün bu işlemleri ssl ile yapmak istediğimi >>>>> söyledim. Ben >>>>> >>> soruma yanıtımı genel olarak aldım ama güzel bir konu, daha >>>>> çok >>>>> >>> paylaşabiliriz. >>>>> >>> >>>>> >>> İlginiz için teşekkür ederim. >>>>> >>> >>>>> >>> -- >>>>> >>> Ali Rıza Keleş, >>>>> >>> >>>>> >>> >>>>> >>> >>>>> >>> >>>>> >>> >>>>> >>> >>>>> >>>> Selamlar, >>>>> >>>> Nuri Akman >>>>> >>>> >>>>> >>>> >>>>> >>>> 27.01.2010 18:11, Ali Rıza Keleş yazmış: >>>>> >>>> >>>>> >>>> >>>>> >>>>> Merhaba, >>>>> >>>>> >>>>> >>>>> Veritabanı replication(yanıtınızda uygun gördüğünüz Türkçe >>>>> karşılığını >>>>> >>>>> yazarsanız, bundan sonra onu kullanırım.) konusunda >>>>> önerinizi almak >>>>> >>>>> istiyorum. Biraz okudum, eğer çözüm bu ise derinleşeceğim. >>>>> >>>>> >>>>> >>>>> Durum şöyle: >>>>> >>>>> >>>>> >>>>> Vt1: insert/update/delete işlemleri yoğun olacak, >>>>> >>>>> >>>>> >>>>> Vt2: Select işlemleri çok yoğun olacak ama bu işlemlerin >>>>> kayıt altına >>>>> >>>>> alınması için gerekli olan bazı insert işlemleri de >>>>> yapılacak. Vt1 in >>>>> >>>>> işleyeceği temel tablolarda çok nadiren insert işlemleri >>>>> yapılacak. >>>>> >>>>> >>>>> >>>>> Vt1 deki ve Vt2 deki her türlü değişikliğin aynı anda >>>>> karşılıklı >>>>> >>>>> işlenmesini istiyorum. Bunu master-master replication ile >>>>> yapabilir >>>>> >>>>> miyim? >>>>> >>>>> >>>>> >>>>> Aklıma takılan bazı problemler: >>>>> >>>>> >>>>> >>>>> 1- Bu iş için en uygun çözüm replication(master-master) mı? >>>>> >>>>> >>>>> >>>>> 2- İşlem çakışmaları yaşıyabilir miyim? AutoIncrement >>>>> alanlar nasıl >>>>> >>>>> olur? Yani aynı anda vt1.tablo1 ve vt2.tablo1 e data >>>>> girildiğinde ve >>>>> >>>>> aynı AI değeri aldıklarında veri kaybı, replikasyonun >>>>> çökmesi gibi >>>>> >>>>> sorunlar yaşar mıyım? >>>>> >>>>> >>>>> >>>>> 3- Sunucular aynı lokasyonda değiller. Birisi internet >>>>> üzerinde, >>>>> >>>>> diğer(ler)i yerel ağ(lar)da. Genelde aynı ağda olması >>>>> yönünde tavsiyeler >>>>> >>>>> gördüm? Böyle olması çok zorluk çıkarır mı? >>>>> >>>>> >>>>> >>>>> 4- Vt1 özelliklerinde bir vertabanı daha (Vt3) bu >>>>> kompozisyona >>>>> >>>>> eklenebilir mi? Yani Vt1-Vt2 ve Vt2-Vt3 şekline Vt2 aynı >>>>> anda hem Vt1 ve >>>>> >>>>> Vt2 ile replikasyon yapılabilir mi? >>>>> >>>>> >>>>> >>>>> 5- Bu işlem sırasında SSL kullanabileceğimi de okudum. Aynı >>>>> lokasyonda >>>>> >>>>> olmadıkları için sizce performansı nasıl etkiler? >>>>> >>>>> >>>>> >>>>> Teşekkür ederim. >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Ali Rıza Keleş, >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> >>>>> Linux-sunucu E-Posta Listesi >>>>> >>>>> [email protected] >>>>> <mailto:[email protected]> >>>>> <mailto:[email protected]> >>>>> >>>>> >>>>> >>>>> Liste kurallarını http://liste.linux.org.tr/kurallar.php >>>>> bağlantısından okuyabilirsiniz; >>>>> >>>>> >>>>> >>>>> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu >>>>> listeden gelen e-postaları almak istemiyorsanız aşağıdaki >>>>> bağlantı adresini kullanarak 1 dakika içinde üyeliğinizi >>>>> sonlandırabilirsiniz. >>>>> >>>>> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> _______________________________________________ >>>>> >>>> Linux-sunucu E-Posta Listesi >>>>> >>>> [email protected] >>>>> <mailto:[email protected]> >>>>> <mailto:[email protected]> >>>>> >>>> >>>>> >>>> Liste kurallarını http://liste.linux.org.tr/kurallar.php >>>>> bağlantısından okuyabilirsiniz; >>>>> >>>> >>>>> >>>> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu >>>>> listeden gelen e-postaları almak istemiyorsanız aşağıdaki >>>>> bağlantı adresini kullanarak 1 dakika içinde üyeliğinizi >>>>> sonlandırabilirsiniz. >>>>> >>>> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu >>>>> >>>> >>>>> >>>> >>>>> >>> _______________________________________________ >>>>> >>> Linux-sunucu E-Posta Listesi >>>>> >>> [email protected] >>>>> <mailto:[email protected]> >>>>> <mailto:[email protected]> >>>>> >>> >>>>> >>> Liste kurallarını http://liste.linux.org.tr/kurallar.php >>>>> bağlantısından okuyabilirsiniz; >>>>> >>> >>>>> >>> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu >>>>> listeden gelen e-postaları almak istemiyorsanız aşağıdaki >>>>> bağlantı adresini kullanarak 1 dakika içinde üyeliğinizi >>>>> sonlandırabilirsiniz. >>>>> >>> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu >>>>> >>> >>>>> >>> >>>>> >> >>>>> >>>>> ------------------------------------------------------------------------ >>>>> >> >>>>> >> _______________________________________________ >>>>> >> Linux-sunucu E-Posta Listesi >>>>> >> [email protected] >>>>> <mailto:[email protected]> >>>>> <mailto:[email protected]> >>>>> >> >>>>> >> Liste kurallarını http://liste.linux.org.tr/kurallar.php >>>>> bağlantısından okuyabilirsiniz; >>>>> >> >>>>> >> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu >>>>> listeden gelen e-postaları almak istemiyorsanız aşağıdaki >>>>> bağlantı adresini kullanarak 1 dakika içinde üyeliğinizi >>>>> sonlandırabilirsiniz. >>>>> >> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu >>>>> >> >>>>> >> >>>>> > >>>>> > >>>>> _______________________________________________ >>>>> Linux-sunucu E-Posta Listesi >>>>> [email protected] >>>>> <mailto:[email protected]> >>>>> <mailto:[email protected]> >>>>> >>>>> Liste kurallarını http://liste.linux.org.tr/kurallar.php >>>>> bağlantısından okuyabilirsiniz; >>>>> >>>>> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu >>>>> listeden gelen e-postaları almak istemiyorsanız aşağıdaki >>>>> bağlantı adresini kullanarak 1 dakika içinde üyeliğinizi >>>>> sonlandırabilirsiniz. >>>>> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Linux-sunucu E-Posta Listesi >>>>> [email protected] >>>>> <mailto:[email protected]> >>>>> >>>>> Liste kurallarını http://liste.linux.org.tr/kurallar.php >>>>> bağlantısından okuyabilirsiniz; >>>>> >>>>> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden >>>>> gelen e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini >>>>> kullanarak 1 dakika içinde üyeliğinizi sonlandırabilirsiniz. >>>>> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu >>>>> >>>>> >>>> >>>> ------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> Linux-sunucu E-Posta Listesi >>>> [email protected] >>>> <mailto:[email protected]> >>>> >>>> Liste kurallarını http://liste.linux.org.tr/kurallar.php >>>> bağlantısından okuyabilirsiniz; >>>> >>>> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden >>>> gelen e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini >>>> kullanarak 1 dakika içinde üyeliğinizi sonlandırabilirsiniz. >>>> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu >>>> >>>> >>> >> >> _______________________________________________ >> Linux-sunucu E-Posta Listesi >> [email protected] >> <mailto:[email protected]> >> >> Liste kurallarını http://liste.linux.org.tr/kurallar.php >> bağlantısından okuyabilirsiniz; >> >> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu >> listeden gelen e-postaları almak istemiyorsanız aşağıdaki >> bağlantı adresini kullanarak 1 dakika içinde üyeliğinizi >> sonlandırabilirsiniz. >> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu >> >> >> >> >> -- >> /** >> * @author Atıf CEYLAN >> * Software Developer >> * http://www.atifceylan.com >> */ >> >> >> _______________________________________________ >> Linux-sunucu E-Posta Listesi >> [email protected] >> >> Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından >> okuyabilirsiniz; >> >> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen >> e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 >> dakika içinde üyeliğinizi sonlandırabilirsiniz. >> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu >> > ------------------------------------------------------------------------ > > _______________________________________________ > Linux-sunucu E-Posta Listesi > [email protected] > > Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından > okuyabilirsiniz; > > Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen > e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 > dakika içinde üyeliğinizi sonlandırabilirsiniz. > http://liste.linux.org.tr/mailman/listinfo/linux-sunucu > -- /** * @author Atıf CEYLAN * Software Developer * http://www.atifceylan.com */ _______________________________________________ Linux-sunucu E-Posta Listesi [email protected] Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından okuyabilirsiniz; Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 dakika içinde üyeliğinizi sonlandırabilirsiniz. http://liste.linux.org.tr/mailman/listinfo/linux-sunucu
