Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Birleştirme replikasyonu, verilerin aralarında akabilmesi için hem Yayımcıyı hem de Aboneyi önce başlatmalıdır. Bu makalede, başlatma sırasında gerçekleşen adımlar hakkında bilgi sağlanır.
Yayını başlatma
Aşağıdaki listede, listelenen her saklı yordamı yürütürken veya Yeni Yayın Sihirbazı'nı tamamladıktan sonra gerçekleşen yayın başlatma adımları ayrıntılı olarak verilmiştir. Snapshot Agent bir yayın için ilk kez çalıştırıldıktan sonra ek başlatma adımları gerçekleşir.
sp_replicationdboptionYayın veritabanı çoğaltma için işaretlenir. Çoğaltma kaldırılmadığı sürece veritabanı silinemez.
Sistem tabloları yayın veritabanına eklenir (veritabanında bir birleştirme yayını yoksa). Sistem tablolarının tam listesi için bu makaledeki "Yayın ve Abonelik Veritabanlarında Oluşturulan Sistem Tabloları" bölümüne bakın.
sp_addmergepublication- Yayının girdileri sistem tablolarına eklenir.
sp_addpublication_snapshot- SQL Server Agent sistemine bir Snapshot Agent işi eklenir. İş adı biçimindedir
<Publisher>-<PublicationDatabase>-<Publication>-<Integer>.
- SQL Server Agent sistemine bir Snapshot Agent işi eklenir. İş adı biçimindedir
sp_addmergearticleÇoğaltılan her nesne çoğaltma için işaretlenir. İlgili makale tüm yayınlardan bırakılmadığı sürece nesne silinemez.
Her makalenin girdileri sistem tablolarına eklenir.
Yayın veritabanı için başlatma işleminin geri kalanı, bir yayın için Snapshot Agent'ın ilk çalıştırması sırasında gerçekleşir. Yayın veritabanı, Snapshot Agent'ın sonraki çalıştırmaları sırasında yeniden başlatılmaz. Yeni Yayın Sihirbazı'nı kullanırsanız, sihirbazı tamamladıktan sonra varsayılan olarak ilk anlık görüntü oluşturulur. Saklı yordamlar kullanıyorsanız aracı görevi çalıştırmanız veya aracıyı doğrudan çalıştırmanız gerekir. Aracıları çalıştırma hakkında daha fazla bilgi için bkz . Çoğaltma Aracısını Başlatma ve Durdurma (SQL Server Management Studio) ve Çoğaltma Aracısı Yürütülebilir Dosyaları Kavramları.
Bir yayın için Anlık Görüntü Aracısı ilk kez çalıştırıldığında:
Yayımlanan her tabloya, tabloda zaten
rowguidözelliği ayarlanmış bir benzersizleştirici veri türü sütunu yoksa (bu durumda bu sütun kullanılır)ROWGUIDCOLadlı bir sütun eklenir. Sütunrowguid, yayımlanan her tablodaki her satırı benzersiz olarak tanımlamak için kullanılır. Tablo yayından bırakılırsa,rowguidsütun kaldırılır; izleme için mevcut bir sütun kullanıldıysa, sütun kaldırılmaz.Yayımlanan her tablo için yayın veritabanında aşağıdaki nesneler oluşturulur (tüm nesneler şemada
dbooluşturulur):Değişiklikleri izlemek için yayımlanan tablolara tetikleyici ekleme, güncelleştirme tetikleyicileri ve silme tetikleyicileri eklenir. Tetikleyiciler
MSmerge_ins_<GUID>,MSmerge_upd_<GUID>veMSmerge_del_<GUID>biçiminde adlandırılır. GUID değeri, sistem tablosundakisysmergearticlesmakalenin girdisinden türetilir.Saklı yordamlar, yayımlanan tablolardaki eklemeleri, güncelleştirmeleri ve silmeleri işlemek ve çoğaltmayla ilgili diğer birkaç işlemi gerçekleştirmek için oluşturulur.
Görünümler eklemeleri, güncelleştirmeleri, silmeleri ve filtrelemeyi yönetmek için oluşturulur.
Çakışma tabloları, çakışma bilgilerini depolamak için oluşturulur. Çakışma tabloları, yayımlanan tabloların şemasıyla eşleşir: Her yayımlanan tablo için bir betik oluşturulur ve ardından bu betik, yayın veritabanında çakışma tablosunu oluşturmak için kullanılır. Çakışma tabloları, biçiminde
dbo.MSmerge_conflict_<Publication>_<Article>adlandırılır.
Snapshot Agent her çalıştığında, yayın veritabanındaki her makale için aşağıdaki dosya türleri (karşılık gelen dosya uzantılarıyla) oluşturulur:
Şema (
.sch)Kısıtlamalar ve dizinler (
.dri)Tetikleyiciler (
.trg)Sistem tablosu verileri (
.sys)Çakışma tabloları (
.cft)Veriler (
.bcp): parametreli filtreler içeren yayınlar için oluşturulmaz.Yayında parametreli filtre kullanılmıyorsa, anlık görüntü bir dosya kümesindeki yayımlanan tabloların
.bcpverilerini içerir. Yayın parametreli filtreler kullanıyorsa (birleştirme yayınları için tipiktir), ilk anlık görüntü veri içermez. Veriler, abonenin bölümü için bir anlık görüntü kullanılarak sağlanır ve bu, sonraki bölümde açıklanmıştır.
Aboneliği başlatma
Abonelik için Birleştirme Aracısı çalıştırıldığında ve ilk anlık görüntüyü abonelik veritabanına kopyaladığında her abonelik başlatılır. Çoğaltılan nesnelerdeki şemaya ve verilere ek olarak, anlık görüntü yayın veritabanında bulunan sistem tablolarını, görünümleri, tetikleyicileri ve saklı yordamları içerir. Bir veya iki ek sistem tablosu da abonelik veritabanına kopyalanır. Sistem tablolarının tam listesi için bu makaledeki Yayın ve abonelik veritabanlarında oluşturulan Sistem tabloları bölümüne bakın. Bir abonelik yeniden başlatıldıysa, çoğaltılan tüm nesneler ve çoğaltma sistemi nesneleri üzerine yazılır.
Yayın veritabanındaki tablolardan hiçbiri parametreli filtreler kullanmıyorsa, her aboneye aynı yayın anlık görüntüsü kopyalanır. Bir veya daha fazla parametreli filtre kullanılırsa, her aboneliğin başlatılma şekli aşağıdaki mantık tarafından yönetilir:
Anlık görüntü konumu komut satırındaki Birleştirme Aracısı'na sağlanmışsa:
- Bu konumdan anlık görüntüyü uygulayın.
Eğer anlık görüntü önceden oluşturulmuşsa:
- Yayın veritabanından anlık görüntünün konumunu
MSmerge_dynamic_snapshotsalın ve anlık görüntüyü bu konumdan uygulayın.
- Yayın veritabanından anlık görüntünün konumunu
Yayın abonelerin anlık görüntüleri başlatmasına izin veriyorsa, aksi takdirde:
Aynı bölüme sahip başka bir Abone için zaten bir anlık görüntü oluşturulduysa, bu anlık görüntüyü Aboneye uygulayın.
Aksi halde aboneye bir anlık görüntü oluşturun ve uygulayın.
Aksi takdirde, yayındaki tablolara karşı
SELECTifadelerini kullanarak Abone'yi başlatın. Bu yaklaşım Abonenin bölümü için anlık görüntü kullanmaktan daha yavaştır.
Anlık görüntü aktarımı herhangi bir noktada kesilirse otomatik olarak devam eder ve zaten tamamen aktarılmış olan dosyaları yeniden göndermez. Snapshot Agent'ın teslim birimi, her yayın makalesinin bcp dosyasıdır, bu nedenle kısmen teslim edilen dosyaların tamamen yeniden teslim edilmesi gerekir. Ancak anlık görüntünün devam ettirilmesi, iletilen veri miktarını önemli ölçüde azaltabilir ve bağlantı güvenilir olmasa bile anlık görüntü tesliminin zamanında teslim edilmesini sağlayabilir. Anlık görüntüler oluşturma hakkında daha fazla bilgi için bkz. Parametreli Filtreler - Parametreli Satır Filtreleri.
Anlık görüntü konumu
Anlık görüntü konumu şunlara bağlıdır: varsayılan veya alternatif anlık görüntü konumu için belirtilen yol; yayında anlık görüntü klasörü için UNC yolu veya FTP paylaşımı kullanılıp kullanılmadığı; ve yayının parametreli filtreler kullanıp kullanmadığı. Bu örneklerde, anlık görüntü klasörünün konumunun: olduğunu varsayalım: \\<MyComputer>\<MyFolder>
Yayın UNC kullanıyorsa, yolun ilk bölümü şudur:
\\<MyComputer>\<MyFolder>\unc\. FTP kullanıyorsa, bu\\<MyComputer>\<MyFolder>\ftp\’dir.Yayın UNC kullanıyorsa ve parametreli filtreler kullanmıyorsa, yol şudur:
\\<MyComputer>\<MyFolder>\unc\<Publisher><Publicationdb><publication>Yayın UNC kullanıyorsa ve parametreli filtreler kullanıyorsa, konum anlık görüntü klasörü yolunu ve yayının parametreli satır filtreleme ölçütlerini temel alır. Örneğin, makale
HOST_NAME()işlevi kullanılarak filtrelenmişse ve bölümünHOST_NAME()değeriSalesLaptopise, o bölümün anlık görüntüsü için yol\\<MyComputer>\<MyFolder>\unc\<Publisher><Publicationdb><publication>\SalesLaptop_12olur; burada12, bölüm için dahili olarak kullanılan kimliktir.
Yayın ve abonelik veritabanlarında oluşturulan sistem tabloları
Yayın veritabanında ve her abonelik veritabanında aşağıdaki tablolar oluşturulur.
| Tablo | Açıklama |
|---|---|
| MSdynamicsnapshotjobs | Parametreli filtrelere sahip yayınlar için snapshot görevleri hakkında bilgi içerir. |
| MSdynamicsnapshotviews | Anlık Görüntü Aracısı tarafından oluşturulan tüm geçici anlık görüntü görünümlerini izler. SQL Server Aracısı'nın veya Anlık Görüntü Aracısı'nın anormal bir şekilde kapatılması durumunda görünümleri temizlemek için sistem tarafından kullanılır. |
| MSmerge_altsyncpartners | Yayımcı için geçerli eşitleme ortaklarının kim olduğu ilişkisini izler. |
| MSmerge_articlehistory | Birleştirme Aracısı eşitleme oturumu sırasında makalelerde yapılan değişiklikleri, değişikliklerin yapıldığı her makale için bir satırla izler. |
| MSmerge_conflicts_info | Aboneliği birleştirme yayını (merge publication) ile senkronize ederken oluşan çakışmaları izler. |
| MSmerge_contents | Yayımlandıktan sonra geçerli veritabanında değiştirilen her satır için bir satır içerir. Bu tablo, değiştirilen satırları belirlemek için birleştirme işlemi tarafından kullanılır. |
| MSmerge_current_partition_mappings | Belirli bir değiştirilen satırın ait olduğu her bölüm için bir satır içerir. |
| MSmerge_dynamic_snapshots | Birleştirme yayını için tanımlanan her bölüm için anlık görüntünün konumunu izler. |
| MSmerge_errorlineage | Abonede silinmiş, ancak silme işlemi Publisher'a aktarılmamış olan satırları içerir. |
| MSmerge_generation_partition_mappings | Belirli bir neslin belirli bir bölümle ilgili değişiklikler içerip içermediğini izler. |
| MSmerge_genhistory | Her nesil için bir satır içerir. Nesil, yayımcıya veya aboneye teslim edilen bir değişiklik koleksiyonudur. Birleştirme Aracısı her çalıştığında nesiller kapatılır ; bir veritabanındaki sonraki değişiklikler bir veya daha fazla açık nesile eklenir. |
| MSmerge_history | Önceki Birleştirme Aracı iş oturumlarının sonuçlarının ayrıntılı açıklamalarını içeren geçmiş satırları bulunur. |
| MSmerge_identity_range | Çoğaltmanın aralık atamalarını otomatik olarak yönettiği yayınlara abonelikler için kimlik sütunlarına atanan sayısal aralıkları izler. |
| MSmerge_metadataaction_request | Gerekli olan her telafi eylemi için bir satır içerir. Değişiklik başka bir düğümde başarısız olduysa, bir düğümdeki değişikliği geri almak için telafi eylemi kullanılır. |
| MSmerge_partition_groups | Belirli bir veritabanındaki her önceden derlenmiş bölüm için bir satır içerir. |
| MSmerge_past_partition_mappings | Belirli bir değiştirilen satırın ait olduğu ancak artık ait olmadığı her bölüm için bir satır içerir. |
| MSmerge_replinfo | Her abonelik için bir satır içerir. Bu tablo, gönderilen ve alınan nesiller hakkındaki iç bilgileri izler. |
| MSmerge_sessions | Önceki Birleştirme Aracısı iş oturumlarının sonuçlarını içeren geçmiş satırlarını içerir. |
| MSmerge_settingshistory | Makale ve yayın özelliklerinde yapılan değişikliklerin geçmişini ve yapılan her değişiklik için bir satır içerir. |
| MSmerge_tombstone | Silinen satırlar hakkında bilgi içerir ve silmelerin diğer Abonelere yayılmasına izin verir. |
| MSrepl_errors | Aracı hataları hakkında ayrıntılı bilgi içerir. |
| sysmergearticles | Her birleştirme makalesi için bir satır içerir. |
| sysmergepartitioninfo | Her makale için bir satır içeren her makalenin bölümleri hakkında bilgi içerir. |
| sysmergepartitioninfoview | Tablo makaleleri için bölümleme bilgilerini içerir. |
| sysmergepublications | Her birleştirme yayını için bir satır içerir. |
| sysmergeschemaarticles | Saklı yordamlar gibi yalnızca şema makalelerini izler. |
| sysmergeschemachange | Snapshot Agent tarafından oluşturulan yayımlanan makaleler hakkında bilgi içerir. |
| sysmergesubscriptions | Her Abone için bir satır içerir. |
| sysmergealtkümefiltreleri | Bölümlenmiş makaleler için birleştirme filtresi bilgilerini içerir. |
Buna ek olarak, MSsnapshotdeliveryprogress tablo her abonelik veritabanında oluşturulur ve MSsubscription_properties tablo çekme aboneliği kullanan her abonelik veritabanında oluşturulur:
| Tablo | Açıklama |
|---|---|
| MSanlıkgörüntüteslimatilerlemesi | Anlık görüntü uygulanırken Aboneye başarıyla teslim edilen dosyaları izler. Bu veriler, Birleştirme Aracısı'nın oturum sırasında tüm dosyaları teslim etmede başarısız olması durumunda dosyaların teslimini sürdürmek için kullanılır. |
| MSsubscription_properties | Abonede çoğaltma aracılarını çalıştırmak için gereken parametre bilgilerini içerir |