Ierrea.com es un un espacio donde se recogen procedimientos de un Administrador de Sistemas TIC, relacionados con entornos Virtuales VMware o Hyper-V, Cloud, Storage, Comunicaciones, etc...

Replicación entre BBDD SQL Server


En esta entrada veremos cómo crear réplicas entre bases de datos SQL Server. Algo muy útil para entornos de Desarrollo y/o Preproducción, de tal manera que los desarrolladores tengan un entorno lo más parecido posible al de producción, donde poder hacer sus pruebas de desarrollo, sin riesgo de afectación sobre el entorno de Producción.

Para este laboratorio emplearé dos servidores Windows Server 2019 Standard Edition, con SQL Server 2017 Developer Edition. Esta solución se podría aplicar perfectamente en entornos de SQL Server 2017 Standard Edition.

La lógica del invento es sencilla. En el servidor donde tenemos la base de datos a replicar, a partir de ahora lo llamaremos servidor de Producción, crearemos una nueva Publicación con unas características determinadas que más adelante veremos. Y en el servidor que recibirá la réplica de la base de datos, a partir de ahora servidor de Desarrollo, crearemos una nueva Suscripción. Además, también entra en juego un tercer elemento, que es el Distribuidor, el cual se puede desplegar en un servidor específico, o en el mismo servidor que asuma la publicación. En este caso, lo más habitual por otra parte, alojaré el distribuidor en el mismo servidor que el publicador, es decir, el de Producción.

Bien, pues tras esta breve introducción, veamos cómo montamos la solución.

En primer lugar, en el servidor de Producción crearemos una nueva Publicación. Esto lo haremos desde la sección Replication > Local Publications > New Publication

Esto nos abre el asistente de creación de la publicación

Como comentaba anteriormente, tenemos que crear el Distributor. El Distribuidor no es más que el servidor o servicio responsable de almacenar la información usada durante las sincronizaciones. En este caso el Distribuidor correrá en el mismo servidor que el Publicador

Especificamos la ruta donde se almacenarán los Snapshots necesarios para la realización de la réplica...

Seleccionamos la base de datos que queremos replicar...

Y en este punto definiremos el tipo de réplica a desplegar. Hay que tener muy presente, que la réplica de tipo Snapshot bloquea los objetos a replicar (tablas, vistas, procedimientos almacenados...), de tal manera que mientras se ejecute la réplica, no se podrá escribir en esos objetos. Por este motivo, a mí me gusta más la opción Transactional publication, la cual no genera bloqueo de los objetos a replicar, y lo que hace es que el publicador envía el contenido del log de transacciones al subscriptor

Seleccionamos los objetos a replicar...

Definimos exclusiones si queremos o necesitamos...

La subscripción se inicializa mediante un Snapshot de la publicación. Este Snapshot lo realiza el Snapshot Agent, y en esta ventana definimos la programación de ejecución de dicho Snapshot

Definimos la cuenta de servicio con la que ejecutaremos el Agente. Yo considero buena opción hacerlo que la cuenta del agente de SQL Server

Indicamos que cree la publicación al finalizar el asistente...

Asignamos un nombre a la publicación y finalizamos el asistente.

Al finalizar el asistente, vemos que nos crea correctamente la publicación, y podemos comprobar el número de objetos que serán replicados.

Desde el Management Studio en la sección Replication > Local Publications veremos la nueva publicación que acabamos de crear

Bien, ahora ya desde el servidor de Desarrollo, es decir, aquel que recibirá la réplica de la base de datos, tendremos que crear una Nueva Suscripción

Indicamos el servidor SQL Server que publicará la réplica

Seleccionamos la réplica una vez establecida la conexión, ya que un mismo publicador puede tener más de una publicación...

Y finalmente seleccionamos dónde y cómo queremos que se comporte el agente de distribución. Éste puede ejecutarse de forma centralizada, o de forma individual en cada suscriptor. Como siempre, cada opción tiene sus pros y sus contras...

Definimos el suscriptor y la base de datos que recibirá la réplica

Definimos los métodos/credenciales de conexión al Distribuidor y Suscriptor

Parametrizamos la frecuencia y método de sincronización del agente

Definimos el método de inicialización de la Suscripción para con el Snapshot de la publicación

Finalmente creamos la Suscripción

Y por último, comprobamos desde el Replication Monitor, comprobamos que la réplicas se están ejecutando correctamente. En este ejemplo, podemos observar cómo en la última replicación, el sistema a entregado un total de 352 transacciones.

De esta manera, hemos conseguido proveer al equipo de Desarrollo de un entorno igual que el de Producción, donde podrán realizar los Desarrollos con información real.

#Windowsserver #SQLServer #ReplicaciónAD

ierrea.com, el Blog del IT Manager, by Ignacio Errea Ochoa
  • LinkedIn Social Icon
  • Facebook Social Icon
  • Twitter Social Icon
  • RSS Social Icon
  • Google+ Social Icon