Aracılığıyla paylaş


Nasıl yapılır: Eşler arası işlem çoğaltma (çoğaltma Transact-SQL programlama) yapılandırma

Bu konuda nasıl yapılandırılacağı ve saklı yordamları kullanarak bir eşler arası çoğaltma topolojisi bakımını açıklar.Konu ilk üç düğüm topoloji oluşturmak nasıl gösterir ve sonra ekleme ve yeni bir düğüme bağlanmak nasıl açıklar.Ayrı yordamlar gösterilen çalışan bir düğüm eklemek için SQL Server 2005 ve çalışan bir düğüm ekleme SQL Server 2008 veya sonraki bir sürüm SQL Server. Bu konuda çakışmaları eşler arası çoğaltma. algılamak için kullanılan parametreler hakkında bilgi içermeyenÇakışma algılama hakkında daha fazla bilgi için bkz: Nasıl yapılır: Eşler arası işlem çoğaltma (çoğaltma Transact-SQL programlama) için çakışma algılamasını Yapılandır.

Topolojisini yapılandırma, yapılandırma, bir dizi standart işlem yayınlar ve abonelikleri için çok benzer.Unutmayın ana düğüm nasıl başlatıldığı ve için belirtilen değerler noktasıdır @ sync_type parametresi sp_addsubscription:

  • İlk düğüm topoloji özgün yayın veritabanı içerir; Bu nedenle, şema ve veri ile başlatılan gerekmez.Bu nedenle, bir değer belirtmeniz yalnızca çoğaltma desteği ilk düğümün diğer düğümlerden veri çoğaltmak abonelikler.İlk düğümü için çoğaltma tarafından gereken nesneleri kopyalanır bu seçeneği sağlar.

  • İlk düğümü yapılandırdıktan sonra düğümleri genellikle dan başlatılmış bir yedek ilk düğümün.Bu nedenle değeri belirttiğiniz yedek ile başlatılamıyor veya yalnızca çoğaltma desteği veri ilk düğümden diğer düğümlere çoğaltmak abonelikleri için.Değeri, yalnızca çoğaltma desteği hiç bir etkinlik sistem ancak değeri ortaya çıktığını kullanılan yedek ile başlatılamıyor sistemi etkin değilse gereklidir.Belirtme yedek ile başlatılamıyor yeni bir düğüm için tüm ilgili hareketler çoğaltılır sağlar.

  • Bir düğüm yeniden başlatıldıktan sonra diğer düğümlerden veri çoğaltma abonelikleri düğümün yeniden başlatılması gerekmez.Bu nedenle, bir değer belirtmeniz yalnızca çoğaltma desteği veya başlatma lsn dan.Değeri, yalnızca çoğaltma desteği hiç bir etkinlik sistem ancak değeri ortaya çıktığını kullanılan başlatma lsn dan sistemi etkin değilse gereklidir.Belirtme başlatma lsn dan yeni bir düğüm için tüm ilgili hareketler çoğaltılır sağlar.

    SQL Server 2005Destek başlatma lsn dan.Bir topoloji içeriyorsa, SQL Server 2005 , düğüm yeni bir düğüm için bir düğüm varolan, ancak gerekir bağlanmak için sistem quiesce bağlanabilirbirden fazla düğüm. Tüm düğümler adresindeki yayımlanmış tabloları üzerinde faaliyet durdurma ve her düğümün tüm değişiklikleri diğer tüm düğümlerden aldı emin Quiescing bir sistem içerir.Bu işlem, bu konunun son bölümünde ayrıntılı olarak açıklanmıştır.

Yordam

Bir topoloji etkin veritabanları için yapılandırıyorsanız, birinci ve ikinci düğüm (Node a ve b düğümü) eklemek için aşağıdaki yordamı kullanın.Daha sonra düğüm c ve herhangi bir ek düğümler için izleyen yordamı kullanın.Sonraki yordamı kullanan bir @ sync_type değeri başlatma lsn dan.Bu seçenek sistem tüm işlemleri eksik olmadan etkin durumdayken bir topoloji yapılandırmanıza olanak sağlar.

İçin küme kadar üç düğüm arasında eşler arası çoğaltma

  1. Her düğüm olarak yapılandırmak bir Yayımcıve bir yerel veya uzak Dağıtımcı ile ilişkilendirin.Bu büyük olasılıkla tek bir hata noktası olduğu için uzak bir dağıtımcı kullanmak, tüm düğümlerin aynı uzak Dağıtımcı kullanmayın öneririz.Daha fazla bilgi için bkz: Nasıl yapılır: Yayımlama ve dağıtma (çoğaltma Transact-SQL programlama) yapılandırma.

  2. Düğüm bir yürütmek sp_addpublication.Değerini belirtin true için @ enabled_for_p2p, değeri active için Durum @ değeri true için @ allow_initialize_from_backup.Makale eklemek için yayın, yürütme sp_addarticle.

  3. Topoloji yapılandırılmadan önce her bir düğümde ilk veri bulunmalıdır.Kullanım SQL Server yedek ve geri yükleme işlevselliği için veriyi baþlatmak için yayın adresindeki her düğüm topoloji.yedek yapılandırılmış ilk düğümü gelmeli; Bu durum, diğer bir deyişle düğüm a.Düğümdeki bir yayın oluşturduktan ve eşler arası çoğaltma için etkinleştirilmiş sonra yedek alınması gerekir.Bu konuda tüm düğümler eklenmeden önce hiçbir etkinlik herhangi yeni düğümler oluştuğunu varsayar; Bu nedenle, her düğümde başlatmak için aynı yedek kullanabilirsiniz.

    Tüm düğümler eklenmeden önce faaliyet herhangi yeni düğümler üzerinde gerçekleşmesi durumunda her düğüm eklendi ve a. düğüm ile en az bir kez eşitlediğini sonra yeni bir yedek gerçekleştirmeniz gerekirBu sayede yedek düğümü A'dan tüm diğer düğümler hakkında meta veriler içerir.Örneğin, bu düğüm üzerindeki etkinliği ile düğüm b ve c düğüm eklerseniz: Düğüm b düğümünden a yedek ile başlatılamıyor; yapılandırmak ve düğüm b eşitleme; Bir düğümden yeni bir yedek almak; Düğüm c yeni yedek ile başlatılamıyor; yapılandırmak ve düğüm c. Eşitle

    yedeklemek ve geri yükleme veritabanları hakkında daha fazla bilgi için bkz: Yedekleme ve geri SQL Server'da Veritabanları.

    Önemli notÖnemli

    Veritabanı geri yükleme işleminde KEEP_REPLICATION seçeneği belirtin (için Transact-SQL) veya çoğaltma ayarlarını koru seçeneği (için SQL Server Management Studio).Yapılandır eşler arası topoloji Sihirbazı'nı çalıştırdığınızda, çoğaltma veritabanı uygun şekilde yapılandırın.

    Tüm veritabanını yedek içerir; Bu nedenle, her eş veritabanının tam bir kopyasını içeren yayın veritabanı zaman başlatıldı.yedek için makaleleri olarak belirtilmemiş tablolar içerebilir yayın.Yönetici veya herhangi bir istenmeyen nesne veya sonra verileri kaldırmak için uygulama sorumluluğu olan yedek geri yüklendi.Makaleler olarak belirlenen tablolara uygularsanız sonraki eşitlemeler, yalnızca veri değişiklikler çoğaltılır.

  4. Düğüm bir yürütmek sp_addsubscription.A düğümü oluşturulma tarihi yayının adı belirtmeniz @ yayın, düğüm b adını @ abone, düğüm b hedef veritabanının adı @ destination_db, değeri yedek ile başlatılamıyor için @ sync_typeve uygun değerleri için @ backupdevicetype ve @ backupdevicename parametreleri.

  5. Bir düğümde yeniden yürütmek sp_addsubscription.Bu saat, yayını olarak adını belirtmek @ yayın, düğüm c adını @ abone, düğüm c hedef veritabanı adı @ destination_db, değeri yedek ile başlatılamıyor için @ sync_typeve uygun değerleri için @ backupdevicetype ve @ backupdevicename parametreleri.

  6. b düğümü, yürütmek sp_addpublication.Yayını adını belirtmek @ yayın, değeri true için @ enabled_for_p2p, değeri active için @ Durum değeri true için @ allow_initialize_from_backup.Makale eklemek için yayın, yürütme sp_addarticle.

  7. b düğümü, yürütmek sp_addsubscription.Yayını olarak adını belirtmek @ yayın, a düğümü adını @ abone, a düğümü hedef veritabanı adı @ destination_db, değeri yalnızca çoğaltma desteği için @ sync_type.

  8. b düğümü yeniden yürütmek sp_addsubscription.Bu saat, yayını olarak adını belirtmek @ yayın, düğüm c adını @ abone, düğüm c hedef veritabanı adı @ destination_dbve değeri yalnızca çoğaltma desteği için @ sync_type.

  9. yürütmek sırasında düğüm c, sp_addpublication.Yayını adını belirtmek @ yayın, değeri true için @ enabled_for_p2p, değeri active için @ Durum değeri true için @ allow_initialize_from_backup.Makale eklemek için yayın, yürütme sp_addarticle.

  10. yürütmek sırasında düğüm c, sp_addsubscription.Yayını olarak adını belirtmek @ yayın, a düğümü adını @ abone, a düğümü hedef veritabanı adı @ destination_db, değeri yalnızca çoğaltma desteği için @ sync_type.

  11. Düğüm c yeniden yürütmek sp_addsubscription.Bu saat, yayını olarak adını belirtin @ yayın, düğüm b adını @ abone, b düğümü hedef veritabanı adı @ destination_dbve değeri yalnızca çoğaltma desteği için @ sync_type.

  12. Varsa herhangi bir kimlik sütunları yayımlanan tablolarda, geri yükleme işleminden sonra tabloların bir düğümde atanan kimlik aralık da düğüm b ve c düğümü üzerinde tablo kullanılacaktır:Kullanmanız gereken dbcc checkident için Tablo düğümü b ve c düğüm farklı bir aralık her biri için kullanılmasını sağlamak üzere reseed.

    Kimlik aralıkları yönetme hakkında daha fazla bilgi için bkz: "atama için aralıkları el ile kimlik aralık Yönetimi" kısmında Kimlik sütunları çoğaltılıyor.

Çalıştırdığınız düğümlerden oluşan bir topoloji bir veya daha fazla düğüm eklemek için aşağıdaki yordamı kullanın. SQL Server 2008 veya daha yeni sürümlerini SQL Server.

Topoloji için sql Server 2008 veya sonraki bir sürüm çalıştıran bir düğüm eklemek için

  1. Düğüm d yayımcı olarak yapılandırmak ve bir yerel veya uzak Dağıtımcı ile ilişkilendirin.

  2. Geri bir yedek a düğümden düğüme d. için

  3. yürütmek sırasında düğüm d, sp_addpublication.Yayını adını belirtmek @ yayın, değeri true için @ enabled_for_p2p, değeri active için @ Durum değeri true için @ allow_initialize_from_backup.Makale eklemek için yayın, yürütme sp_addarticle.

  4. yürütmek sırasında düğüm d, sp_addsubscription.Yayını olarak adını belirtmek @ yayın, a düğümü adını @ abone, a düğümü hedef veritabanı adı @ destination_db, değeri yalnızca çoğaltma desteği için @ sync_type.

  5. Düğüm bir yürütmek sp_addsubscription.Yayını olarak adını belirtmek @ yayın, d olarak düğüm adını @ abone, düğüm d olarak hedef veritabanı adı @ destination_db, değeri yedek ile başlatılamıyor için @ sync_typeve uygun değerleri için @ backupdevicetype ve @ backupdevicename parametreleri.

    d düğüm düğüm b ve a düğümünden düğüm c potansiyel hareketlerini aldıBir sonraki adımda bu hareketler olarak kabul edilir.

  6. Sorgu düğümü d MSpeer_lsns tablo.Kullanım Düzenleyen ve originator_lsn belirlemek için sütun günlük sıra numarası (SSN) düğümü B'den düğüm d aldığı en son işlemin

  7. yürütmek sırasında düğüm d, sp_addsubscription.Yayını olarak adını belirtin @ yayın, düğüm b adını @ abone, b düğümü hedef veritabanı adı @ destination_dbve değeri yalnızca çoğaltma desteği için @ sync_type.

  8. b düğümü, yürütmek sp_addsubscription.Yayını olarak adını belirtin @ yayın, d olarak düğüm adını @ abone, düğüm d olarak hedef veritabanı adı @ destination_db, değeri başlatma SSN dan için @ sync_type, ve SSN için b düğümü için alınan @ subscriptionlsn.

  9. Sorgu düğümü d MSpeer_lsns tablo.Use Düzenleyen ve originator_lsn d düğüm düğüm c. ' aldığı en son hareket SSN belirlemek için sütun

  10. yürütmek sırasında düğüm d, sp_addsubscription.Yayını olarak adını belirtmek @ yayın, düğüm c adını @ abone, düğüm c hedef veritabanı adı @ destination_dbve değeri yalnızca çoğaltma desteği için @ sync_type.

  11. yürütmek sırasında düğüm c, sp_addsubscription.Yayını olarak adını belirtin @ yayın, d olarak düğüm adını @ abone, düğüm d olarak hedef veritabanı adı @ destination_db, değeri başlatma SSN dan için @ sync_type, ve SSN için c düğüm için alınan @ subscriptionlsn.

  12. Varsa herhangi bir kimlik sütunları yayımlanan tablolarda, geri yükleme işleminden sonra tabloların bir düğümde atanan kimlik aralık da d. düğümü üzerinde tablo kullanılacaktır:Kullanmanız gereken dbcc checkident reseed düğüm farklı bir aralık her biri için kullanılmasını sağlamak için d tablolar için.

    Kimlik aralıkları yönetme hakkında daha fazla bilgi için bkz: "atama için aralıkları el ile kimlik aralık Yönetimi" kısmında Kimlik sütunları çoğaltılıyor.

Giriş için bu konuda belirtildiği gibi ana fark ekleme arasında bir SQL Server 2005 düğüm ve daha sonraki bir sürüm çalıştıran bir düğüm ekleme SQL Server, SQL Server 2005 gerektirir, sizin için yeni düğüm tüm varolan düğümler. bağlanmak için sistem quiesceAşağıdaki yordamda nasıl ekleneceği gösterilmektedir bir SQL Server 2005 düğüm varolan topolojisinde aşamaları için:

  • Sahne Alanı'nın bir, 1 ile 5 arasındaki adımları ele alınmaktadır.Bu aşamada kısmen düğüm d a düğüm düğüm d. arasındaki abonelikleri oluşturarak topolojiye bağlanma ile ilgilidirBu değişikliklerin düğümü, düğüm b ve c düğüm üzerinde gerçekleşmesi devam etmek izin verirDeğişiklikleri sırasında düğüm d a düğüm düğüm d. arasında oluşturulmuş abonelikleri hemen başlayabilirsinizDüğüm d a düğümünden b düğümü ve düğüm c değişiklikler çoğaltılır

  • İkinci aşamasına, 6 ile 9 arasındaki adımları ele alınmaktadır.Bu aşamada tamamen düğüm d b düğümü ile düğüm d ve c düğüm düğüm d. arasındaki abonelikleri oluşturarak topolojiye bağlanma ile ilgilidirBu aşamada sistem quiesce gerekir.

    Sahne Alanı'nın iki gerekli değildir, ancak bir düğüm düğüm d. arasındaki tek bağlantı olması çok daha fazla hataya dayanıklılık sağlar

Topoloji için sql Server 2005 düğümü ekleme

  1. Düğüm d yayımcı olarak yapılandırmak ve bir yerel veya uzak Dağıtımcı ile ilişkilendirin.

  2. Geri bir yedek a düğümden düğüme d. için

  3. yürütmek sırasında düğüm d, sp_addpublication.Yayını adını belirtmek @ yayın, değeri true için @ enabled_for_p2p, değeri active için @ Durum değeri true için @ allow_initialize_from_backup.Makale eklemek için yayın, yürütme sp_addarticle.

  4. yürütmek sırasında düğüm d, sp_addsubscription.Yayını olarak adını belirtmek @ yayın, a düğümü adını @ abone, a düğümü hedef veritabanı adı @ destination_db, değeri yalnızca çoğaltma desteği için @ sync_type.

  5. Düğüm bir yürütmek sp_addsubscription.Yayını olarak adını belirtmek @ yayın, d olarak düğüm adını @ abone, düğüm d olarak hedef veritabanı adı @ destination_db, değeri yedek ile başlatılamıyor için @ sync_typeve uygun değerleri için @ backupdevicetype ve @ backupdevicename parametreleri.

  6. Aaıdaki adımları izleyerek topoloji Quiesce:

    1. Eşler arası topoloji yayımlanmış tüm tablolarda tüm etkinliğini durdurun.

    2. Yürütme sp_requestpeerresponse veritabanı üzerinde at Server a, Sunucu b, Sunucu c, ve Server d, almanıza ve çıkış parametresi @ request_id.

    3. Varsayılan olarak, Dağıtım Aracısı olan küme sürekli olarak; çalıştırmak için Bu nedenle, simgeleri tüm düğümlere otomatik olarak gönderilmelidir.Dağıtım Aracısı sürekli modunda çalışır durumda değil ise, aracı çalıştırın.Daha fazla bilgi için bkz: Çoğaltma aracısı Yürütülebilirler kavramları veya Nasıl yapılır: Başlat ve Durdur çoğaltma aracısı (sql Server Management Studio'yu).

    4. Yürütme sp_helppeerresponsessağlayarak, @ request_id değerini adım 2'de alındı.Eş isteği almış olan tüm düğümler belirtmek kadar bekleyin.

    5. Düğüm d en yeni kimlik aralıklarını, gerekirse atayın.Şu an tamamen topoloji kalan abonelikleri ekleyerek bağlanabilirsiniz.

  7. yürütmek sırasında düğüm d, sp_addsubscription.Yayını olarak adını belirtin @ yayın, düğüm b adını @ abone, b düğümü hedef veritabanı adı @ destination_dbve değeri yalnızca çoğaltma desteği için @ sync_type.

  8. yürütmek sırasında düğüm d, sp_addsubscription.Yayını olarak adını belirtmek @ yayın, düğüm c adını @ abone, düğüm c hedef veritabanı adı @ destination_dbve değeri yalnızca çoğaltma desteği için @ sync_type.

  9. b düğümü, yürütmek sp_addsubscription.Yayını olarak adını belirtmek @ yayın, d olarak düğüm adını @ abone, düğüm d olarak hedef veritabanı adı @ destination_dbve değeri yalnızca çoğaltma desteği için @ sync_type.

  10. yürütmek sırasında düğüm c, sp_addsubscription.Yayını olarak adını belirtmek @ yayın, d olarak düğüm adını @ abone, düğüm d olarak hedef veritabanı adı @ destination_dbve değeri yalnızca çoğaltma desteği için @ sync_type.