Tutorial: Preparar el servidor para la replicación

Se aplica a:SQL Server

Es importante planificar la seguridad antes de configurar la topología de replicación. Este tutorial le mostrará cómo asegurar mejor una topología de replicación. También muestra cómo configurar la distribución, que es el primer paso en la replicación de datos. Debe finalizar este tutorial antes que cualquiera de los otros tutoriales.

Nota:

Para replicar datos de forma segura entre servidores, debe implementar todas las recomendaciones de Prácticas recomendadas de seguridad de replicación.

Aprendizaje

Este tutorial le enseñará a preparar un servidor de manera que la replicación se ejecute de forma segura con los privilegios mínimos.

En este tutorial, aprenderá a:

  • Crear cuentas de Windows para replicación
  • Preparar la carpeta de instantáneas
  • Configurar la distribución

Requisitos previos

Este tutorial está pensado para usuarios que están familiarizados con las operaciones básicas de las bases de datos, pero que tienen una experiencia limitada en operaciones de 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: 30 minutos

Creación de cuentas de Windows para replicación

En esta sección, crea cuentas de Windows para ejecutar agentes de replicación. Va a crear distintas cuentas de Windows en el servidor local para los siguientes agentes:

Agente Location Account name
Agente de instantáneas Publicador <nombreDeequipo>\repl_snapshot
Agente de registro del LOG Publicador <nombreDeEquipo>\repl_logreader
Agente de distribución Publicador y suscriptor <nombreDeEquipo>\repl_distribution
Agente de mezcla Publicador y suscriptor <nombreDeEquipo>\repl_merge

Nota:

En los tutoriales de replicación, el publicador y el distribuidor comparten la misma instancia (NODE1\SQL2016) de SQL Server. La instancia del suscriptor (NODE2\SQL2016) es remota. El publicador y el suscriptor pueden compartir la misma instancia de SQL Server, aunque no es necesario. Si el publicador y el suscriptor comparten la misma instancia, no se requieren los pasos que se utilizan para crear las cuentas en el suscriptor.

Creación de cuentas locales de Windows para agentes de replicación en el publicador

  1. En el publicador, vaya al Panel de control y abra Administración de equipos en Herramientas administrativas.

  2. En Herramientas del sistema, expanda Usuarios y grupos locales.

  3. Haga clic con el botón derecho en Usuarios y, después, seleccione Usuario nuevo.

  4. Escriba repl_snapshot en el cuadro Nombre de usuario, proporcione la contraseña y demás información relevante y, después, seleccione Crear para crear la cuenta repl_snapshot:

  5. Repita el paso anterior para crear las cuentas repl_logreader, repl_distribution y repl_merge:

    List of replication users

  6. Seleccione Close (Cerrar).

Creación de cuentas locales de Windows para agentes de replicación en el suscriptor

  1. En el suscriptor, vaya al Panel de control y abra Administración de equipos en Herramientas administrativas .

  2. En Herramientas del sistema, expanda Usuarios y grupos locales.

  3. Haga clic con el botón derecho en Usuarios y, después, seleccione Usuario nuevo.

  4. Escriba repl_distribution en el cuadro Nombre de usuario, proporcione la contraseña y demás información relevante y, después, seleccione Crear para crear la cuenta repl_distribution.

  5. Repita el paso anterior para crear la cuenta repl_merge.

  6. Seleccione Close (Cerrar).

Para más información, consulte Información general sobre los agentes de replicación.

Preparación de la carpeta de instantáneas

En esta sección va a configurar la carpeta de instantáneas que se utiliza para crear y almacenar la instantánea de publicación.

Crear un recurso compartido para la carpeta de instantáneas y asignar permisos

  1. En el Explorador de archivos, vaya a la carpeta de datos SQL Server. La ubicación predeterminada es C:\Archivos de programa\Microsoft SQL Server\MSSQL.X\MSSQL\Data.

  2. Cree una carpeta con el nombre repldata.

  3. Haga clic con el botón derecho en esta carpeta y seleccione Propiedades.

    a. En la pestaña Compartir del cuadro de diálogo Propiedades de repldata, seleccione Uso compartido avanzado.

    b. En el cuadro de diálogo Uso compartido avanzado, seleccione Compartir esta carpeta y, después, seleccione Permisos.

    Selections for sharing the repldata folder

  4. En el cuadro de diálogo Permisos de repldata, seleccione Agregar. En el cuadro de texto Seleccionar usuarios, equipos, cuentas de servicio o grupos, escriba el nombre de la cuenta del Agente de instantáneas creado anteriormente, como <Nombre_De_Equipo_Publicador>\repl_snapshot. Seleccione Comprobar nombres y, después, Aceptar.

    Selections to add sharing permissions

  5. Repita el paso 6 para agregar las otras dos cuentas que se crearon previamente: <Nombre_De_Equipo_Publicador>\repl_merge y <Nombre_De_Equipo_Publicador>\repl_distribution.

  6. Después de agregar las tres cuentas, asigne los permisos siguientes:

    • repl_distribution: Lectura
    • repl_merge: Lectura
    • repl_snapshot: Control total

    Shared permissions for each account

  7. Después de configurar correctamente los permisos de los recursos compartidos, seleccione Aceptar para cerrar el cuadro de diálogo Permisos de repldata. Seleccione Aceptar para cerrar el cuadro de diálogo Uso compartido avanzado.

  8. En el cuadro de diálogo Propiedades de repldata, seleccione la pestaña Seguridad y seleccione Editar:

  9. En el cuadro de diálogo Permisos de repldata, seleccione Agregar. En el cuadro de texto Seleccionar usuarios, equipos, cuentas de servicio o grupos, escriba el nombre de la cuenta del Agente de instantáneas creado anteriormente, como <Nombre_De_Equipo_Publicador>\repl_snapshot. Seleccione Comprobar nombres y, después, Aceptar.

    Selections to add security permissions

  10. Repita el paso anterior para agregar permisos para el Agente de distribución, por ejemplo <Nombre_De_Equipo_Publicador>\repl_distribution y, para el Agente de mezcla, <Nombre_De_Equipo_Publicador>\repl_merge.

  11. Compruebe que se admiten los siguientes permisos:

    • repl_distribution: Lectura
    • repl_merge: Lectura
    • repl_snapshot: Control total

    User permissions for replication data

  12. Vuelva a seleccionar la pestaña Compartir y anote la Ruta de acceso a la red para el recurso compartido. Necesitará esta ruta de acceso más adelante cuando configure la carpeta de instantáneas.

    Network path on the

  13. Seleccione Aceptar para cerrar el cuadro de diálogo Propiedades de repldata.

Para más información, consulte Proteger la carpeta de instantáneas.

Configuración de distribución

En esta sección va a configurar la distribución en el publicador y establecer los permisos requeridos en las bases de datos de publicación y distribución. Si ya ha configurado el distribuidor, debe deshabilitar la publicación y distribución antes de iniciar esta sección. No lo haga si debe mantener una topología de replicación existente, especialmente en producción.

En este tutorial no se contempla la configuración de un publicador con un distribuidor remoto.

Configuración de la distribución en el publicador

  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 la carpeta Replicación y luego seleccione Configurar distribución:

    Nota:

    • Si se ha conectado a SQL Server mediante localhost en lugar del nombre real del servidor, aparece una advertencia que indica que no se puede conectar a localhost o dirección IP. En el cuadro de diálogo de advertencia, seleccione Aceptar. En el cuadro de diálogo Conectar al servidor, cambie Nombre del servidor de localhost o dirección IP al nombre del servidor. A continuación, seleccione Conectar.
    • Actualmente hay un problema conocido con SQL Server Management Studio (SSMS) 18.0 (y versiones posteriores) que consiste en que no se muestra un mensaje de advertencia al conectarse al distribuidor con la dirección IP, aunque esto sigue sin ser válido. Se debe usar el nombre real del servidor al conectarse al distribuidor.

    Se inicia el Asistente para configurar la distribución.

  3. En la página Distribuidor, seleccione <'NombreServidor'> actuará como su propio distribuidor; SQL Server creará una base de datos y un registro de distribución. Luego, seleccione Siguiente.

    Option to make the server act as its own distributor

  4. Si el Agente de SQL Server no se está ejecutando, en la página Inicio del Agente, seleccione Sí, configurar el servicio del Agente para que se inicie automáticamente. Seleccione Siguiente.

  5. Escriba la ruta de acceso \\<Nombre_De_Equipo_Publicador>\repldata en el cuadro de texto Carpeta de instantáneas y, después, seleccione Siguiente. Esta ruta de acceso debe coincidir con lo que vimos anteriormente en Ruta de acceso a la red de la carpeta de propiedades de repldata después de configurar las propiedades del recurso compartido.

    Comparison of network paths in the

  6. Acepte los valores predeterminados en las páginas restantes del asistente.

    Last page of the wizard

  7. Seleccione Finalizar para habilitar la distribución.

El siguiente error puede aparecer al configurar el distribuidor. Es una indicación de que la cuenta que se utilizó para iniciar la cuenta del Agente SQL Server no es un administrador del sistema. Necesitará iniciar manualmente el Agente SQL Server, conceder dichos permisos a la cuenta existente o modificar la cuenta que utiliza el Agente SQL Server.

Error message for configuring the SQL Server Agent

Si su instancia de SQL Server Management Studio se ejecuta con derechos administrativos, puede iniciar el Agente de SQL manualmente desde dentro de SSMS:

Selecting

Nota:

Si no se inicia el Agente SQL de forma visible, haga clic con el botón derecho en el Agente SQL Server en SSMS y seleccione Actualizar. Si está todavía en estado detenido, inícielo manualmente desde el Administrador de configuración de SQL Server.

Establecer los permisos para la base de datos

  1. En SQL Server Management Studio, expanda Seguridad, haga clic con el botón derecho en Inicios de sesióny seleccione Nuevo inicio de sesión:

  2. En la página General, seleccione Buscar. Escriba <Nombre_De_Equipo_Publicador>\repl_snapshot en el cuadro Escriba el nombre de objeto a seleccionar, seleccione Comprobar nombres y, después, seleccione Aceptar.

    Selections for entering the object name

  3. En la página Asignación de usuarios, en la lista Usuarios asignados a este inicio de sesión, seleccione las bases de datos de distribución y de AdventureWorks2022.

    En la lista Pertenencia al rol de la base de datos, seleccione el rol db_owner para el inicio de sesión en ambas bases de datos.

    Selecting the databases and their role

  4. Seleccione Aceptar para crear el inicio de sesión.

  5. Repita los pasos del 1 al 4 para crear un inicio de sesión para el resto de cuentas locales (repl_distribution, repl_logreader y repl_merge). Estos inicios de sesión también se deben asignar a usuarios que son miembros del rol fijo de base de datos db_owner en las bases de datos distribution y AdventureWorks.

    View of all four accounts in Object Explorer

Para más información, vea:

Pasos siguientes

Ya ha preparado correctamente el servidor para la replicación. El artículo siguiente le enseñará a configurar la replicación transaccional: