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]> 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]> <[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]> <[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]> <[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]> <[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]> <[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]> <[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 [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 [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
