Quitar manualmente la replicación en SQL Server

En este artículo se explica cómo quitar manualmente la replicación en SQL Server.

Versión del producto original: SQL Server
Número de KB original: 324401

Resumen

En este artículo se describe cómo quitar una replicación de un equipo que ejecuta Microsoft SQL Server. Para quitar una replicación, debe quitar las suscripciones, las publicaciones y el distribuidor configurado para la replicación. Puede quitar la replicación ejecutando el script de Transact-SQL generado por SQL Server Enterprise Manager o SQL Server Management Studio. Sin embargo, si no puede generar el script de Transact-SQL para quitar la replicación, puede quitar manualmente la replicación mediante procedimientos almacenados del sistema y otras instrucciones Transact-SQL. Este artículo contiene información sobre los procedimientos almacenados del sistema que se pueden usar en este proceso.

Nota:

Para obtener más información sobre los procedimientos almacenados del sistema que se mencionan en este artículo, consulte SQL Server Libros en pantalla.

Eliminación manual de una replicación

Puede quitar manualmente una replicación mediante procedimientos almacenados del sistema y otras instrucciones Transact-SQL. Para quitar completamente una replicación, siga estos pasos:

  1. Quite todas las suscripciones configuradas para la replicación.
  2. Quite todas las publicaciones configuradas para la replicación.
  3. Quite el distribuidor configurado para la replicación.

Nota:

Los procedimientos almacenados del sistema para cada tipo de replicación se enumeran más adelante en este artículo. Use los procedimientos almacenados adecuados, en función del tipo de replicación que quiera quitar.

Quitar las suscripciones

Para quitar las suscripciones de una instancia de SQL Server, puede usar los siguientes procedimientos almacenados y los parámetros adecuados:

  • sp_dropsubscription : puede usar el procedimiento almacenado del sp_dropsubscription sistema para quitar suscripciones a un artículo, publicación o conjunto de suscripciones determinados en Publisher. Debe ejecutar el procedimiento almacenado en el servidor del publicador en la base de datos de publicaciones.

  • sp_droppullsubscription : puede usar el procedimiento almacenado del sp_droppullsubscription sistema para quitar una suscripción en la base de datos actual del suscriptor. Debe ejecutar el procedimiento almacenado en el suscriptor de la base de datos de suscripción de extracción.

  • sp_dropmergesubscription: puede usar el procedimiento almacenado del sp_dropmergesubscription sistema para quitar una suscripción a una publicación de combinación y a la Agente de mezcla asociada a la publicación de combinación. Debe ejecutar el procedimiento almacenado en el servidor del publicador en la base de datos de publicaciones.

  • sp_dropmergepullsubscription : puede usar el procedimiento almacenado del sp_dropmergepullsubscription sistema para quitar una suscripción de extracción de mezcla. Debe ejecutar el procedimiento almacenado en el suscriptor de la base de datos de suscripción de extracción.

Eliminación de suscripciones de instantáneas

Para quitar una suscripción de inserción a todos los artículos de una publicación de instantáneas, ejecute el siguiente script en Publisher:

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

Para quitar una suscripción de instantánea de extracción a todos los artículos de una publicación de instantáneas, siga estos pasos:

  1. Ejecute el siguiente script SQL en el suscriptor:

    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publication database name>', @publication = N'<Publication name>'
    
  2. Ejecute el siguiente script en Publisher:

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

Eliminación de una suscripción transaccional

Para quitar una suscripción de inserción a todos los artículos de una publicación transaccional, ejecute el siguiente script en Publisher:

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

Para quitar una suscripción de extracción a todos los artículos de una publicación transaccional, siga estos pasos:

  1. Ejecute el siguiente script en el suscriptor:

    USE < **Subscription database name** >
    GO
    EXEC sp_droppullsubscription @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>', @publication = N'<Publication name>'
    
  2. Ejecute el siguiente script en Publisher:

    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>'
    

Eliminación de una suscripción de combinación

Para quitar una suscripción de inserción, ejecute el siguiente script en Publisher:

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'

Para quitar una suscripción de extracción, siga estos pasos:

  1. Ejecute el siguiente script en el suscriptor:

    USE < **Subscription database name** >
    GO
    EXEC sp_dropmergepullsubscription @publication = N'<Publication name>', @publisher = N'<Publisher server name>', @publisher_db = N'<Publisher database name>'
    
  2. Ejecute el siguiente script en Publisher:

    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>'
    

Quitar las publicaciones

Después de quitar todas las suscripciones que se suscriben a una publicación, puede quitar la publicación. Después de quitar las publicaciones en la base de datos de publicaciones, debe establecer la opción de base de datos de replicación de la base de datos de publicación en false. Para quitar una publicación, puede usar los siguientes procedimientos almacenados del sistema:

  • sp_droppublication: puede usar el procedimiento almacenado del sp_droppublication sistema para quitar una publicación y los artículos asociados a la publicación. Debe ejecutar el procedimiento almacenado en Publisher en la base de datos de publicación.
  • sp_dropmergepublication: puede usar el procedimiento almacenado del sp_dropmergepublication sistema para quitar una publicación de combinación y el Agente de instantáneas asociado a la publicación de combinación. También se quitan los artículos asociados a la publicación. Debe ejecutar el procedimiento almacenado en Publisher en la base de datos de publicación.
  • sp_replicationdboption: puede usar el procedimiento almacenado del sp_replicationdboption sistema para establecer una opción de base de datos de replicación para la base de datos actual. Debe ejecutar el procedimiento almacenado en el servidor del publicador.

Para quitar una publicación de instantáneas, ejecute el siguiente script en Publisher:

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'

Para quitar una publicación transaccional, ejecute el siguiente script en Publisher:

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'

Para quitar una publicación de combinación, ejecute el siguiente script en Publisher:

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'

Quitar el distribuidor

Después de quitar todas las suscripciones y las publicaciones, puede quitar el distribuidor correspondiente. Sin embargo, antes de quitar el distribuidor, debe quitar la designación de suscriptor del publicador. Para ello, use los siguientes procedimientos almacenados:

  • sp_dropsubscriber: puede usar el procedimiento almacenado del sp_dropsubscriber sistema para quitar la designación de suscriptor de un servidor registrado. El procedimiento almacenado quita la entrada del Registro para el suscriptor. El procedimiento almacenado se ejecuta en Publisher en la base de datos de publicación.

  • sp_dropdistributor: puede usar el procedimiento almacenado del sp_dropdistributor sistema para quitar el distribuidor. El procedimiento almacenado se ejecuta en el distribuidor. Para quitar la designación de suscriptor del publicador, ejecute el siguiente script en Publisher:

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

    Para quitar el distribuidor, ejecute el siguiente script en el distribuidor:

    USE master
    GO
    EXEC sp_dropdistributor @no_checks = 1
    

Uso de procedimientos almacenados

También puede usar los siguientes procedimientos almacenados al quitar la replicación:

  • sp_removedbreplication: puede usar el procedimiento almacenado del sp_removedbreplication sistema para quitar todos los objetos de replicación de una base de datos sin actualizar los datos en el distribuidor. Debe ejecutar el procedimiento almacenado en Publisher en la base de datos de publicación o en el suscriptor de la base de datos de suscripciones. A continuación se muestra la sintaxis de este procedimiento almacenado:

    sp_removedbreplication '<Database name>'
    
  • sp_droparticle: puede usar el procedimiento almacenado del sp_droparticle sistema para quitar un artículo de una publicación de instantáneas o de la publicación transaccional. No se puede quitar un artículo si todavía existen una o varias suscripciones al artículo publicado. Debe ejecutar el procedimiento almacenado en Publisher en la base de datos de publicación. A continuación se muestra la sintaxis de este procedimiento almacenado:

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

Referencias

Para obtener más información, consulte los temas siguientes en SQL Server Libros en pantalla: