Farklı databaselerdeki tabloları eşzamanlı eşitlemek

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
mmnckr
Üye
Mesajlar: 83
Kayıt: 27 Nis 2005 08:04
Konum: izmir

Farklı databaselerdeki tabloları eşzamanlı eşitlemek

Mesaj gönderen mmnckr »

Arkadaşlar iyi çalışmalar;

2 adet database im var;
1. GOKHAN2006
2. GOK2006INS İSİMLERİ BUNLAR

Bunlar yapısal ve içerik bakımından ikiside aynı databaseler. Fakat ikisininde kayıtları farklı tutulacak. Yalnız 4 table ortak çalışması gerekiyor.Birisine yaptığım kayıt anında diğerine de yansıyacak. Sonuçta bu ortak tablolardan hangisine kayıt girersem gireyim iki taraftaki tabloların kayıtlarınında anında aynı olması gerekiyor.

GOKHAN2006
SARJNO
HAMMADDE
URUN
AMBALAJ

GOK2006INS
SARJNO
HAMMADDE
URUN
AMBALAJ

İşte yukarıda belirttiğim 2 ayrı database deki aynı olması gereken tablolar bunlar. Bunları sanırım Trigerle halledebilirim ama sizin yardımınızı almak istedim çünkü gerçekten önemli tablolar. Sileme,update,kayıt bütün uygulamaların karşılıklı birbirine yansıması lazım. Enazından birisi için örnek bir şeyler yazabilirseniz ben bunu diğerlerine de uygularım.
Veya Replikasyonla halledebilirmiyim,replikasyon ile olursa onunda nasıl yapabileceğim hakkımda bilgim yok.

NOT: Yazılıma müdehale etme şansın yok.Bunları SQL server üzerinde halletmem lazım.
mmnckr
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Öncelikle hangi RDBMS bu? Oracle, M$ -SQL Server, Firebird? Hangisi?

Ayrıca bu başlığı, Programlama forumundan, Firebird Forumuna taşıyacağım.

Bunları bir yanıtlayın, sorunuza bir çözüm buluruz.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
mmnckr
Üye
Mesajlar: 83
Kayıt: 27 Nis 2005 08:04
Konum: izmir

Mesaj gönderen mmnckr »

Sevgili Kuri_YJ;
Kullandığım database MS SQL server. İnşallah çözüm buluruz. İlgine çok saol.
mmnckr
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Replication ile yapabilirsin istediğini ama ben nasıl yapıldığını tam bilmiyorum. Bir araştır derim, verivizyon.com da anlatmış olabilirler.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Kolay değil.

Replikasyon bu iş için çözüm olabilir. Online replikasyon yapılmalı. Ancak ben de Naile gibi hiç kullanmadım. Kullananlardan duyduğum kadarı ile çok sıkıntı çıkardığı ve problem oluşturduğu şeklinde oldu.

Trigger'lara gelince. M$-SQL Server'da triggerların tetiklenme mantığını iyi bilmeniz gerekiyor. Örneğin tek satıtr updatei de olsa, aynı anda birden fazla satır da update etseniz Trigger'lar sadece 1 defa tetiklenir.

Bunu göz ardı etmeden yapmanız lazım. Anladığım kadarı ile siz, DB'yi kilitlemeden veya Server'ı yormadan yaşayan data'nın bir kopyasını oluşturup ordan raporlama yapmak istiyorsunuz. Veya bir backup copy'sini elde etmek istiyorsunuz.

Şimdi trigger'larda i,se şöyle bir sorunla karşılaşabilirsiniz, eğer Trigger tetiklendiğinde işi tam bitiremez ise, çalışan program bu konuda nasıl bir tepki verir bilinmez. Yani programı yazan adam bunu düşünerek gerekli kontrolleri yapmış mı?

Bu da size bir sorun olarak döner, yani fişin yarısını kaydettiniz diğer yarısı kaydolunurken bir şekilde 2. DB kilitlendi ve işiniz yarım kaldı. Geri sarabilecek yapıda hazırlanmış mı program?

Programa müdahale şansı yoksa, burada da takılırsınız. Sizin içinm en uygun çözüm replikasyon gibi görülüyor.

Onun detayı hakkında bilgi edinirsem size haber veririm, ancak bildiğim kadarı ile Replikasyonu Enterprise Manager'dan set edebiliyorsunuz. DTS'le de yapılabilir (sanırım).

Oralara bir göz atın. Çünkü replikasyonun 1'den çok çeşidi var, online, saatte bir veya belirli tarihte gibi.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla