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
Azure SQL Managed Instance
En este artículo se incluyen procedimientos recomendados y sugerencias de solución de problemas para las copias de seguridad y la restauración de SQL Server en el almacenamiento de blobs de Microsoft Azure.
Para obtener más información sobre el uso de Azure Blob Storage para SQL Server operaciones de copia de seguridad o restauración, consulte:
- SQL Server copia de seguridad y restauración con Azure Blob Storage
- Inicio rápido: Copia de seguridad y restauración de SQL en Azure Blob Storage
Administración de copias de seguridad
La lista siguiente incluye recomendaciones generales para administrar copias de seguridad:
Use un nombre de archivo único para cada copia de seguridad para evitar sobrescribir accidentalmente los blobs.
Al crear un contenedor, establezca el nivel de acceso en privado para que solo los usuarios o las cuentas que puedan proporcionar la información de autenticación necesaria pueden leer o escribir los blobs en el contenedor.
Para las bases de datos de SQL Server en una instancia de SQL Server que se ejecuta en una máquina virtual de Azure, utilice una cuenta de almacenamiento en la misma región que la máquina virtual para evitar los costos de transferencia de datos entre regiones. El uso de la misma región también garantiza un rendimiento óptimo para las operaciones de copia de seguridad y restauración.
Una actividad de copia de seguridad con errores puede dar como resultado un archivo de copia de seguridad no válido. Identifique periódicamente las copias de seguridad con errores y elimine los archivos de blob. Para obtener más información, consulte Eliminar archivos de blob de copia de seguridad con arrendamientos activos.
Use la opción para minimizar los
WITH COMPRESSIONcostos de almacenamiento y los costos de transacción de almacenamiento y para reducir el tiempo de copia de seguridad.Establezca los argumentos
MAXTRANSFERSIZEyBLOCKSIZEen los valores descritos en Copia de seguridad de SQL Server a una URL para Azure Blob Storage.Puede realizar copias de seguridad en blobs de bloque con cualquier nivel de redundancia de almacenamiento (por ejemplo, LRS, ZRS, GRS, RA-GRS y RA-GZRS).
Controlar archivos grandes
La operación de copia de seguridad de SQL Server usa varios subprocesos para optimizar la transferencia de datos a Azure Blob Storage. Sin embargo, el rendimiento depende de factores como el ancho de banda de ISV y el tamaño de la base de datos. Si planea realizar copias de seguridad de bases de datos grandes o grupos de archivos desde una base de datos de SQL Server local, pruebe primero el rendimiento. El SLA de Azure para almacenamiento establece unos tiempos máximos de procesamiento para los blobs que deben tenerse en cuenta.
Use la WITH COMPRESSION opción recomendada en la sección Administrar copias de seguridad al realizar copias de seguridad de archivos grandes.
Solucionar problemas al realizar copias de seguridad en una URL o restaurar desde ella
Use las siguientes sugerencias para solucionar errores al realizar copias de seguridad o restaurar desde Azure Blob Storage.
Para evitar errores debidos a opciones no admitidas o a limitaciones, revise las limitaciones y las opciones admitidas para los comandos BACKUP y RESTORE en Copia de seguridad y restauración de SQL Server con Azure Blob Storage.
Error de inicialización
Las copias de seguridad en paralelo en el mismo blob causan que una de las copias de seguridad falle con un Error de inicialización.
No se pudo realizar la solicitud debido a un error de dispositivo de E/S.
Considere la posibilidad de usar COMPRESSION, MAXTRANSFERSIZE, BLOCKSIZE y varios argumentos de URL cuando realice copias de seguridad de bases de datos grandes. Consulte la copia de seguridad de un VLDB en Azure Blob Storage.
El error:
Msg 3202, Level 16, State 1, Line 1
Write on "https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak" failed:
1117(The request could not be performed because of an I/O device error.)
Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.
Una resolución de ejemplo:
BACKUP DATABASE TestDb
TO URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak',
URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_1.bak',
URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_2.bak'
WITH COMPRESSION,
MAXTRANSFERSIZE = 4194304,
BLOCKSIZE = 65536;
La marca de archivo del mensaje en el dispositivo no está alineada
Al restaurar desde una copia de seguridad comprimida, puede aparecer el siguiente error:
SqlException 3284 occurred. Severity: 16 State: 5
Message Filemark on device 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak' is not aligned.
Re-issue the Restore statement with the same blocksize used to create the backupset: '65536' looks like a possible value.
Para resolver este error, vuelva a emitir la RESTORE instrucción con BLOCKSIZE = 65536.
Una actividad de copia de seguridad con errores puede dar como resultado blobs con concesiones activas
Error durante la copia de seguridad porque los blobs tienen una concesión activa: Failed backup activity can result in blobs with active leases.
Si vuelve a intentar una instrucción de copia de seguridad, es posible que la operación de copia de seguridad produzca un error similar al siguiente resultado:
Backup to URL received an exception from the remote endpoint. Exception Message:
The remote server returned an error: (412) There is currently a lease on the blob and no lease ID was specified in the request.
Si intenta ejecutar una instrucción restore en un archivo de blob de copia de seguridad que tiene una concesión activa, la operación de restauración produce un error similar al siguiente mensaje:
Exception Message: The remote server returned an error: (409) Conflict.
Cuando se produce este error, elimine los archivos de blob. Para obtener más información sobre este escenario y cómo corregir este problema, consulte Eliminación de archivos de blobs de copia de seguridad con concesiones activas.
Error 50 del sistema operativo: no se admite la solicitud
Al realizar una copia de seguridad de una base de datos, es posible que vea el error Operating system error 50(The request is not supported.) por los siguientes motivos:
- La cuenta de almacenamiento especificada no es De uso general V1/V2.
- El token de firma de acceso compartido (SAS) tiene un
?símbolo al principio. Si es así, quite el símbolo. - No se puede conectar a la cuenta de almacenamiento desde la máquina actual mediante Explorador de Storage o SQL Server Management Studio (SSMS).
- La política asignada al token SAS ha expirado. Cree una nueva directiva mediante Explorador de Azure Storage y cree un nuevo token de SAS mediante la directiva o modifique la credencial e intente realizar una copia de seguridad de nuevo.
- Falta el certificado raíz en el almacén de certificación raíz de confianza. Para obtener más información, consulte Entidades de Certificación Raíz de Azure.
Errores de autenticación
Realizar copias de seguridad o restaurar desde Azure Blob Storage requiere una credencial que almacene la información de autenticación. SQL Server 2016 (13.x) y las versiones posteriores utilizan un token de firma de acceso compartido (SAS), y el Motor de base de datos de SQL Server asocia automáticamente la credencial a la dirección URL del contenedor.
Los errores relacionados con las credenciales pueden producir los siguientes mensajes de error:
| Número de error | Message |
|---|---|
| 3288 | Credential name <mycredential> does not exist or user does not have permission to access it. |
| 3289 | A Backup device of type URL was specified without a Credential, Backup/Restore operation cannot proceed. |
Para evitar este problema, cree la credencial si no existe. Por ejemplo:
IF NOT EXISTS (SELECT *
FROM sys.credentials
WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>')
CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<SAS_TOKEN>';
La credencial existe, pero la cuenta que ejecuta el comando de copia de seguridad no tiene permisos para acceder a la credencial. Use una cuenta que pertenezca al rol fijo de base de datos db_backupoperator con permisos para modificar cualquier credencial.
La información almacenada en la credencial debe coincidir con los valores de propiedad de la cuenta de almacenamiento Azure que usa en las operaciones de copia de seguridad y restauración.
Errores de proxy
Si usa servidores proxy para tener acceso a Internet, pueden producirse los problemas siguientes:
Limitación de la conexión por los servidores proxy
Los servidores proxy pueden tener una configuración que limite el número de conexiones por minuto. La copia de seguridad en una URL se realiza en múltiples subprocesos y podría superar este límite. Si se supera este límite, el servidor proxy cierra la conexión. Para resolver este problema, cambie la configuración del proxy para que SQL Server no use el proxy. En los ejemplos siguientes se muestran los mensajes de error que puede ver en el registro de errores:
Write on "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak" failed: Backup to URL received an exception from the remote endpoint. Exception Message: Unable to read data from the transport connection: The connection was closed.
A nonrecoverable I/O error occurred on file "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Error could not be gathered from Remote Endpoint.
Msg 3013, Level 16, State 1, Line 2
BACKUP DATABASE is terminating abnormally.
BackupIoRequest::ReportIoError: write failure on backup device 'https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak'. Operating system error Backup to URL received an exception from the remote endpoint. Exception Message: Unable to read data from the transport connection: The connection was closed.
Errores habituales y soluciones
| Problema | Solución |
|---|---|
Error 3063: Write to backup block blob device https://storageaccount/container/name.bak failed. Device has reached its limit of allowed blocks. |
Para solucionar este problema en las copias de seguridad completas o diferenciales, divide el destino de la copia de seguridad en varios archivos. Para todos los tipos de copia de seguridad, use los parámetros siguientes en el comando backup: COMPRESSION, MAXTRANSFERSIZE = 4194304, BLOCKSIZE = 65536. Este error también puede producirse si la copia de seguridad alcanza el tamaño máximo admitido. Por ejemplo, en SQL Server 2022 (16.x) y versiones anteriores, el tamaño máximo de copia de seguridad es de 12,8 TB, calculado como 64 franjas × 50 000 bloques × un tamaño de 4 MBMAXTRANSFERSIZE. |
| Error 3035: La copia de seguridad diferencial falla para una o varias bases de datos. | Este error se produce si ha configurado Azure Backup para hacer una copia de seguridad de bases de datos SQL o de una instantánea de una máquina virtual (VM), lo que no crea una copia de seguridad de solo copia y provoca que fallen las copias de seguridad a petición de su plan de mantenimiento o de un trabajo del Agente SQL. Para corregir este problema, agregue estas claves del Registro a las máquinas virtuales que hospedan instancias de SQL Server en la clave [HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\BCDRAGENT] del Registro y agregue "USEVSSCOPYBACKUP"="TRUE". |
Error 3201: Cannot open backup device '<url>'. Operating system error 50(The request is not supported.) |
Vuelva a generar el token de SAS mediante Explorador de Storage: en Explorador de Azure Storage, cree una nueva directiva y un nuevo token de SAS a partir de esa directiva. Vuelva a crear la credencial mediante el nuevo token de SAS e inténtelo de nuevo. Para obtener más información, consulte problemas conocidos de BACKUP TO URL. Asegúrese de que el grupo de seguridad de red (NSG) o el firewall permiten la conexión entrante y saliente en los puertos 1433 y 443. |
Error 3290: Backup to URL received an exception from the remote endpoint. Exception Message: The remote name could not be resolved. |
Verá este mensaje si se utilizaron una credencial, un secreto o una clave de SAS incorrectas para configurar la copia de seguridad. Quite la credencial y vuelva a crearla. Para SQL Server 2016 (13.x) y versiones posteriores, use SAS. |
Error 3290: Backup to URL received an exception from the remote endpoint. Exception Message: The remote server returned an error: (400) Bad Request. |
Para resolverlo, cambie la versión mínima de TLS de la cuenta de almacenamiento a la 1.0 (Cuenta de almacenamiento>Configuración>Versión mínima de TLS). |
Mensaje de excepción: The remote server returned an error: (412) There is currently a lease on the blob and no lease ID was specified in the request. |
En Explorador de Azure Storage, identifique los blobs de 1 TB, interrumpa la concesión, elimine el blob y vuelva a intentar la operación de copia de seguridad. |
Error: The remote server returned an error: (403) Forbidden. |
Vuelva a crear la cuenta de almacenamiento, la credencial y el token de SAS para resolver el problema. |
| Error de copia de seguridad al usar un plan de mantenimiento. | Los planes de mantenimiento pueden fallar de forma intermitente. Ejecute la copia de seguridad equivalente directamente con T-SQL. Si la copia de seguridad de T-SQL se realiza correctamente, programe como un trabajo de Agente SQL Server en lugar de usar un plan de mantenimiento. |
| Error de copia de seguridad debido a que se han alcanzado los límites de la máquina virtual. | Si recibe errores que indican que se ha alcanzado el límite de IOPS/VM del disco, las copias de seguridad podrían volverse más lentas o fallar. Para supervisar los límites de IOPS/VM, use Azure Monitor Métricas y cambie el tamaño de la máquina virtual o el disco, si es necesario, para corregir el problema. |