27 Aralık 2009 Pazar

SQL Server ve Oracle Golden Gate hakkında yazılar...

Merhaba Arkadaşlar!


Şu anda çalışıyor olduğum banka, Online Reporting (Gerçek zamanlı) projeleri için "Oracle Golden Gate" ürününü kullanmaya karar verdi ve bu yönde yatırımlar yaptı. Bu ürünün yönetimi, bakımı, kurulumu vb. sorumlulukları bana ait. Bu nedenle bu ürünü önceden hiç bilmiyor olmama rağmen (hâlâ da iyi biliyorum gibi bir iddiam yok), geçen 3-4 aylık kullanım sürecinde birçok şey öğrendim. Bu konuda ITD isimli, Golden Gate' in distribütörlüğünü yapan firma ile de çalışıyoruz.

Zaman zaman bu ürünle ilgili sorunlar yaşadık ve hâlâ da yaşıyoruz. Sorun yaşadığımızda, ulu Google' ın bu sorunlar hakkında hiçbir şey bilmediğini gördüm. Ne yerli ne de yabancı herhangi bir kayıt, yazı vs. yok. Bunun nedenini, bu ürünü daha ziyade büyük şirketlerin kullanmasına (çünkü gerçekten maliyeti yüksek bir ürün) ve bu şirketlerin de bu ürünün distribütörleri ile bakım anlaşmaları olmasına bağlıyorum. Bu nedenle sorun çıktığında, doğrudan bakım anlaşması yapılan şirket aranıyor ve böylece Google vb. aradan çıkarılmış oluyor... Çalışıyor olduğum şirket de bir istisna değil.

Oracle Golden Gate' in Oracle Database gibi "platform free" olması ve birçok (10~) DBMS ürününü desteklemesi, bu ürünün SQL Server ile olan iş birliği hakkındaki olası bilgi paylaşımını daha da azaltıyor. Biz bu ürünü şirketimizde SQL Server ile birlikte kullanıyoruz ve bu konuda şirket içindeki Proses Talimatlarını da ben hazırlıyorum. Bu yazılarımı ve tecrübelerimi -her ne kadar küçük ve orta ölçekli şirketlerin bu yazılarımdan çok faydalanamayacağını biliyor olsam da- sizlerle de paylaşmak istedim.

Peki Golden Gate nedir? Golden Gate, aynen SQL Server Replication' ı gibidir ve TDM (Transactional Data Management) ürünüdür. Hatta SQL Server 2005 SP2, CU6 öncesi versiyonlar için birebir SQL Server Replication bileşenlerini kullanır. Yine aynen SQL Server Replication topolojileri gibi çeşitli topolojileri vardır. Tek yönlü veya çift yönlü veri aktarımı (replikasyon) yapabilir. Tabii bu noktada akla gelen soru "peki farkı nedir? neden SQL Server Replication değil de Oracle Golden Gate?". Bu sorunun özet yanıtı şu: Oracle Golden Gate ürününün topolojileri çok daha esnek, bu nedenle veri aktarımı çok daha hızlı oluyor. Bununla birlikte, kritik veritabanınızın Transaction Log dosyasının dolmasına neden olmayacak şekilde ayarlanabiliyor (bunun bazı durumlarda doğrulup kayı yok, bu konuya ileride, başka yazılarımda ayrıca değineceğim çünkü çok önemli). LSN' i kaçırdığı zaman ise, ilgili kayıtları Transaction Log yedek dosyalarından okuyabiliyor... Bunların hiçbirisini SQL Server Replication yapamıyor maalesef. Ayrıca (adı bende kalsın) bu konuda Türkiye' de uzman olan ve Microsoft için çalışıyor olan bir arkadaşım, bir MVP toplantısında yaptığımız muhabbette Golden Gate ürününün SQL Server Replication' dan çok daha hızlı olduğunu ve bu ürünü Oracle satın almadan önce (ki bu satın alma olayı bildiğim kadarıyla 2-3 ay önce oldu) Online Reporting ihtiyacı olan şirketlere kendilerinin önerdiğini iletmişti bana.

Bu kapsamda, Golden Gate' in Windows Server' da kurulumu, SQL Server 2005 ve Golden Gate ile Partition Switch işleminin nasıl yapılabileceği, kopan bir Golden Gate senkronizasyonunun nasıl tekrar sağlanabileceği, yeni tabloların replikasyona nasıl dahil edilebileceği, Golden Gate Best Practices gibi çeşitli konularda yazılar yazıyor olacağım. Umarım bir gün birilerinin işine yarar.

Ekrem Önsoy

8 yorum:

Anonim dedi ki...

Golden gate oracle ile basariyi yakalamis bir urun.ancak sql ile ozellikle banka ortaminda cok basarili oldugunu soyluyemicem.nitekim kullanan bir banka projeyi tamamen iptal etti.Ancak yine de cogu kurum icin ciddi bir cozum.Golden gate ile ilgili yazılarını en azından ben takip ediyor olucam.
Tesekkuler,

Ekrem Önsoy dedi ki...

Ben de ürünü çok başarılı bulmuyorum doğrusu. Birçok sorunla karşılaşıyoruz ve bu sorunlar sanki Golden Gate hatası (Bug) gibi görünüyorlar.

Sorunları çözmek ise ayrı dert, çünkü yurtdışına bu konuda Case açtığımızda Trail dosyalarını veya Transaction Log dosyalarını istiyorlar ki, bir banka için kritik bilgiler içeren bu dosyaların bir başka firmaya verilmesi genelde söz konusu olamıyor. Bu noktada da sorun çözümlenemez duruma geliyor.

Bu gibi sorunlu konularda da tecrübelerimi paylaşıyor olacağım.

strongenough dedi ki...

merhaba,
özel bir kuruluşta DBA olarak çalışmaktayım. anladığım kadarıyla data replication modeli, 2 db arasında log işliyor. yeni bir ürün olduğundan pek dökümantasyon yok gibi. sorum şu : kurulumu ve konfigürasyonu nasıl bu sistemin? en az 2 db olması gerekiyor bildiğim kadarıyla. oracle dataguard tan farkı ne?

teşekkür ederim

Ekrem Önsoy dedi ki...

Merhaba,

Öncelikle şunu söylemeliyim ki Oracle' dan pek anlamam; ama Data Guard derken ne kastettiğini anlıyorum =)

SQL Server Replication illa iki veritabanı arasında çalışmak zorunda değil. Birçok veritabanı arasında da çalışabilir. Ayrıca Replication yeni bir teknoloji değil, yıllardır SQL Server ile birlikte geliyor... Dokümantasyon ise gani gani. Books Online' ı iyi kurcalaman gerekiyor.

Data Guard ise bildiğim kadarıyla SQL Server' ın Log Shipping teknolojisine daha yakın. Transaction Log' lar (Oracle' da Archive Log' lar) diğer sunucuya kopyalanır ve oradaki veritabanına sırasıyla Restore edilir. Bu sayede uzaktaki veritabanı da güncel tutulmuş olur.

Replication, ın Log Shipping ve Database Mirroring' e olan en öne çıkan üstünlüğü, hedefteki veritabanının Online olabiliyor olmasıdır. Yani hedefteki veritabanı doğrudan okunabilirdir, hatta yapılacak kuruluma göre Replication topolojisindeki tüm veritabanları aynı anda güncellenebilir de olabilir. Peer to Peer Replication modelinde olduğu gibi...

Uzun bir konu, daha iyi kavramak ve ihtiyacını hangi teknolojinin karşılayacağını anlamak için gerçekten sıkı bir çalışma yapman gerekir.

impossible is nothing dedi ki...

Selam Ekrem Hocam,

Bende bir bankada Ms SQL DBA olarak göre yapmakteyım bizdede golden gate kullanılacak dendi tecrübe ve bilgilerinizden faydalanmak isteiriz
Yeni makelelerinizi bekliyoruz

Ekrem Önsoy dedi ki...

Selam arkadaşım,

2012'nin sonlarında o kurumdan ayrıldım ve artık Golden Gate'i kullanmıyorum. Bu nedenle artık bu konuda makale yazmak pek mümkün olmayacak gibi, en azından Golden Gate ile tekrar karşılaşıncaya kadar.

Bununla birlikte, aldığım haberlere göre çalışıyor olduğum o banka da benden sonra Golden Gate'i devreden çıkarmış ve o projeyi sonlandırmış. 2 senelik yoğun tecrübeme dayanarak söyleyebilirim ki Golden Gate - en azından SQL Server ile - maalesef pek sağlıklı çalışan bir replikasyon yöntemi değil. Oracle Support'a Golden Gate için açtığım Case sayısının haddi hesabı yok. Bazı Case'ler çözülemeden aylarca bekledi. Birçoğu BUG idi. Çalışıyor olduğum kurum için Oracle tarafından özel Patch'ler bile üretilmişti. Haftasonu, haftaiçi geceleri nöbetçilerin korkulu rüyasıydı Golden Gate; özellikle de ilk devreye girdiği süreçte. Çok canımızı yaktı çok...

Anonim dedi ki...

Ekrem bey veri yedekliliği için kurum olarak goldengate ve dataguart arasında kalmış durumdayız siz tecrücelerinize istinaden hanğgisini tavsiye edersiniz yıl 2015 goldengate sorunlarını çözmüş olabilir mi? Yazınız çok güzel. şimdiden teşekkürler.

Ekrem Önsoy dedi ki...

Merhaba,

Data Guard dediğine göre ortamında Oracle Database kullanılıyor demektir, Golden Gate de DataGuard da Oracle'ın ürünleri/teknolojileri. Oracle firması GoldenGate'in Oracle ürünü için daha fazla zaman ve yazılımcı kaynağı ayırıyor. Bunu hem Golden Gate ürününü Oracle'a satan kişiden kendisinin yaptığı bir konuşmada duymuştum, hem de Golden Gate'e distribütörlük yapan ve doğrudan bu ürünün desteğini veren ve geçenlerde görüştüğüm bir arkadaşım söylemişti.

Oracle Golden Gate, Microsoft SQL Server ile çok sıkıntılı çalışıyor, güncellemeler çok geç geliyor, birçok Bug var, Oracle'a açtığım Case'lerin haddi hesabı yoktu. Zamanla belki iyileşmiştir. Bunun yanında Golden Gate'in Oracle Database ile çok daha entegre ve sorunsuz çalıştığını tahmin ediyorum. Bir Oracle DBA olmadığım için bu iki ürünle birlikte çalışmadım hiç, o yüzden kendi tecrübem ile bir şey diyemem; fakat yine bahsini ettiğim arkadaşım da bana Golden Gate'in Oracle Database ile çalıştığı ortamlarda çok daha sorunsuz çalıştığını söylemişti.

Eğer almayı düşünüyorsanız da çok iyi POC çalışması yapın derin. Çünkü çok pahalı bir ürün, bunun yanında know-how da gerektiriyor, hem kurulum, hem yapılandırma, hem performans iyileştirme, hem de bakım için. Ayrıca bu ürünün arayüzünü ayrıca satıyorlar, varsayılan arayüz bir Command Line Tool'u.

Benim verdiğim bazı bilgiler eski kalmış olabilir, bunu da dikkate almalısın. Çünkü bu ürün ile ilgilenmeyeli temiz 2,5 sene oldu.

Kolay gelsin!