Tutorial: Configurar la replicación (de mezcla) entre un servidor y clientes móviles

Se aplica a: SQL Server

La replicación de mezcla es una buena solución al problema de mover datos entre un servidor central y clientes móviles que solo se conectan en determinadas ocasiones. Al usar los asistentes para replicación, es más fácil configurar y administrar una topología de replicación de mezcla.

Este tutorial le mostrará cómo configurar una topología de replicación para clientes móviles. Para más información sobre la replicación de mezcla, vea Replicación de mezcla.

Aprendizaje

En este tutorial se explica cómo usar la replicación de mezcla para publicar datos de una base de datos central en uno o más usuarios móviles, de modo que cada usuario obtenga un subconjunto de datos filtrado de manera exclusiva.

En este tutorial, aprenderá a:

  • Configurar un publicador para la replicación de mezcla
  • Agregar un suscriptor móvil para la publicación de mezcla
  • Sincronizar la suscripción con la publicación de mezcla

Requisitos previos

Este tutorial es para usuarios que están familiarizados con las operaciones básicas de las bases de datos, pero tienen una experiencia limitada en 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 suscriptor (destino), instale cualquier edición de SQL Server, excepto SQL Server Express o SQL Server Compact. La publicación que se crea en este tutorial no es compatible con SQL Server Express ni con SQL Server Compact.

  • 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í.

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 un publicador para la replicación de mezcla

En esta sección, se crea una publicación de mezcla mediante SQL Server Management Studio para publicar un subconjunto de las tablas Employee, SalesOrderHeader y SalesOrderDetail en la base de datos de ejemplo AdventureWorks2022. Estas tablas están filtradas con filtros de fila con parámetros para que cada suscripción contenga una partición única de los datos. También se agrega el inicio de sesión de SQL Server usado por el Agente de mezcla a la lista de acceso a la publicación (PAL).

Crear publicaciones de mezcla y definir artículos

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

  2. Inicie el Agente SQL Server haciendo clic con el botón derecho en el Explorador de objetos y seleccionando Iniciar. 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 localesy, después, seleccione Nueva publicación. Se inicia el Asistente para nueva publicación:

    Selecciones para iniciar el Asistente para nueva publicación

  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 de mezcla y haga clic en Siguiente.

  6. En la página Tipos de suscriptor, asegúrese de que solo esté seleccionado SQL Server 2008 (10.0.x) o posterior y, a continuación, seleccione Siguiente:

    Páginas

  7. En la página Artículos, expanda el nodo Tablas. Seleccione estas tres tablas: Employee, SalesOrderHeader y SalesOrderDetail. Seleccione Siguiente.

    Selecciones de tabla en la página

    Nota:

    La tabla Employee contiene una columna (OrganizationNode) que tiene el tipo de datos hierarchyid. Este tipo de datos se admite para la replicación solo en SQL Server 2017.

    Si usa una versión anterior a SQL 2017, verá un mensaje en la parte inferior de la pantalla que le notifica de posibles pérdidas de datos si usa esta columna en la replicación bidireccional. Puede ignorar este mensaje, ya que no afecta al propósito de este tutorial. Pero no olvide que este tipo de datos no debería replicarse en un entorno de producción, a menos que esté usando la versión compatible.

    Para más información sobre cómo replicar el tipo de datos hierarchyid, vea Usar columnas hierarchyid en tablas replicadas.

  8. En la página Filtrar filas de tabla, seleccione Agregar y luego Agregar filtro.

  9. En el cuadro de diálogo Agregar filtro, seleccione Employee (HumanResources) en Seleccione la tabla que desea filtrar. Seleccione la columna LoginID, seleccione la flecha derecha para agregar la columna a la cláusula WHERE de la consulta del filtro y modifique la cláusula WHERE de la manera siguiente:

     WHERE [LoginID] = HOST_NAME()  
    

    Seleccione A row from this table will go to only one subscription (Una fila de esta tabla irá a una sola suscripción) y luego elija Aceptar.

    Selecciones para agregar un filtro

  10. En la página Filtrar filas de tabla, seleccione Employee (Human Resources), luego Agregar y, después, Add Join to Extend the Selected Filter (Agregar combinación para ampliar el filtro seleccionado).

    a. En el cuadro de diálogo Agregar combinación, seleccione Sales.SalesOrderHeader en Tabla combinada. Seleccione Escribir instrucción de combinación manualmente y complete la instrucción de combinación de la manera siguiente:

    ON [Employee].[BusinessEntityID] =  [SalesOrderHeader].[SalesPersonID] 
    

    b. En Especifique las opciones de combinación, seleccione Clave únicay, a continuación, seleccione Aceptar.

    Selecciones para agregar una combinación al filtro

  11. En la página Filtrar filas de tabla, seleccione SalesOrderHeader, elija Agregar y luego Add Join to Extend the Selected Filter (Agregar combinación para ampliar el filtro seleccionado).

    a. En el cuadro de diálogo Agregar combinación , seleccione Sales.SalesOrderDetail en Tabla combinada.
    b. Seleccione Usar generador de instrucciones para crear la instrucción.
    c. En el cuadro Vista previa, confirme que la instrucción de combinación es como sigue:

    ON [SalesOrderHeader].[SalesOrderID] = [SalesOrderDetail].[SalesOrderID] 
    

    d. En Especifique las opciones de combinación, seleccione Clave únicay, a continuación, seleccione Aceptar. Seleccione Siguiente.

    Selecciones para agregar otra combinación para pedidos de venta

  12. Seleccione Crear una instantánea inmediatamente, desactive Programar el Agente de instantáneas para ejecutarsey, a continuación, seleccione Siguiente:

    Selección para crear una instantánea inmediatamente

  13. En la página Seguridad del agente, elija Configuración de seguridad. Escriba <Nombre_De_Equipo_Publicador>\repl_snapshot en el cuadro Cuenta de proceso, escriba la contraseña de la cuenta y, luego, seleccione Aceptar. Seleccione Siguiente.

    Selecciones para configurar la seguridad del agente de instantáneas

  14. En la página Finalización del asistente, escriba AdvWorksSalesOrdersMerge en el cuadro Nombre de publicación y seleccione Finalizar:

    Página

  15. Una vez creada la publicación, seleccione Cerrar. En el nodo Replicación en el Explorador de objetos, haga clic con el botón derecho en Publicaciones locales y en Actualizar para ver la nueva replicación de mezcla.

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 AdvWorksSalesOrdersMerge y luego seleccione Ver estado del Agente de instantáneas:

    Selecciones para ver el estado del agente de instantáneas

  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 lección.

Agregar el inicio de sesión del Agente de mezcla 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 AdvWorksSalesOrdersMerge y seleccione Propiedades.

    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_merge y seleccione Aceptar. Vuelva a seleccionar Aceptar.

    Selecciones para agregar el inicio de sesión del Agente de mezcla

Para más información, vea:

Crear una suscripción a la publicación de mezcla

En esta sección, se agrega una suscripción a la publicación de mezcla que se creó anteriormente. Este tutorial usa el suscriptor remoto (NODE2\SQL2016). Luego se establecen los permisos en la base de datos de suscripciones y se genera manualmente la instantánea de datos filtrados para la nueva suscripción.

Agregar un suscriptor para la publicación de mezcla

  1. Conéctese al suscriptor en SQL Server Management Studio y expanda el nodo de servidor. Expanda la carpeta Replicación, haga clic con el botón derecho en la carpeta Suscripciones locales y luego seleccione Nuevas suscripciones. Se inicia el Asistente para nueva suscripción:

    Selecciones para iniciar el Asistente para nueva suscripción

  2. En la página Publicación, seleccione Buscar publicador de SQL Server en la lista Publicador.

    En el cuadro de diálogo Conectar al servidor, escriba el nombre de la instancia del publicador en el cuadro Nombre del servidor y, después, seleccione Conectar:

    Selecciones para agregar un publicador

  3. Seleccione AdvWorksSalesOrdersMerge y Siguiente.

  4. En la página Ubicación del Agente de mezcla, seleccione Ejecutar cada agente en su suscriptor y, luego, Siguiente:

    Opción

  5. En la página Suscriptores, seleccione el nombre de instancia del servidor del suscriptor. En Base de datos de suscripciones, seleccione Nueva base de datos en la lista.

    En el cuadro de diálogo Nueva base de datos, escriba SalesOrdersReplica en el cuadro Nombre de la base de datos. Seleccione Aceptar y después Siguiente.

    Selecciones para agregar una base de datos al suscriptor

  6. En la página Seguridad del agente de mezcla, seleccione el botón de puntos suspensivos (...). Escriba <Nombre_De_Equipo_Suscriptor>\repl_merge en el cuadro Cuenta de proceso y especifique la contraseña para esta cuenta. Seleccione Aceptar, Siguiente y, después, elija otra vez Siguiente.

    Selecciones para la seguridad del Agente de mezcla

  7. En la página Programación de sincronización, establezca Programación del agente en Run on demand only (Ejecutar solamente a petición). Seleccione Siguiente.

    Selección de

  8. En la página Inicializar suscripciones, seleccione En la primera sincronización de la lista Inicializar cuando. Seleccione Siguiente para continuar con la página Tipo de suscripción y seleccione el tipo de suscripción adecuado. En este tutorial se usa Cliente. Después de seleccionar el tipo de suscripción, seleccione Siguiente otra vez.

    Selecciones para inicializar suscripciones en la primera sincronización

  9. En la página Valores de HOST_NAME, escriba un valor para adventure-works\pamela0 en el cuadro Valor de HOST_NAME. Después, seleccione Finalizar.

    Página

  10. Seleccione Finalizar otra vez. Una vez creada la suscripción, seleccione Cerrar.

Establecer permisos de servidor 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.

    En la página General, seleccione Buscar y escriba <Nombre_De_Equipo_Suscriptor>\repl_merge en el campo Escriba el nombre de objeto. Seleccione Comprobar nombres y, después, Aceptar.

    Selecciones para configurar el inicio de sesión

  2. En la página Asignación de usuario, seleccione la base de datos SalesOrdersReplica y seleccione el rol db_owner. En la página Elementos protegibles, conceda el permiso Explícito para Modificar seguimiento. Seleccione Aceptar.

    Páginas

Crear la instantánea de datos filtrados para 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 AdvWorksSalesOrdersMerge y, luego, seleccione Propiedades.

    a. Seleccione la página Particiones de datos y seleccione Agregar.
    b. En el cuadro de diálogo Agregar partición de datos, escriba adventure-works\pamela0 en el cuadro Valor de HOST_NAME y, después, seleccione Aceptar.
    c. Seleccione la partición agregada recientemente, elija Generar instantáneas seleccionadas ahora y, después, seleccione Aceptar.

    Selecciones para agregar una partición

Para más información, vea:

Sincronizar la suscripción con la publicación de mezcla

En esta sección, se iniciará el Agente de mezcla para inicializar la suscripción mediante SQL Server Management Studio. Este procedimiento también se usa para sincronizar con el publicador.

Iniciar la sincronización e inicializar la suscripción

  1. Conéctese al suscriptor en SQL Server Management Studio.

  2. Asegúrese de que el Agente SQL Server se está ejecutando. Si no lo está, haga clic con el botón derecho en el Agente SQL Server desde el Explorador de objetos y seleccione Iniciar. Si esto no inicia el agente, deberá hacerlo manualmente mediante el Administrador de configuración de SQL Server.

  3. Expanda el nodo Replicación. En la carpeta Suscripciones locales, haga clic con el botón derecho en la suscripción de la base de datos SalesOrdersReplica y, después, seleccione Ver estado de sincronización.

    Seleccione Iniciar para inicializar la suscripción.

    Estado de sincronización con el botón