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.
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
. Para 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 suscriptor en la replicación transaccional.
Instale SQL Server Management Studio.
Instale SQL Server Developer Edition.
Descargue la base de datos de ejemplo AdventureWorks. Para obtener instrucciones sobre cómo restaurar una base de datos en SSMS, consulte Restauración de una copia de seguridad de base de datos mediante SSMS.
Nota:
La replicación no se admite en instancias de SQL Server que tienen más de dos versiones. Para obtener más información, consulte Compatibilidad con versiones anteriores 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, pero no es un requisito. Si el publicador y el suscriptor comparten la misma instancia, los pasos que se usan para crear cuentas en el suscriptor no son necesarios.
Creación de cuentas locales de Windows para agentes de replicación en el publicador
En el publicador, vaya al Panel de control y abra Administración de equipos en Herramientas administrativas.
En Herramientas del sistema, expanda Usuarios y grupos locales.
Haga clic con el botón derecho en Usuarios y, después, seleccione Usuario nuevo.
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:
Repita el paso anterior para crear las cuentas repl_logreader, repl_distribution y repl_merge:
Seleccione Close (Cerrar).
Creación de cuentas locales de Windows para agentes de replicación en el suscriptor
En el suscriptor, vaya al Panel de control y abra Administración de equipos en Herramientas administrativas .
En Herramientas del sistema, expanda Usuarios y grupos locales.
Haga clic con el botón derecho en Usuarios y, después, seleccione Usuario nuevo.
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.
Repita el paso anterior para crear la cuenta repl_merge.
Seleccione Close (Cerrar).
Para más información, consulte Introducción a 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
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.
Cree una carpeta con el nombre repldata.
Haga clic con el botón derecho en esta carpeta y seleccione Propiedades.
En la pestaña Compartir del cuadro de diálogo Propiedades de repldata, seleccione Uso compartido avanzado.
En el cuadro de diálogo Uso compartido avanzado, seleccione Compartir esta carpeta y, después, seleccione Permisos.
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.
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.
Después de agregar las tres cuentas, asigne los permisos siguientes:
- repl_distribution: Lectura
- repl_merge: Lectura
- repl_snapshot: Control total
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.
En el cuadro de diálogo Propiedades de repldata, seleccione la pestaña Seguridad y seleccione Editar:
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.
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.
Compruebe que se admiten los siguientes permisos:
- repl_distribution: Lectura
- repl_merge: Lectura
- repl_snapshot: Control total
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 al configurar la carpeta de instantáneas.
Seleccione Aceptar para cerrar el cuadro de diálogo Propiedades de repldata.
Para obtener más información, vea 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 configuró el distribuidor, debe deshabilitar la publicación y distribución antes de comenzar esta sección. No deshabilite la publicación y distribución 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
Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo de servidor.
Haga clic con el botón derecho en la carpeta Replicación y luego seleccione Configurar distribución:
Si se conecta a SQL Server mediante localhost en lugar del nombre real del servidor, se le pedirá una advertencia de que SQL Server no puede conectarse 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), donde no se muestra un mensaje de advertencia al conectarse al distribuidor con la dirección IP, pero sigue siendo no válido. Se debe usar el nombre real del servidor al conectarse al distribuidor.
Nota:
El nombre del servidor se puede especificar como
<Hostname>,<PortNumber>
para una instancia predeterminada o<Hostname>\<InstanceName>,<PortNumber>
para una instancia con nombre. Especifique el número de puerto de la conexión cuando SQL Server se implemente en Linux o Windows con un puerto personalizado y el servicio del explorador esté deshabilitado. El uso de números de puerto personalizados para el distribuidor remoto se aplica a SQL Server 2019 (15.x) y versiones posteriores.Se inicia el Asistente para configurar la distribución.
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. Seleccione Siguiente.
Si el Agente SQL Server no se está ejecutando, en la página Inicio del Agente SQL Server, seleccione Sí, configure el servicio Agente SQL Server para que se inicie automáticamente. Seleccione Siguiente.
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.
Acepte los valores predeterminados en las páginas restantes del asistente.
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 usó para iniciar la cuenta de Agente SQL Server no es un administrador en el sistema. Debe iniciar manualmente el Agente SQL Server, conceder esos permisos a la cuenta existente o modificar la cuenta que usa el Agente SQL Server.
Si su instancia de SQL Server Management Studio se ejecuta con derechos administrativos, puede iniciar el Agente de SQL manualmente desde dentro de SSMS:
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
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:
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.
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.
Seleccione Aceptar para crear el inicio de sesión.
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.
Para obtener más información, consulte Configuración del modelo de seguridad del Agente de replicación y distribución.