Este artículo explica el proceso de implementación paso a paso del trasvase de registros de SQL Server. Es la solución de recuperación ante desastres a nivel de base de datos que es fácil de configurar y mantener.
El envío de registros consta de tres pasos:
- Generar la copia de seguridad del registro en la base de datos principal.
- Copie la copia de seguridad en la ubicación de la red o en el directorio específico del servidor secundario.
- Restaurar la copia de seguridad del registro en el servidor secundario.
La tecnología de trasvase de registros realiza los pasos descritos anteriormente mediante el uso de trabajos del agente de SQL Server. Durante el proceso de configuración, el asistente de trasvase de registros crea esos trabajos en los servidores principal y secundario.
El envío de registros puede realizarse en dos modos operativos.
- Modo de restauración . El trabajo de SQL restaura las copias de seguridad del registro de transacciones en la base de datos secundaria. El estado de la base de datos es RESTORING y no es accesible.
- Modo de espera . El trabajo de SQL restaura las copias de seguridad del registro de transacciones en la base de datos secundaria, pero la base de datos puede permanecer en modo de solo lectura. Por lo tanto, los usuarios pueden realizar operaciones de lectura en él. Mediante esta opción, podemos descargar la aplicación de informes.
Nota:el modo de espera tiene un inconveniente:la base de datos no está disponible durante la ejecución del trabajo de restauración. Todos los usuarios conectados a la base de datos deben desconectarse durante ese proceso. De lo contrario, el trabajo de restauración puede retrasarse .
La principal desventaja del trasvase de registros es la ausencia de compatibilidad con conmutación por error automática. Para realizar una conmutación por error, debe ejecutar los siguientes pasos:
- Generar una copia de seguridad del registro final y copiarla en un servidor de base de datos secundario.
- Detenga todos los trabajos de trasvase de registros en el servidor principal.
- Restaurar el registro en el servidor secundario.
Este proceso puede retrasar la disponibilidad de la base de datos secundaria.
Ahora, procedemos al examen del proceso de implementación paso a paso. En primer lugar, hemos preparado la estación de trabajo configurándola de la siguiente manera:
Nombre del servidor | Rol |
SQL01 | Servidor principal |
SQL02 | Servidor secundario |
iSCSI\SQL2017 | Servidor de supervisión |
\\dominio\Copias de seguridad de envío de registros | Network Share para copiar las copias de seguridad |
Configurar el servidor principal
El SQL01 actúa como un servidor principal y la base de datos. Vamos a configurar el envío de registros entre la base de datos AdventureWorks2017.
Para configurar el envío de registros, conéctese a la instancia SQL01:
- Abrir SQL Server Management Studio
- Expandir base de datos
- Haga clic derecho en AdventureWorks2017
- Pase el cursor sobre Tareas
- Haga clic en Enviar registros de transacciones.
Las Propiedades de la base de datos se abre el cuadro de diálogo.
Para habilitar el trasvase de registros, haga clic en Habilitar esto como base de datos principal en una configuración de trasvase de registros opción.
Para configurar la programación de la copia de seguridad del registro de transacciones para el envío de registros, haga clic en Configuración de la copia de seguridad .
Se abre un cuadro de diálogo, "Configuración de copia de seguridad del registro de transacciones".
En el cuadro de diálogo, especifique el recurso compartido de red donde desea copiar las copias de seguridad del registro de transacciones:la Ruta de red a la carpeta de copia de seguridad caja de texto. Puede determinar el período de retención de la copia de seguridad en Eliminar archivos anteriores a indicado en el cuadro de texto. Si el trabajo de respaldo falla o el archivo de respaldo no ocurre durante el tiempo especificado en el cuadro de texto, SQL Server genera una alerta.
En el trasvase de registros, SQL Server copia las copias de seguridad de los archivos de registro en el recurso compartido de red. El asistente crea automáticamente un trabajo de copia de seguridad durante el proceso de implementación. También crea una programación automáticamente, pero puede cambiarla haciendo clic en el botón Programar.
En mi caso, he cambiado el nombre del trabajo de copia de seguridad para identificarlo. El nombre del trabajo es LogShipping_Backup_AdventureWorks2017 .
No realicé ningún cambio en la programación del trabajo ni en la configuración de compresión de la copia de seguridad.
Configurar el servidor secundario
Para agregar el servidor secundario y la base de datos, haga clic en "Agregar" en las Propiedades de la base de datos cuadro de diálogo.
Un cuadro de diálogo llamado Configuración de la base de datos secundaria abrirá. Debemos conectarnos al servidor de base de datos secundario. Para hacerlo, haga clic en "Agregar".
Se abre un cuadro de diálogo. Introduzca el nombre del servidor y haga clic en Conectar :
Configuración de los ajustes de la base de datos secundaria
Inicializar base de datos secundaria
En la pestaña Inicializar base de datos secundaria, puede configurar cualquiera de las siguientes tres opciones para restaurar la base de datos:
- Si la base de datos no existe en el servidor secundario, puede generar una copia de seguridad completa y restaurarla en el servidor secundario. En este escenario, puede usar la primera opción.
- Si hay una copia de seguridad completa de la base de datos generada por otros trabajos de copia de seguridad, o si ya tiene una, puede restaurarla en el servidor secundario. En este escenario, puede elegir la segunda opción.
- Si ha restaurado la base de datos secundaria con el estado NORECOVERY, puede elegir la tercera opción.
Copiar archivos
En Copiar archivos pestaña, puede especificar el directorio de destino para la ubicación de los archivos de copia de seguridad copiados. El período de retención también se define allí.
El asistente crea un trabajo de SQL para copiar archivos en el directorio de destino. La carpeta de destino de la copia de seguridad es \\domain\Log Shipping Backups. El nombre del trabajo de copia es LogShipping_Copy_SQL01_AdventureWorks2017 .
Restaurar registro de transacciones
En el registro de transacciones de restauración pestaña, puede especificar el modo de base de datos. Si desea mantener la base de datos en modo de solo lectura, seleccione Modo de espera. o elige el modo sin recuperación .
En esta demostración, mantenemos el estado de la base de datos como NORECOVERY. Puede especificar el retraso de la restauración de la copia de seguridad y configurar alertas para las copias de seguridad no restauradas dentro de un intervalo específico. En nuestro caso, no utilizamos la configuración predeterminada.
El nombre del trabajo de restauración es LogShipping_Restore_SQL01_AdventureWorks2017.
Una vez que la configuración esté lista, haga clic en Aceptar para guardar los cambios.
Como puede ver, el servidor secundario y la base de datos se agregaron en "Cuadrícula de instancias y bases de datos del servidor secundario ” en las Propiedades de la base de datos pantalla.
Configurar instancia de supervisión
Si desea configurar la instancia del servidor de supervisión, coloque una marca de verificación para Usar una instancia de servidor de supervisión . Para agregar la instancia del monitor, haga clic en Configuración .
Vamos a utilizar la instancia iscsi\SQL2017 como servidor de supervisión del envío de registros.
En la Configuración del monitor de trasvase de registros cuadro de diálogo, especifique el nombre en Supervisar la instancia del servidor cuadro de texto.
Usamos el sa cuenta para monitorear el envío de registros. Por lo tanto, debe proporcionar sa como usuario y contraseña. También puede especificar el período de retención de las alertas de monitoreo y el historial.
Aquí, usamos la configuración predeterminada. El nombre del trabajo de alerta es LogShipping_Alert_iscsi\sql2017 .
Haga clic en Aceptar para guardar la configuración y cerrar el cuadro de diálogo.
Puede generar un script T-SQL para toda la configuración haciendo clic en Configuración de script botón. Copie el script de configuración en el portapapeles o en el archivo, o ábralo en una nueva ventana del editor de consultas.
No queremos escribir la acción. Puede ignorar este paso.
Haga clic en Aceptar para guardar la configuración de trasvase de registros y se iniciará el proceso:
Una vez que se configura el envío de registros, puede ver el cuadro de diálogo de éxito:
Escenario de conmutación por error de prueba
USE [AdventureWorks2017]
GO
CREATE TABLE [Person](
[BusinessEntityID] [int] NOT NULL,
[PersonType] [nchar](2) NOT NULL,
[NameStyle] [dbo].[NameStyle] NOT NULL,
[Title] [nvarchar](8) NULL,
[FirstName] [dbo].[Name] NOT NULL,
[MiddleName] [dbo].[Name] NULL,
[LastName] [dbo].[Name] NOT NULL,
[Suffix] [nvarchar](10) NULL,
[EmailPromotion] [int] NOT NULL,
[ModifiedDate] [datetime] NOT NULL,
CONSTRAINT [PK_Person_BusinessEntityID] PRIMARY KEY CLUSTERED
(
[BusinessEntityID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Ejecute la siguiente consulta para insertar datos de demostración:
insert into [Person]([BusinessEntityID],[PersonType],[NameStyle],[Title],[FirstName] ,[MiddleName],[LastName] ,[Suffix] ,[EmailPromotion],[ModifiedDate])
select top 10 [BusinessEntityID],[PersonType],[NameStyle],[Title],[FirstName] ,[MiddleName],[LastName] ,[Suffix] ,[EmailPromotion],[ModifiedDate]
from Person.Person
Para realizar la conmutación por error, realice una copia de seguridad del registro final de la base de datos adventureworks2017. Ejecute la siguiente consulta:
Backup Log adventureworks2017 to disk='\\domain\LogShippingBackups\Tail_Log_Backup.trn' with norecovery
Conéctese al SQL02 (servidor secundario) y restaure la copia de seguridad del registro final mediante RESTAURAR CON RECUPERACIÓN. Ejecuta el siguiente código:
RESTORE LOG [AdventureWorks2017] FROM DISK = N'\\domain\LogShippingBackups\Tail_Log_Backup.trn' WITH RECOVERY
Una vez que la copia de seguridad del registro final se restablezca correctamente, ejecute la consulta para verificar que los datos se copian en el servidor secundario:
Select * from person
Resultado de consulta:
Como ve, los datos se restauran en el servidor secundario.
Conclusión
En este artículo, hemos explicado el proceso de envío de registros de SQL Server y cómo configurarlo. También demostramos el proceso de conmutación por error paso a paso del trasvase de registros.