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