SQL Server'de çoğaltmayı el ile kaldırma

Bu makalede, SQL Server'da çoğaltmanın nasıl el ile kaldırılacağı açıklanmaktadır.

Özgün ürün sürümü: SQL Server
Özgün KB numarası: 324401

Özet

Bu makalede, Microsoft SQL Server çalıştıran bir bilgisayardan çoğaltmanın nasıl kaldırılacağı açıklanır. Çoğaltmayı kaldırmak için abonelikleri, yayınları ve çoğaltma için yapılandırılmış dağıtımcıyı bırakmanız gerekir. SQL Server Enterprise Yöneticisi veya SQL Server Management Studio tarafından oluşturulan Transact-SQL betiğini çalıştırarak çoğaltmayı kaldırabilirsiniz. Ancak, çoğaltmayı kaldırmak için Transact-SQL betiğini oluşturamıyorsanız, sistem saklı yordamlarını ve diğer Transact-SQL deyimlerini kullanarak çoğaltmayı el ile kaldırabilirsiniz. Bu makale, bu işlemde kullanılabilecek sistem saklı yordamları hakkında bilgi içerir.

Not

Bu makalede bahsedilen sistem saklı yordamları hakkında daha fazla bilgi için bkz. Çevrimiçi Kitaplar SQL Server.

Çoğaltmayı el ile kaldırma

Sistem saklı yordamlarını ve diğer Transact-SQL deyimlerini kullanarak çoğaltmayı el ile kaldırabilirsiniz. Çoğaltmayı tamamen kaldırmak için şu adımları izleyin:

  1. Çoğaltma için yapılandırılmış tüm abonelikleri bırakın.
  2. Çoğaltma için yapılandırılmış tüm yayınları bırakın.
  3. Çoğaltma için yapılandırılan dağıtımcıyı bırakın.

Not

Her çoğaltma türü için sistem saklı yordamları bu makalenin devamında listelenmiştir. Kaldırmak istediğiniz çoğaltma türüne bağlı olarak uygun saklı yordamları kullanın.

Abonelikleri bırakma

Abonelikleri bir SQL Server örneğinden bırakmak için aşağıdaki saklı yordamları ve uygun parametreleri kullanabilirsiniz:

  • sp_dropsubscription : Abonelikleri Publisher'da sp_dropsubscription belirli bir makaleye, yayına veya abonelik kümesine bırakmak için sistem saklı yordamını kullanabilirsiniz. Saklı yordamı yayın veritabanındaki Publisher sunucusunda çalıştırmanız gerekir.

  • sp_droppullsubscription : Aboneliği abonenin sp_droppullsubscription geçerli veritabanına bırakmak için sistem saklı yordamını kullanabilirsiniz. Çekme aboneliği veritabanındaki Abone'de saklı yordamı çalıştırmanız gerekir.

  • sp_dropmergesubscription : Bir aboneliği birleştirme yayınına sp_dropmergesubscription ve birleştirme yayınıyla ilişkili Birleştirme Aracısı'na bırakmak için sistem saklı yordamını kullanabilirsiniz. Saklı yordamı yayın veritabanındaki Publisher sunucusunda çalıştırmanız gerekir.

  • sp_dropmergepullsubscription : Birleştirme çekme aboneliğini sp_dropmergepullsubscription bırakmak için sistem saklı yordamını kullanabilirsiniz. Çekme aboneliği veritabanındaki Abone'de saklı yordamı çalıştırmanız gerekir.

Anlık görüntü aboneliklerini bırakma

Anlık görüntü yayınının tüm makalelerine anında iletme aboneliğini bırakmak için Publisher'da aşağıdaki betiği çalıştırın:

USE < **Publication database name** >
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'

Anlık görüntü yayınının tüm makalelerine çekme anlık görüntüsü aboneliğini bırakmak için şu adımları izleyin:

  1. Abone'de aşağıdaki SQL betiğini çalıştırın:

    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publication database name>', @publication = N'<Publication name>'
    
  2. Publisher'da aşağıdaki betiği çalıştırın:

    USE < **Publication database name** >
    GO
    EXEC sp_dropsubscription @publication=N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'all'
    

İşlem aboneliğini bırakma

bir işlem yayınının tüm makalelerine anında iletme aboneliği bırakmak için Publisher'da aşağıdaki betiği çalıştırın:

USE < **Publication database name** >
GO
EXEC sp_dropsubscription @publication = N'<Publication name>', @article = N'all', @subscriber = N'all', @destination_db = N'all'

Çekme aboneliğini işlem yayınının tüm makalelerine bırakmak için şu adımları izleyin:

  1. Abone'de aşağıdaki betiği çalıştırın:

    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
    
  2. Publisher'da aşağıdaki betiği çalıştırın:

    USE < **Publication database name** >
    GO
    EXEC sp_dropsubscription @publication =N'<Publication name>', @subscriber = N'<Subscriber server name>', @article = N'all', @destination_db = N'<Destination database name>'
    

Birleştirme aboneliğini bırakma

Gönderim aboneliğini bırakmak için Publisher'da aşağıdaki betiği çalıştırın:

USE < **Publication database name** >
GO
EXEC sp_dropmergesubscription @publication = N'<Publication name>', @subscriber = N'<Publisher server name>', @subscriber_db = N'<Subscription database name>', @subscription_type = N'push'

Çekme aboneliğini bırakmak için şu adımları izleyin:

  1. Abone'de aşağıdaki betiği çalıştırın:

    USE < **Subscription database name** >
    GO
    EXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
    
  2. Publisher'da aşağıdaki betiği çalıştırın:

    USE < **Publication database name** >
    GO
    EXEC sp_dropmergesubscription @subscription_type = N'pull', @publication = N'<Publication name>', @subscriber = N'<Subscriber server name>', @subscriber_db = N'<Subscription database name>'
    

Yayınları bırakma

Yayına abone olan tüm abonelikleri kaldırdıktan sonra yayını kaldırabilirsiniz. Yayın veritabanındaki yayınları kaldırdıktan sonra, yayın veritabanı için çoğaltma veritabanı seçeneğini false olarak ayarlamanız gerekir. Yayını kaldırmak için aşağıdaki sistem saklı yordamlarını kullanabilirsiniz:

  • sp_droppublication: Bir yayını ve yayınla ilişkili makaleleri bırakmak için sistem saklı yordamını kullanabilirsiniz sp_droppublication . Publisher'da yayın veritabanında saklı yordamı çalıştırmanız gerekir.
  • sp_dropmergepublication: Birleştirme yayınını sp_dropmergepublication ve birleştirme yayınıyla ilişkili Snapshot Agent'ı bırakmak için sistem saklı yordamını kullanabilirsiniz. Yayınla ilişkili makaleler de bırakılır. Publisher'da yayın veritabanında saklı yordamı çalıştırmanız gerekir.
  • sp_replicationdboption: Geçerli veritabanı için bir çoğaltma veritabanı seçeneği ayarlamak için sistem saklı yordamını kullanabilirsiniz sp_replicationdboption . Saklı yordamı Publisher sunucusunda çalıştırmanız gerekir.

Anlık görüntü yayınını bırakmak için Publisher'da aşağıdaki betiği çalıştırın:

USE < **Publication database name** >
GO
EXEC sp_droppublication @publication = N'<Publication name>'

USE master
GO
exec sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'

İşlem yayınını bırakmak için Publisher'da aşağıdaki betiği çalıştırın:

USE < **Publication database name** >
GO
EXEC sp_droppublication @publication = N'<Publication name>'

USE master
GO
EXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'publish', @value = N'false'

Birleştirme yayınını bırakmak için Publisher'da aşağıdaki betiği çalıştırın:

USE < **Publication database name** >
GO
EXEC sp_dropmergepublication @publication = N'<Publication name>'

USE master
GO
EXEC sp_replicationdboption @dbname = N'<Publication database name>', @optname = N'merge publish', @value = N'false'

Dağıtımcıyı bırakma

Tüm abonelikleri ve yayınları bıraktıktan sonra ilgili Dağıtımcıyı bırakabilirsiniz. Ancak dağıtımcıyı bırakmadan önce Publisher'dan abone atamasını bırakmanız gerekir. Bunu yapmak için aşağıdaki saklı yordamları kullanın:

  • sp_dropsubscriber: Kayıtlı bir sunucudan sp_dropsubscriber abone atamasını bırakmak için sistem saklı yordamını kullanabilirsiniz. Saklı yordam abone için kayıt defteri girdisini kaldırır. Saklı yordam yayın veritabanında Publisher'da çalıştırılır.

  • sp_dropdistributor: Dağıtımcıyı sp_dropdistributor kaldırmak için sistem saklı yordamını kullanabilirsiniz. Saklı yordam dağıtımcıda çalıştırılır. Publisher'dan abone atamasını bırakmak için Publisher'da aşağıdaki betiği çalıştırın:

    USE master
    GO
    EXEC sp_dropsubscriber @subscriber = N'<Subscriber server name>', @reserved = N'drop_subscriptions'
    

    Dağıtımcıyı kaldırmak için dağıtımcıda aşağıdaki betiği çalıştırın:

    USE master
    GO
    EXEC sp_dropdistributor @no_checks = 1
    

Saklı yordamları kullanma

Çoğaltmayı kaldırırken aşağıdaki saklı yordamları da kullanabilirsiniz:

  • sp_removedbreplication: Dağıtımcıdaki sp_removedbreplication verileri güncelleştirmeden veritabanındaki tüm çoğaltma nesnelerini kaldırmak için sistem saklı yordamını kullanabilirsiniz. Publisher'da yayın veritabanında veya abonelik veritabanındaki Abone'de saklı yordamı çalıştırmanız gerekir. Bu saklı yordamın söz dizimi aşağıdadır:

    sp_removedbreplication '<Database name>'
    
  • sp_droparticle: Bir anlık görüntü yayınından veya işlem yayınından bir makale bırakmak için sistem saklı yordamını kullanabilirsiniz sp_droparticle . Yayımlanan makalenin bir veya daha fazla aboneliği hala mevcutsa, bir makaleyi kaldıramazsınız. Publisher'da yayın veritabanında saklı yordamı çalıştırmanız gerekir. Bu saklı yordamın söz dizimi aşağıdadır:

    sp_droparticle @publication = N'<Publication name>', @article = N'<Article name>', @force_invalidate_snapshot = 1
    

Başvurular

Daha fazla bilgi için SQL Server Books Online'da aşağıdaki konulara bakın: