Tutorial: Configurar la replicación entre dos servidores conectados completamente (transaccional)

Se aplica a:SQL Server

La replicación transaccional es una buena solución para el problema de mover datos entre servidores conectados de forma continua. Mediante el Asistente para replicación, puede configurar y administrar fácilmente una topología de replicación.

Este tutorial le mostrará cómo configurar una topología de replicación transaccional para servidores conectados de forma continua. Para más información sobre cómo funciona la replicación transaccional, vea Replicación transaccional.

Aprendizaje

En este tutorial aprenderá a publicar datos de una base de datos en otra mediante la replicación transaccional.

En este tutorial, aprenderá a:

  • Crear un publicador mediante la replicación transaccional
  • Crear un suscriptor para el publicador transaccional
  • Validar la suscripción y medir la latencia

Requisitos previos

Este tutorial es para usuarios que están familiarizados con las operaciones básicas de las bases de datos, pero tienen poca experiencia con operaciones de replicación. Antes de empezar este tutorial, debe completar el Tutorial: Preparar el servidor para la replicación.

Para completar este tutorial, necesita tener SQL Server, SQL Server Management Studio (SSMS) y una base de datos de AdventureWorks:

  • En el servidor del publicador (origen), instale:

    • Cualquier edición de SQL Server, excepto SQL Server Express o SQL Server Compact. Estas ediciones no pueden ser publicadores de replicación.
    • La base de datos de ejemplo AdventureWorks2022 . Con el objeto de mejorar la seguridad, las bases de datos de ejemplo no se instalan de forma predeterminada.
  • En el servidor de suscripción (destino), instale cualquier edición de SQL Server Compact. SQL Server Compact no puede ser un suscriptor de una replicación transaccional.

  • Instale SQL Server Management Studio.

  • Instale SQL Server 2017 Developer Edition.

  • Descargue la base de datos de ejemplo AdventureWorks. Para obtener instrucciones sobre cómo restaurar una base de datos en SSMS, vea Restaurar una copia de seguridad de base de datos con SSMS.

Nota:

  • La replicación no se admite entre instancias de SQL Server que estén separadas por más de dos versiones entre sí. Para más información, vea la entrada de blog Supported SQL Server versions in Replication Topology (Versiones de SQL Server admitidas en la topología de replicación).
  • En SQL Server Management Studio, debe conectarse al publicador y al suscriptor con un inicio de sesión que sea miembro del rol fijo de servidor sysadmin. Para más información sobre este rol, vea Roles de nivel de servidor.

Tiempo estimado para completar este tutorial: 60 minutos

Configurar el publicador para la replicación transaccional

En esta sección, se crea una publicación transaccional mediante SQL Server Management Studio para publicar un subconjunto filtrado de la tabla Product en la base de datos de ejemplo AdventureWorks2022. También se agrega un inicio de sesión de SQL Server que usa el Agente de distribución a la lista de acceso a la publicación (PAL).

Crear publicaciones y definir artículos

  1. Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo de servidor.

  2. Haga clic con el botón derecho en Agente SQL Server y seleccione Iniciar. El Agente SQL Server debe estar ejecutándose antes de crear la publicación. Si esto no inicia el agente, deberá hacerlo manualmente desde el Administrador de configuración de SQL Server.

  3. Expanda la carpeta Replicación, haga clic con el botón derecho en la carpeta Publicaciones locales y, después, seleccione Nueva publicación. Este paso inicia el Asistente para nueva publicación:

    Selections for starting the New Publication Wizard

  4. En la página Base de datos de publicación, seleccione AdventureWorks2022 y haga clic en Siguiente.

  5. En la página Tipo de publicación, seleccione Publicación transaccional y, después, seleccione Siguiente:

  6. En la página Artículos, expanda el nodo Tablas y seleccione la casilla Producto. Después, expanda Producto y desactive las casillas junto a ListPrice y StandardCost. Seleccione Siguiente.

  7. En la página Filtrar filas de tabla, seleccione Agregar.

  8. En el cuadro de diálogo Agregar filtro, seleccione la columna SafetyStockLevel. Seleccione la flecha derecha para agregar la columna a la cláusula WHERE de la instrucción de filtro en la consulta del filtro. Después, escriba manualmente en el modificador de la cláusula WHERE lo siguiente:

    WHERE [SafetyStockLevel] < 500  
    

  9. Seleccione Aceptar y después Siguiente.

  10. Active la casilla Crear una instantánea inmediatamente y mantenerla disponible para inicializar suscripciones y seleccione Siguiente:

  11. En la página Seguridad del agente, desactive la casilla Use the security settings from the Snapshot Agent (Usar la configuración de seguridad del Agente de instantáneas).

    Seleccione Configuración de seguridad para el Agente de instantáneas. Escriba <Nombre_De_Equipo_Publicador>\repl_snapshot en el cuadro Cuenta de proceso, escriba la contraseña de la cuenta y, luego, seleccione Aceptar.

  12. Repita el paso anterior para establecer <Nombre_De_Equipo_Publicador>\repl_logreader como la cuenta de proceso para el Agente de registro del LOG. A continuación, seleccione Aceptar.

  13. En la página Complete the Wizard (Finalización del asistente), escriba AdvWorksProductTrans en el cuadro Nombre de publicación y seleccione Finalizar:

  14. Una vez se haya creado la publicación, seleccione Cerrar para finalizar el asistente.

Podría producirse el siguiente error si el Agente SQL Server no se está ejecutando cuando intenta crear la publicación. Este error indica que la publicación se creó correctamente, pero no se pudo iniciar el Agente de instantáneas. Si esto ocurre, debe iniciar al Agente SQL Server y, después, iniciar manualmente el Agente de instantáneas. En la siguiente sección se proporcionan instrucciones.

Warning that the Snapshot Agent has failed to start

Ver el estado de la generación de instantáneas

  1. Conéctese al publicador en SQL Server Management Studio, expanda el nodo del servidor y luego la carpeta Replicación.

  2. En la carpeta Publicaciones locales, haga clic con el botón derecho en AdvWorksProductTrans y luego seleccione Ver estado del Agente de instantáneas:
    Command on the shortcut menu for viewing the Snapshot Agent status

  3. Se muestra el estado actual del trabajo del Agente de instantáneas para la publicación. Compruebe que el trabajo de instantáneas sea correcto antes de continuar con la siguiente sección.

Si el Agente SQL Server no se estaba ejecutando cuando creó la publicación, verá que el Agente de instantáneas nunca se ejecutó cuando compruebe el estado del Agente de instantáneas para su publicación. Si es así, seleccione Iniciar para iniciar el Agente de instantáneas:

Si ve un error aquí, vea Troubleshooting Snapshot Agent errors (Solucionar errores con el Agente de instantáneas).

Agregar el inicio de sesión del Agente de distribución a la lista de acceso de la publicación (PAL)

  1. Conéctese al publicador en SQL Server Management Studio, expanda el nodo del servidor y luego la carpeta Replicación.

  2. En la carpeta Publicaciones locales, haga clic con el botón derecho en AdvWorksProductTrans y luego seleccione Propiedades. Aparece el cuadro de diálogo Propiedades de la publicación.

    a. Seleccione la página Lista de acceso a la publicación y seleccione Agregar.
    b. En el cuadro de diálogo Agregar acceso de publicación, seleccione <Nombre_De_Equipo_Publicador>\repl_distribution y seleccione Aceptar.

    Selections for adding a login to the publication access list

Para más información, vea Conceptos de la programación de replicación.

Creación de una suscripción a la publicación transaccional

En esta sección se agrega un suscriptor a la publicación que creada anteriormente. Este tutorial usa un suscriptor remoto (NODE2\SQL2016), pero también puede agregar una suscripción localmente en el publicador.

Creación de la suscripción

  1. Conéctese al publicador en SQL Server Management Studio, expanda el nodo del servidor y luego la carpeta Replicación.

  2. En la carpeta Publicaciones locales, haga clic con el botón derecho en la publicación AdvWorksProductTrans y, después, seleccione Nuevas suscripciones. Se inicia el Asistente para nueva suscripción:

    Selections to start the New Subscription Wizard

  3. En la página Publicación, seleccione AdvWorksProductTrans y, después, seleccione Siguiente:

  4. En la página Ubicación del Agente de distribución, seleccione Ejecutar todos los agentes en el distribuidor y luego seleccione Siguiente. Para más información sobre las suscripciones de inserción y de extracción, vea Suscribirse a publicaciones.

  5. En la página Suscriptores, si no se muestra el nombre de la instancia del suscriptor, seleccione Agregar suscriptor y, después, seleccione Agregar suscriptor de SQL Server en la lista desplegable. Este paso abre el cuadro de diálogo Conectar al servidor. Escriba el nombre de instancia del suscriptor y, después, seleccione Conectar.

    Después de agregar el suscriptor, active la casilla situada junto al nombre de instancia del suscriptor. Después, seleccione Nueva base de datos en Base de datos de suscripción.

  6. Aparece el cuadro de diálogo Nueva base de datos. Escriba ProductReplica en el cuadro Nombre de base de datos, seleccione Aceptar y, después, seleccione Siguiente:

    Entering a name for the subscription database

  7. En la página Seguridad del Agente de distribución, haga clic en el botón de puntos suspensivos (...). Escriba <Nombre_De_Equipo_Publicador>rpl_distribution el cuadro Cuenta de proceso, escriba la contraseña para esta cuenta, seleccione Aceptar y, a luego, Siguiente.

    Distribution account information in the

  8. Seleccione Finalizar para aceptar los valores predeterminados en las páginas restantes y finalizar el asistente.

Establecer permisos de base de datos en el suscriptor

  1. Conéctese al suscriptor en SQL Server Management Studio. Expanda Seguridad, haga clic con el botón derecho en Inicios de sesión y, después, seleccione Nuevo inicio de sesión.

    a. En la página General, en Nombre de inicio de sesión, seleccione Buscar y añada el inicio de sesión para <Nombre_De_Equipo_Suscriptor>\repl_distribution.

    b. En la página Asignaciones de usuario, otorgue el inicio de sesión al miembro db_owner para la base de datos ProductReplica.

    Selections for configuring the login on the subscriber

  2. Seleccione Aceptar para cerrar el cuadro de diálogo Nuevo inicio de sesión.

Ver el estado de sincronización de la suscripción

  1. Conéctese al servidor en SQL Server Management Studio. Expanda el nodo del servidor y luego la carpeta Replicación.

  2. En la carpeta Publicaciones locales, expanda la publicación AdvWorksProductTrans, haga clic con el botón derecho en la suscripción de la base de datos ProductReplica y, después, seleccione Ver estado de sincronización. Se muestra el estado de sincronización actual de la suscripción:

    Selections for opening the

  3. Si la suscripción no está visible en AdvWorksProductTrans, presione F5 para actualizar la lista.

Para más información, vea:

Medir la latencia de replicación

En esta sección se emplean testigos de seguimiento para comprobar que los cambios se replican en el suscriptor y para determinar la latencia. La latencia es el tiempo necesario para que un cambio realizado en el publicador aparezca en el suscriptor.

  1. Conéctese al servidor en SQL Server Management Studio. Expanda el nodo del servidor, haga clic con el botón derecho en la carpeta Replicación y luego seleccione Iniciar Monitor de replicación:

  2. Expanda un grupo de publicador en el panel izquierdo, expanda la instancia del publicador y, después, seleccione la publicación AdvWorksProductTrans.

    a. Seleccione la pestaña Testigos de seguimiento.
    b. Seleccione Insertar seguimiento.
    c. Vea el tiempo transcurrido para el testigo de seguimiento en las siguientes columnas: Publicador a distribuidor, Distribuidor a suscriptory Latencia total. El valor Pendiente indica que el testigo no ha alcanzado un punto especificado.

    Information for the tracer token

Para más información, vea:

Pasos siguientes

Ha configurado correctamente el publicador y el suscriptor para la replicación transaccional. Ahora puede insertar, actualizar o eliminar datos en la tabla Product del publicador. Después, puede consultar la tabla Product en el suscriptor para ver los cambios replicados.

En este artículo se muestra cómo configurar la replicación de mezcla: