Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
La copia de seguridad de SQL Server mediante instantáneas de archivos utiliza instantáneas de Azure para proporcionar copias de seguridad casi instantáneas (y restauraciones más rápidas) de archivos de base de datos almacenados en Azure Blob Storage. Utiliza copias de seguridad con instantáneas de archivos para simplificar tus políticas de copia de seguridad y restauración.
Para más información sobre cómo almacenar archivos de base de datos en Azure Blob Storage, consulte SQL Server data files in Microsoft Azure.
¿Ya tiene una cuenta de Azure? Visita SQL Server en Azure Virtual Machines para crear una máquina virtual que tenga SQL Server preinstalado.
Usar instantáneas de Azure para hacer copias de seguridad de los archivos de base de datos almacenados en Azure
¿Qué es una copia de seguridad de instantáneas de archivos en SQL Server?
Una copia de seguridad de instantáneas de archivo es un conjunto de instantáneas de Azure de los blobs que contienen los archivos de la base de datos, además de un archivo de copia de seguridad con punteros a esas instantáneas de archivos. Cada instantánea de archivo reside en el contenedor junto con el blob base.
Puedes escribir el archivo de copia de seguridad en URL, disco o cinta, pero deberías hacer copias de seguridad a URL siempre que sea posible. Para más información, consulta BACKUPSQL Server backup a URL para Azure Blob Storage.
Eliminar el blob base invalida el conjunto de respaldo. No puedes soltar un blob que contenga instantáneas de archivos a menos que elijas explícitamente eliminar el blob junto con todas sus instantáneas de archivo. Eliminar una base de datos o un archivo de datos no elimina el blob base ni ninguna de sus instantáneas de archivos, y eliminar el archivo de copia de seguridad no elimina ninguna de las instantáneas del conjunto de respaldo. Para eliminar un conjunto de copias de seguridad de instantáneas de archivo, utilice el procedimiento almacenado del sistema sys.sp_delete_backup.
Copia de seguridad completa de la base de datos: Una copia de seguridad completa de instantáneas de archivo toma una instantánea de Azure de cada archivo de datos y registro en la base de datos, establece la cadena de copia de seguridad de registros de transacciones y escribe las ubicaciones de instantáneas de archivo en el archivo de respaldo.
Copia de seguridad del registro de transacciones: Una copia de seguridad de registro de transacciones en instantánea de archivo toma una instantánea de archivo de cada archivo de la base de datos (no solo el registro de transacciones), registra las ubicaciones de instantáneas en el archivo de copia de seguridad y trunca el registro de transacciones.
Importante
Tras la copia de seguridad completa inicial que establece la cadena de respaldo de registros de transacciones (que a su vez puede ser una copia de seguridad de instantáneas de archivos), solo necesitas copias de seguridad de registros de transacciones. Cada conjunto de copia de seguridad de archivo de registro de transacciones contiene instantáneas de archivo de cada archivo de base de datos, por lo que puedes usarlo tanto para una restauración de bases de datos como para una restauración de registros. No necesitas copias de seguridad completas o diferenciales extra porque Azure Blob Storage gestiona las diferencias entre cada snapshot de archivo y el estado actual del blob base.
Para un tutorial sobre cómo usar SQL Server con Azure Blob Storage, consulta el Tutorial: Usa Azure Blob Storage con SQL Server.
Restaurar usando copias de seguridad de instantáneas de archivos
Cada conjunto de copia de seguridad de instantáneas de archivo contiene una instantánea de archivo de cada archivo de base de datos, por lo que una restauración necesita como máximo dos conjuntos adyacentes de copia de seguridad de instantáneas de archivo. Este requisito es válido tanto si el conjunto de copia de seguridad proviene de una copia de seguridad completa de la base de datos como de una copia de seguridad de registros. Con la copia de seguridad tradicional en streaming, el proceso de restauración necesita la copia de seguridad completa, una copia de seguridad diferencial y una o más copias de seguridad en los registros de transacciones. El paso de recuperación es el mismo para ambos enfoques.
Hasta el tiempo de cualquier conjunto de copia de seguridad: Para restaurar una base de datos al momento de un conjunto específico de copia de seguridad con instantáneas de archivos, RESTORE DATABASE solo se necesita ese conjunto de copia de seguridad y los blobs base. Como RESTORE DATABASE funciona con un conjunto de copia de seguridad de archivo de registro de transacciones y instantáneas, normalmente se utiliza un conjunto de respaldo de registro de transacciones y rara vez se utiliza un conjunto completo de respaldo de base de datos. Vea el ejemplo más adelante en este artículo.
A un punto en el tiempo entre dos conjuntos de copia de seguridad de instantáneas de archivos: Para restaurar una base de datos a un punto específico entre dos conjuntos de respaldo de registros de transacciones adyacentes, RESTORE DATABASE solo se necesitan dos conjuntos de respaldo de registros de transacciones: uno de antes del momento en el que quieres restaurar la base de datos y otro posterior. Ejecuta RESTORE DATABASE ... WITH NORECOVERY usando el conjunto de copia de seguridad anterior y luego RESTORE LOG ... WITH RECOVERY con el posterior. Utiliza el STOPAT argumento para especificar el momento en que detener la recuperación de la copia de seguridad del registro de transacciones. Vea el ejemplo más adelante en este artículo.
Mantenimiento de conjuntos de copia de seguridad de archivos
Eliminar un conjunto de copia de seguridad de instantáneas de archivo: No puedes sobrescribir un conjunto de copia de seguridad de instantáneas de archivo con este FORMAT argumento. El FORMAT argumento no está permitido porque puede dejar huérfanos de snapshots de archivos desde la copia de seguridad original. Para eliminar un conjunto de copia de seguridad, utiliza el sys.sp_delete_backup procedimiento almacenado del sistema. Elimina el archivo de copia de seguridad y todas las instantáneas de archivo del conjunto. Otros métodos de eliminación pueden eliminar el archivo de copia de seguridad pero dejar las instantáneas de archivo atrás.
Eliminar snapshots de archivos de copia de seguridad huérfanos: Podrías acabar con snapshots huérfanos si eliminas el archivo de copia sin sys.sp_delete_backup, o si descartas un archivo de base de datos o datos mientras sus blobs aún tienen snapshots de copia de seguridad asociados. Para encontrar candidatos, utiliza la sys.fn_db_backup_file_snapshots función del sistema para listar cada instantánea de archivo de los archivos de la base de datos. Para ver qué instantáneas de archivos pertenecen a un conjunto de copias de seguridad específico, utiliza el procedimiento almacenado del RESTORE FILELISTONLY sistema. Luego elimina a un huérfano con el sys.sp_delete_backup_file_snapshot procedimiento almacenado del sistema. Consulta los ejemplos más adelante en este artículo.
Para obtener más información, consulte:
- sp_delete_backup
- sys.fn_db_backup_file_snapshots
- sp_delete_backup_file_snapshot
- RESTORE Sentencias - FILELISTONLY
Consideraciones y limitaciones
Almacenamiento premium: Cuando se utiliza almacenamiento premium, se aplican las siguientes limitaciones:
No puedes almacenar el archivo de copia de seguridad usando almacenamiento premium.
No puedes poner la frecuencia de las copias de seguridad para que sea más corta de 10 minutos.
Puedes almacenar hasta 100 instantáneas.
Debe usar
RESTORE WITH MOVE.Para más información sobre premium storage, véase Premium Storage: High-Performance Almacenamiento para cargas de trabajo de Azure máquinas virtuales.
Cuenta de almacenamiento única: La instantánea de archivo y los blobs de destino deben usar la misma cuenta de almacenamiento.
Modelo de recuperación masiva: Si usas el modelo de recuperación masiva con una copia de seguridad del log de transacciones que contiene transacciones mínimamente registradas, no puedes restaurar el log (incluida la recuperación en un momento en el tiempo) desde esa copia de seguridad. En su lugar, restaura la base de datos al momento del conjunto de copia de seguridad de instantáneas de archivos. La misma limitación se aplica a la copia de seguridad en streaming.
Restauración en línea: No puedes realizar una restauración en línea desde una copia de seguridad de snapshot de archivos. Para más información sobre la restauración con conexión, vea Restauración con conexión (SQL Server).
Facturación: La copia de seguridad de snapshot de archivos en SQL Server añade cargos a medida que los datos cambian. Para más información, vea Introducción a cómo las instantáneas pueden incrementar los costos.
Archival: Puedes archivar una copia de seguridad de snapshot de archivo en Azure Blob Storage o en copia de seguridad en streaming. Para Azure Blob Storage, copia las instantáneas del conjunto de copia de seguridad de instantáneas de archivo en blobs separados. Para una copia de seguridad en streaming, restaura la copia de seguridad de snapshot de archivos como una nueva base de datos y luego realiza una copia de seguridad en streaming regular con compresión y/o cifrado. Puedes conservar el archivo todo el tiempo que quieras, independiente de los blobs base.
Importante
Mantener múltiples copias de seguridad de instantáneas de archivos supone solo una pequeña sobrecarga de rendimiento, pero mantener demasiadas puede afectar al rendimiento de E/S en la base de datos. Guarda solo las copias de seguridad de snapshots de archivos que necesites para alcanzar tu objetivo de punto de recuperación.
Haga una copia de seguridad de la base de datos y del registro de transacciones mediante una copia de seguridad con instantáneas de archivo
El siguiente ejemplo utiliza una copia de seguridad de instantáneas de archivo para respaldar la AdventureWorks2025 base de datos de ejemplo en una URL.
-- To permit log backups, before the full database backup, modify the database
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE AdventureWorks2025
SET RECOVERY FULL;
GO
-- Back up the full AdventureWorks2025 database.
BACKUP DATABASE AdventureWorks2025
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025.bak'
WITH FILE_SNAPSHOT;
GO
-- Back up the AdventureWorks2025 log using a timestamp in the backup file name.
DECLARE @Log_Filename AS VARCHAR (300);
SET @Log_Filename = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_Log_'+
REPLACE (REPLACE (REPLACE (CONVERT (VARCHAR (40), GETDATE (), 120), '-','_'),':', '_'),' ', '_') + '.trn';
BACKUP LOG AdventureWorks2025
TO URL = @Log_Filename WITH FILE_SNAPSHOT;
GO
Restauración a partir de una copia de seguridad de instantáneas de archivos de SQL Server
El siguiente ejemplo restaura la AdventureWorks2025 base de datos utilizando un conjunto de copia de seguridad instantánea de archivo de registro de transacciones y muestra una operación de recuperación. Puedes restaurar una base de datos desde un único conjunto de copia de seguridad de archivo de registro de transacciones y snapshot.
RESTORE DATABASE AdventureWorks2025 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_16_00_00.trn'
WITH RECOVERY, REPLACE;
GO
Restauración a partir de una copia de seguridad de instantáneas de archivos de SQL Server a un momento dado
El siguiente ejemplo utiliza dos conjuntos de copia de seguridad de archivo de registro de transacciones para restaurar la AdventureWorks2025 base de datos a su estado en un momento especificado, y muestra una operación de recuperación.
RESTORE DATABASE AdventureWorks2025
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_16_00_00.trn'
WITH NORECOVERY,
REPLACE;
GO
RESTORE LOG AdventureWorks2025
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025_2026_05_18_18_00_00.trn'
WITH RECOVERY,
STOPAT = 'May 18, 2026 5:35 PM';
GO
Eliminación de un conjunto de copia de seguridad de instantáneas de archivos de base de datos
Para eliminar un conjunto de copias de seguridad de instantáneas de archivo, utilice el procedimiento almacenado del sistema sys.sp_delete_backup. Incluye el nombre de la base de datos para que el procedimiento verifique que el conjunto de respaldo es una copia de seguridad para esa base de datos. Si omites el nombre de la base de datos, el procedimiento se salta esa comprobación y elimina el conjunto de copia de seguridad y sus instantáneas de archivos. Para más información, vea sp_delete_backup.
Advertencia
Si eliminas un conjunto de copia de seguridad de instantáneas de archivo de otra manera, por ejemplo, desde el portal de Azure o el nodo de Azure Storage en el Explorador de objetos de SQL Server Management Studio, las instantáneas de archivo permanecen. Esas herramientas solo eliminan el archivo de respaldo, que contiene los punteros a las instantáneas del archivo. Para encontrar instantáneas de archivo sobrantes, utiliza la sys.fn_db_backup_file_snapshots función del sistema y luego elimina cada una con el sys.sp_delete_backup_file_snapshot procedimiento almacenado del sistema.
El siguiente ejemplo elimina un conjunto de copia de seguridad de instantáneas de archivo, incluyendo su archivo de copia de seguridad y todas las instantáneas de archivo del conjunto.
EXECUTE sys.sp_delete_backup
'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025.bak',
'AdventureWorks2025';
GO
Ver instantáneas de archivos de copia de seguridad de la base de datos
Para listar las instantáneas del blob base de cada archivo de base de datos, utilice la sys.fn_db_backup_file_snapshots función de sistema. Puedes encontrar instantáneas de archivos de copia de seguridad que permanecen cuando algo distinto sys.sp_delete_backup a la eliminación del archivo de copia de seguridad para un conjunto de copia de seguridad de instantáneas de archivo. Para ver qué instantáneas de archivo pertenecen a un conjunto de copias de seguridad intacto, se utiliza RESTORE FILELISTONLY para listar las instantáneas de archivo a las que hace referencia cada copia de seguridad. Para más información, véase sys.fn_db_backup_file_snapshots y RESTORE Declaraciones - FILELISTONLY.
El siguiente ejemplo lista todas las instantáneas de archivos de copia de seguridad para una base de datos.
--Either specify the database name or set the database context
USE AdventureWorks2025;
SELECT *
FROM sys.fn_db_backup_file_snapshots(NULL);
GO
SELECT *
FROM sys.fn_db_backup_file_snapshots('AdventureWorks2025');
GO
Eliminar una instantánea individual de un archivo de copia de seguridad de base de datos
Para eliminar una instantánea individual de un archivo de respaldo de un blob base de base de datos, utiliza el sys.sp_delete_backup_file_snapshot procedimiento almacenado del sistema. Úsalo principalmente para limpiar instantáneas de archivos huérfanos que quedan cuando un proceso distinto sys.sp_delete_backup a la copia de seguridad elimina el archivo. Para más información, consulte sp_delete_backup_file_snapshot.
Advertencia
Eliminar una instantánea individual de archivo que pertenece a un conjunto de copias de seguridad de instantáneas invalida el conjunto de copia de seguridad.
El siguiente ejemplo elimina una instantánea de un archivo de respaldo. Puedes obtener la URL desde sys.fn_db_backup_file_snapshots.
EXECUTE sys.sp_delete_backup_file_snapshot
N'AdventureWorks2025',
N'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2025Data.mdf?snapshot=2026-05-29T21:31:31.6502195Z';
GO
Contenido relacionado
- Tutorial de : Uso de Azure Blob Storage con SQL Server