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