Copia de seguridad diferencial de SQL Server

Copia de seguridad diferencial de SQL Server

En SQL Server, una copia de seguridad diferencial es un tipo de copia de seguridad que captura los cambios/modificaciones realizadas en una base de datos desde la última copia de seguridad completa.

La copia de seguridad diferencial escanea la copia de seguridad completa, también conocida como la base de la copia de seguridad diferencial, y la compara con el estado de la base de datos actual. Luego captura los cambios y los almacena.

Una copia de seguridad completa puede funcionar como base para varias copias de seguridad diferenciales, incluidas copias de seguridad de bases de datos, copias de seguridad parciales y copias de seguridad de archivos.

Ventajas

La principal ventaja de las copias de seguridad diferenciales es la velocidad. Además, dado que las copias de seguridad diferenciales solo los cambios existentes, reduce el tiempo y el espacio requeridos para hacer una copia de seguridad de los datos en el servidor.

Esto puede, a su vez, ayudar a aumentar la frecuencia a la que se emiten las copias de seguridad en una instancia de servidor SQL dada.

Otra ventaja de las copias de seguridad diferenciales es la cantidad de copias de seguridad de registro que necesita para restaurar.

SQL Server crea copia de seguridad diferencial

Hay dos métodos principales que puede usar para crear una copia de seguridad diferencial en SQL Server:

    1. Uso de SQL Server Management Studio - Gráfico
    2. Uso de comandos T-SQL

Ilustramos cómo usar cada uno de los métodos anteriores.

Base de datos de muestra

Creemos datos de muestra para capturar mejor el uso e ilustración de las copias de seguridad diferenciales.

Comience a cambiar a la base de datos maestra:

Usar maestro;


Luego, ejecute las consultas según lo dispuesto:

Drop Base de datos si existe resolución;
crear resolución de base de datos;
usar resolución;
Tabla de caída si existe entradas;
crear entradas de mesa (
ID int no identidad nula (1,
1) Clave primaria,
server_name varchar (50),
server_address varchar (255) no nulo,
compresion_method varchar (100) predeterminado 'ninguno',
size_on_disk float no nulo,
size_compreted flotante,
Total_records int no nulo,
Fecha de init_date
);
insertar
en
Entradas (server_name,
dirección del servidor,
método de compresión,
size_on_disk,
size_comprised,
Total_Records,
init_date)
valores
('Mysql', 'localhost: 3306', 'lz77', 90.66,40.04,560000, '2022-01-02'),
('Redis', 'Localhost: 6307', 'Snappy', 3.55,998.2,100000, '2022-03-19'),
('PostgreSQL', 'Localhost: 5432', 'Pglz', 101.2,98.01,340000, '2022-11-11'),
('Elasticsearch', 'localhost: 9200', 'lz4', 333.2,300.2,1200000, '2022-10-08');


Esto debería crear una nueva base de datos y realizar todas las acciones definidas anteriormente.

Copia de seguridad completa del servidor SQL

Antes de capturar una copia de seguridad diferencial, primero debemos tomar una copia de seguridad de la base de datos completa. Para simplificar, utilizaremos un comando T-SQL para capturar una copia de seguridad de la base de datos completa.

Resolvente de base de datos de respaldo
A disk = 'c: \ Archivos de programa \ Microsoft SQL Server \ MSSQL15.Mssqlserver \ mssql \ backup \ resolver.Copiar'
DENTRO DE ELLA,
Nombre = 'Resolver DB Backup';

Hacer cambios en la base de datos

Una vez que hemos capturado la copia de seguridad de la base de datos completa, necesitamos hacer cambios en la base de datos para capturar una copia de seguridad diferencial.

Podemos hacer esto agregando dos registros más a la tabla de entradas:

insertar
en
Entradas (server_name,
dirección del servidor,
método de compresión,
size_on_disk,
size_comprised,
Total_Records,
init_date)
valores
('MongoDB', 'Localhost: 27017', 'Snappy', 4.55,4.10,620000, '2021-12-12'),
('Apache Cassandra', 'Localhost: 9042', 'ZSTD', 300.3,200.12,10000000, '2020-03-21');


Una vez que se aplican los cambios, podemos ejecutar una copia de seguridad diferencial.

Copia de seguridad diferencial de SQL Server - SSMS

Para tomar una copia de seguridad diferencial de una base de datos dada en SSMS, expanda la carpeta de bases de datos y haga clic con el botón derecho en la base de datos de destino.

Seleccionar tareas -> copia de seguridad.


En la ventana de la base de datos de respaldo, seleccione el tipo de copia de seguridad como diferencial.


Puede agregar los componentes de destino, como archivos y grupos de archivos, bases de datos, etc. En nuestro caso, necesitamos tomar una copia de seguridad de la base de datos diferencial.

Finalmente, configure el archivo de destino y haga clic en Aceptar para procesar la copia de seguridad.

Una vez completado, debería ver un mensaje de éxito como:

Copia de seguridad diferencial de SQL Server - Comando T -SQL

Para tomar una copia de seguridad diferencial de una base de datos dada utilizando declaraciones Transact-SQL:

Base de datos de base de datos Base_name
A disco = path_to_file
Con diferencial;


Ejemplo de uso:

Resolvente de base de datos de respaldo
A disk = 'c: \ Archivos de programa \ Microsoft SQL Server \ MSSQL15.Mssqlserver \ mssql \ backup \ resolver.diff '
Con diferencial;


Esto debería devolver los registros del proceso de copia de seguridad como:

Páginas procesadas de 104 páginas para la base de datos 'resolución', archivo 'resolución' en el archivo 1.
2 páginas procesadas para la base de datos 'resolución', archivo 'resolver_log' en el archivo 1.
Base de datos de respaldo con diferencial procesado con éxito 106 páginas en 0.016 segundos (51.513 MB/seg).


Y ahí lo tienes.

Conclusión

Esta publicación tuvo como objetivo presentarle copias de seguridad diferenciales en SQL Server. También aprendió a capturar copias de seguridad completas y diferenciales usando SSMS y T-SQL.

Esperamos que cumplamos con sus expectativas.