Forum
Merhaba
2 Ad IBM Server bulunan bir şirkette Serverların 1 tanesi "Primary Domain Controller" diğeri ise "Additional Domain Controller" olarak yapılandırılmıştır.
Şimdi benim istediğim şudur ;
Bu 2 Domain controller uzerınde SQL Server 2008 kurulu olucak fakat birisi "Primary SQL Server" diğeri ise "Additional SQL Server" yani Domain yapısı gibi "Primary" uzerine yazılan veri aynı anda "Additional SQL Server" uzerinede yazılacak. Bu yapıda arastırmalarım sonunda "Transactional Replication" yöntemını kullanmam gerektiği kanısına vardım.
İşletim sistemi olarak "Server 2003 Enterprise Edition R2" kullanmaktayım elimdeki SQL Server 2008 sürümü yine "Enterprise Edition"
Su an için Domainlerim Replikasyon yapıyor her ikisinin uzerinde SQL Server 2008 standart hali ile kurulu. Replication için bildiğim kadarı ile illa ki Cluster kurmaya gerek yok ? Cluster dısında Advanced bır kuruluma installation ekranlarında rastlamadıgım ıcın standart kurulum yapmak durumunda kaldım.Bu konu hakkında ınternette yeterlı ıcerık bulamasamda kendı bıldıgım kadarı ıle mantık ve yorum kullanarak Replication sekmelerinden 2 SQL Server'ı Replice etmeye calıstıysamda su ana kadar muvaffak olamadım
Umarım ne istediğimi en acık hali ile izah edebilmişimdir? Bu konu hakkında forum'da baska sorularada rastladım umarım Hakan bey bızlerı kırmaz "SQL Server 2008 Replication" uzerine bir makale yayınlar...
Basarılarınızın devamını dilerim....
Merhaba
aşağıdaki kaynaktan yararlanabilirsiniz
http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1309728,00.html#
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Merhaba Turkay;
Öncelikle transaction log shipping ve raplication birbirnden farklı kavram ve yöntemlerdir. 2 sininde kendine özel artı ve eksileri vardır. senin yapman gereken şey transacion log shipping değildir. Çünkü bu seçenekte database'inin recovery modunu full e çevirerek transaction logların dbni şişirmesine neden olacaksın. bu da sana ekstra disk alanı ve ek iş yükünden başka birşey getirmeyecek. Aynı zamanda transaction log shipping ile belli kriter değişimlerini yansıtamayacaksın. Örneğin sadece tabloların içerik ve yapıları yansısın veya sadece stored procedurelerin değişimleri yansısın gibi..
Gelelim Replication olayına;
anladığım kadarıyla sen anlık olarak tablo verileri, yapı değişiklikleri, fonksiyonlar vs. gibi hertürlü değişikliğin anlık olarak ve seçime bağlı bir şekilde diğer bir serverda da gerçekleşmesini istiyorsun.
Senin Primary SQL ine ==> Serv1 , Additional SQL serverına ==> Serv2 diyelim.
Publication ve subscription yapacak serverlarımız Serv1(publication) Serv2(subscription) dır.
SQL server management studiodan Serv1 database engine ebağlan ve Replicationın altında Local Publications sağtuş ile tıkla. buradan New publiction a tıkla ve karşına New Publication wizard gelecek. Next e tıkla ve ilerle. bir sonraki adımda replication yapmak istediğin dbyi seç ve next e bas. Şimdi gelelim publication type seçimine ki burada iyi karar vermemiz gerekiyor.
--Transactional publication- burada ilk defaya mahsus alınan snapshotın üzerine diğer serverda olan değişikliklerin transactionları yansıtılır ve tekrar tekrar snapshot alınmaz. ki en avantajlısı budur. anlık olarak yaptığınız tüm değişiklikler diğer servera yasıtılır.
Sen bu seçeneği seçerek zaten doğru bir karar vermişsin. Transactional Publication dedikten sonra next e tıkla ve karşına gelecek Articles ekranında bazı seçenekler göreceksin. bunlar hangi alandaki değişikliklerin diğer tarafa yansıtılmasını istediğini belirteceğin yer. buradan istediğin seçenekleri işaretleyip Next e bas. karşına Filter seçeneği gelecek ki buradan belli tablolardaki x kolonundaki 'xxxxx' e şet olan veriler gelmesin gibi filtreleme işlemi de yapabilirsin. Eğer böyle bir isteğin yoksa Next e basıp devam et. karşına gelecek 2 adet check box ı da işeretle ve burada hangi aralıklarla snap shotın alınacağını gir. daha sonra next e bas.karşına gelecek ekranda snapshot agent ın security ayarlarını da yaptıktan sonra okey e bas ve next e bas. ardından gelecek ekranda create publicationın işaretli olduğundan emin olduktan sonra nexte bas ve gelen ekranda publication name kısmına bir isim ver örneğin: Serv1_Pub_Deneme diyelim. ve Çıkan Ekranda Finishe basarak snapshotın oluşturulduğuna eminol. Snapshotın oluşturulup oluşturulmadığını görmek için;
Replicationın altında Local Publications'ın altında bulunan Serv1_Pub_Deneme'ye sağtuş ile bas ve Launch Replication Monitöre bas. karşına gelecek pencereden Serv1_Pub_Deneme yi bul ve üzerine tek tıkla. yantaraftan warnings and alerts tabına tıkla ve en altta completed snapshot agent ı gör ona da sağ tuşla tıklayıp eğer bitmemişse bile details diyerek işlemin hangi adımda olduğunu görebilirsin.aslında snapshotın alınıp alınmadığını görmenin daha kolay yoluda var tabi ama ekranları tanı isterim 🙂
herneyse ki snapshotımızı aldırdık ve sıra geldi. subscriptionımızı oluşturmaya.
şimdi Serv2 database engine a bağlan ve replication altında local subscription a sağtuşma tıklayıp new de. next deyip gelen ekrandan publisher ı seç. bu bir Serv1 oluyo ve buradan da Serv1_Pub_Deneme yi seç ve next e tıkla. karşına gelen pencerede 2 adet seçenek var ve senin için alttaki pull subscription daha iyi olacaktır. (ama tamamiyle sana kalmış.) seç ve nexte bas ardından gelen ekranda security ayarlarını yapıp nexte bas. Run contuniusly i seçip nexte bas. immediately i seçip nexte bas. Create subscriptions seçeneğinin işaretli olduğundan emin ol ve next e bas. daha sonrada finish deyip bitir. böylece subscriptionımızda oluşturuldu.
Artık replication çalışır durumda. bunları denedikten sonra eğer hala hata mesajı alıosan buradan bana bildir ve yardım etmeye çalışiiim. Bu arada anlatım için kusura bakmayın :)) çok kötü olduğunu farkındayım ama dar zamanda işten yazıorum. Affedin bi ara düzeltirim.
Önemli Not. artık dikkat etmen gereken en önemli şey Serv2 de direk bir değişiklik yapmamak çünkü yaparsan replication patlar.:))
Değerli bilgilerinizi bizimle paylaştığınız için teşekkür ederiz Onur bey.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Cok tsk ederim "onureray"
Tam olarak istediğim cevap buydu. Fakat benim istediğim senaryo sudur ;
Prımary SQL Server olarak kullandıgım Sunucu Down oldu ? Bu durumda hiç aksama yaşamadan Secondary SQL Server devreye girsin istiyorum Su an kurdugum yapıda Primary SQL server Down olursa kullanıcılar yine veri tabanına ulasamayacaklar yani birnevi AD Replication olayı gıbı Failover senaryosu dusunelım ? bunun ıcın sanırım Cluster kurmam gerekecek yanılıyormuyum ?
Unutmadan forumlarda cevabı alan kacar durumda... eger sıte yonetımı isterse bu uygulamayı screen shotlar halınde anlatabılırım en azından dıger arkadaslarda faydalanır
Bence sizde makale yazma potansiyeli var [:P] ( ben gazı vereyim de kim bilir yeni bir yazarımız olur )
şaka bir yana tabiki bizimle paylaşmanız bizleri mutlu edecektir.
teşekkürler
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Bu arada hepinize tekrardan merhaba.
Hakn bey ve Turkay sizlerden özür diliyorum. son 2 hafta benim için gerçekten çok yoğun geçti, bu yüzden pek fazla ilgilenemedim olayın gidişatıyla. 🙂
Şimdi gelelim Türkay senin soruna.
Evet cluster ile çözebilirsin, bu arada mirroring ide bir araştır derim sana. Ama bir de şöyle bir ihtimal var o da replication ile çözülebiliyor. fakat zahmetli bir olay.
1-öncelikle bu sql serverları bir site için sadece sitenin data read yapması için mi kullanıyorsun?
2- herhangi bir yazılım mı kullanacak bu yapıyı?(Yazılımdan kasıtım- kullanıcıların data read ve write yapabilecekleri bir yapı dan mı bahsediyoruz?)
Eğer 1. si ise çok kolay şekilde sorunun çözülüyor. sadece sitenin veya programın sql connectionı düştüğünde senin daha önceden oluşturmuş olduğun diğer connection'ı devreye alacak kodu yazarak istediğini elde edebilirsin.
ama 2. si ise ozaman devreye replication girmiyor malesef. clustring ve mirroring gibi kavramlar girmekte işe 🙁 çünkü
replicationın çift taraflı olması lazım ki bu biraz işleri karıştıracaktır. neden çift taraflı olmalı onun nedeni ise kullanıcılar primarye ulaşamayınca otomatik olarak secondary e ulaşacaklar ve ozaman da secondary e data girişi olacak. girilen dataların aynızamanda diğer server aktif hale gelince primaryE de aktarılması gerekiyor. ama ozaman da serverlar hem publication hemde subscription yapmalılar. ki bunu da 1. serverdan a db sini aldın 2. serverda a dbsine replice ettin diyelim.tekrar 2. serverdan a db sini 1. serverdaki a dbsine replica edersen bir kısır döngü oluşur ki bu da istenmeyen sonuçlar doğurabilir anlık replication da. zaten senin istediğini çözebilecek bir durum teşkil etmiyor replication.
herneyse senin için çözüm zaten failovar clustering ve mirroring dir arkadaşım:)
ama aklında olsun replication güzel bir olay ki en güzel örneği replication datalarını kullanan siteler ijection a pek fazla maruz kalmazlar. sadece replication servına webden gelen kullanıcılara read hakkı vererek gibi.
bu konularıda daha sonradan tekrar anlatıcam. Umarım zamanım olur.
Çok özür dilerim ama bu aralar işleri yoğun olan bi DBA im ve yazım/imla kurallarına pek dikkat edemiyorum bu yüzden. en yakın zamanda işlerimi toparlayıp SQL server ile ilgili makaleler yazmaya başlıycam. bunuda umarım hakan bey göz ardı etmez.
Kendinize İyi bakın....
Bu arada hepinize tekrardan merhaba.
Hakn bey ve Turkay sizlerden özür diliyorum. son 2 hafta benim için gerçekten çok yoğun geçti, bu yüzden pek fazla ilgilenemedim olayın gidişatıyla. 🙂
Şimdi gelelim Türkay senin soruna.
Evet cluster ile çözebilirsin, bu arada mirroring ide bir araştır derim sana. Ama bir de şöyle bir ihtimal var o da replication ile çözülebiliyor. fakat zahmetli bir olay.
1-öncelikle bu sql serverları bir site için sadece sitenin data read yapması için mi kullanıyorsun?
2- herhangi bir yazılım mı kullanacak bu yapıyı?(Yazılımdan kasıtım- kullanıcıların data read ve write yapabilecekleri bir yapı dan mı bahsediyoruz?)
Eğer 1. si ise çok kolay şekilde sorunun çözülüyor. sadece sitenin veya programın sql connectionı düştüğünde senin daha önceden oluşturmuş olduğun diğer connection'ı devreye alacak kodu yazarak istediğini elde edebilirsin.
ama 2. si ise ozaman devreye replication girmiyor malesef. clustring ve mirroring gibi kavramlar girmekte işe 🙁 çünkü
replicationın çift taraflı olması lazım ki bu biraz işleri karıştıracaktır. neden çift taraflı olmalı onun nedeni ise kullanıcılar primarye ulaşamayınca otomatik olarak secondary e ulaşacaklar ve ozaman da secondary e data girişi olacak. girilen dataların aynızamanda diğer server aktif hale gelince primaryE de aktarılması gerekiyor. ama ozaman da serverlar hem publication hemde subscription yapmalılar. ki bunu da 1. serverdan a db sini aldın 2. serverda a dbsine replice ettin diyelim.tekrar 2. serverdan a db sini 1. serverdaki a dbsine replica edersen bir kısır döngü oluşur ki bu da istenmeyen sonuçlar doğurabilir anlık replication da. zaten senin istediğini çözebilecek bir durum teşkil etmiyor replication.
herneyse senin için çözüm zaten failovar clustering ve mirroring dir arkadaşım:)
ama aklında olsun replication güzel bir olay ki en güzel örneği replication datalarını kullanan siteler ijection a pek fazla maruz kalmazlar. sadece replication servına webden gelen kullanıcılara read hakkı vererek gibi.
bu konularıda daha sonradan tekrar anlatıcam. Umarım zamanım olur.
Çok özür dilerim ama bu aralar işleri yoğun olan bi DBA im ve yazım/imla kurallarına pek dikkat edemiyorum bu yüzden. en yakın zamanda işlerimi toparlayıp SQL server ile ilgili makaleler yazmaya başlıycam. bunuda umarım hakan bey göz ardı etmez.
Kendinize İyi bakın....
Sizi Jedi SQL Master ilan ediyorum [H]
Dur bende bir ışın kılıcı ayarlıyorum [:D]
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Saolun ama şu sıralar gücün karanlık tarafına geçmeye başladım sanırım( bknz.gece mesaileri) :DD
Portal gecede açık bekleriz [:D]
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
euheuhe allah iyiliğinizi versin [:D]:))))
görüldüğü üzre cuma gecesi olmuş olmamış hiç farketmez yine burdayım 🙂 saat 3 e gelio ve beni bekleyen toplam 56 server ve ortalama 680 datbase var. Daha işi yarılıyamadım 🙂
gelelim mi yardıma 🙂
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
walla yardıma gelseniz acaip olurdu:)) ama artık bitti bende bittim [:S]
o zaman yat uyu biraz 🙂
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Naptın kardeş bitirdin mi [:D] Hakanla ışınlancaz yanına yoksa [:D]
Merhaba
2 Ad IBM Server bulunan bir şirkette Serverların 1 tanesi "Primary Domain Controller" diğeri ise "Additional Domain Controller" olarak yapılandırılmıştır.
Şimdi benim istediğim şudur ;
Bu 2 Domain controller uzerınde SQL Server 2008 kurulu olucak fakat birisi "Primary SQL Server" diğeri ise "Additional SQL Server" yani Domain yapısı gibi "Primary" uzerine yazılan veri aynı anda "Additional SQL Server" uzerinede yazılacak. Bu yapıda arastırmalarım sonunda "Transactional Replication" yöntemını kullanmam gerektiği kanısına vardım.
İşletim sistemi olarak "Server 2003 Enterprise Edition R2" kullanmaktayım elimdeki SQL Server 2008 sürümü yine "Enterprise Edition"
Su an için Domainlerim Replikasyon yapıyor her ikisinin uzerinde SQL Server 2008 standart hali ile kurulu. Replication için bildiğim kadarı ile illa ki Cluster kurmaya gerek yok ? Cluster dısında Advanced bır kuruluma installation ekranlarında rastlamadıgım ıcın standart kurulum yapmak durumunda kaldım.Bu konu hakkında ınternette yeterlı ıcerık bulamasamda kendı bıldıgım kadarı ıle mantık ve yorum kullanarak Replication sekmelerinden 2 SQL Server'ı Replice etmeye calıstıysamda su ana kadar muvaffak olamadım
Umarım ne istediğimi en acık hali ile izah edebilmişimdir? Bu konu hakkında forum'da baska sorularada rastladım umarım Hakan bey bızlerı kırmaz "SQL Server 2008 Replication" uzerine bir makale yayınlar...
Basarılarınızın devamını dilerim....