martes, 10 de noviembre de 2020

LOG Shipping (Transvase de Registros) en SQL SERVER

 Log Shipping es una técnica de alta disponibilidad y recuperación de desastres que nos permitirá, restaurar una base de datos almacenada en otra instancia con el log de transacciones de la primera, de manera que siempre existan dos bases de datos, relativamente iguales, no confundir con las bases de espejo, ya que esa es una técnica distinta con características distintas.


Ventajas y desventajas


Ventajas


  • Confiable
  • Fácil de configurar y mantener
  • Posibilidad de conmutación por error de SQL SERVER
  • Los datos pueden ser copiados en más de una localización.
  • Bajos costos en recursos humanos y servidor
  • Se puede complementar con otras opciones de recuperación de desastres


Desventajas


  • Se necesita administrar todas las bases de datos por separado
  • No hay posibilidad de una conmutación por error automática, tiene que ser manual
  • La base de datos secundaria, no es totalmente legible mientras se restaura
  • Los datos no son exactamente idénticos todo el tiempo, pues funciona mediante JOB, por lo cual el tiempo que tarde en ejecutarse el proceso, los datos no serán los mismos a la base de datos principal.

Configurando Log Shipping


Para configurar Log Shipping se necesitan varias cosas:
  1. Dos instancias: la primera, la principal donde estará la base de datos de producción, y la secundaria donde estará la base de datos de reserva por llamarlo de un modo en caso de algún desastre en la instancia o servidor principal
  2. Una carpeta compartida para guardar los respaldos de la base de datos principal y cuyo acceso pueda ser leído por la instancia secundaria
  3. Una carpeta en la instancia secundaria, donde copiar los archivos de log.

El proceso


  • La base de datos realiza un respaldo, ya sea full o transaccional y lo coloca en la carpeta compartida.
  • El servidor secundario accede a la carpeta compartida y copia a la carpeta local el respaldo que generó el servidor principal
  • El servidor secundario restaura la base de datos con el archivo que está en la carpeta local
Todo este proceso se realiza mediante job, así que podremos configurar el tiempo entre respaldos, el tiempo entre respaldos, son los registros que se perderán en caso de algún desastre en el servidor principal



Creando carpeta compartida en el servidor principal


Vamos a partir, de que SQL SERVER, ya esta configurado y funcionando en ambas instancias, ahora, vamos a crear una carpeta y la vamos a compartir, esto lo haremos en el servidor principal, en mi caso se llamará BD




Creando carpeta en el servidor secundario


Vamos a crear una carpeta en el servidor secundario, en este caso la llamaré Log Shipping



Creando log shipping


Para configurar una base de datos para Log Shipping, daremos click derecho sobre la base de datos, y seleccionaremos la opción Tareas, seguido de la opción, Ship Transaction Log


Nos aparece la siguiente pantalla de configuración, donde hay que ingresar algunas configuraciones y parámetros importantes:

En el botón Backup Setting, nos permitirá configurar la frecuencia con la cual se generará el respaldo, donde esta la carpeta compartida, a donde se copiará el respaldo, así como la carpeta local.


Dentro de la configuración de respaldo, tenemos otros parámetros a configurar.

Network path: En esta ruta colocaremos la carpeta compartida, en esta carpeta, se guardarán los respaldos realizados.

En el siguiente campo, pondremos la ruta local, en caso de que esa ruta compartida esté en una carpeta.
del mismo server.

Después configuraremos cada cuando deseamos borrar los respaldos, y por ultimo configurar el tiempo que tardará en enviar una alerta si no se ha realizado respaldo cada cierto tiempo y por último configurar el job, que en mi caso, quiero que se ejecute cada 2 minutos








Daremos clic en el botón Add para agregar la instancia donde se encontrará nuestra copia de la base de datos.

Configuraremos el server destino, y le indicaremos la base de datos a la cual vaciaremos el log, y seleccionaremos la opción de restore, en mi caso será la primera la cual es generar un backup full y restaurarlo en el destino.


En la pestaña Copy files:

Colocaremos la ruta local donde se copiaran los respaldos de log, de esta ruta la base de datos secundaria, tomará los archivos para restaurar y configuraremos el horario de la tarea, para copiar cada 2 minutos, los mismos que respalda.


En la pestaña Restore Transaction Log:

Seleccionaremos el status de la base de datos de destino al momento de restaurar, yo la puse como stand by, ya que en recovery mode estaría inaccesible, en stand by, se puede acceder, pero en modo de solo lectura, también, marque la casilla para desconectar a los usuarios en caso de que haya alguno conectado al momento de restaurar. Por último configuramos el horario del job y lo pondré también en 2 minutos.



Ahora falta comprobar, vamos a crear una tabla en la base de datos principal.

En primera instancia, podemos observar, como la ruta Log Shipping tiene muchos respaldos, respaldos que se están realizando cada dos minutos


Vamos a crear una tabla en la base de datos principal

USE prueba

GO

 

CREATE TABLE TABLA_PRUEBA (

id INT PRIMARY KEY  IDENTITY,

NOMBRE VARCHAR(MAX),

CAMPO1 VARCHAR(MAX),

CAMPO2 VARCHAR(MAX))

 

INSERT INTO Tabla_Prueba (NOMBRE, CAMPO1, CAMPO2) VALUES('EMMANUEL', 'CAMPO1', 'CAMPO2')




Vamos a esperar dos minutos y vemos como la tabla y los datos, se encuentran tanto en la base principal, como en la secundaria.

Como ven esta es la manera para configurar Log Shipping, una herramienta bastante útil. Espero haya sido de su agrado y utilidad este post, espero compartan, comenten o den clic a algún anuncio de su interes.

Saludos

Referencias

databases/security/auditing/create-a-server-audit-and-database-audit-specification?view=sql-server-ver15#:~:text=La%20auditor%C3%ADa%20de%20una%20instancia,se%20producen%20en%20el%20sistema.&text=El%20objeto

Stankovic, I. (18 de 12 de 2015). SqlShack. Obtenido de SqlShack: https://www.sqlshack.com/es/que-es-el-transvase-de-registros-sql-server/

técnico, M. b. (30 de 05 de 2012). Mi blog Técnico. Obtenido de https://miblogtecnico.wordpress.com/2012/05/30/alta-disponibilidad-con-log-shipping-en-sql-server/





No hay comentarios.:

Publicar un comentario

LOG Shipping (Transvase de Registros) en SQL SERVER

 Log Shipping es una técnica de alta disponibilidad y recuperación de desastres que nos permitirá, restaurar una base de datos almacenada en...