Prácticas recomendadas y solución de problemas de Copia de seguridad en URL de SQL ServerSQL Server Backup to URL Best Practices and Troubleshooting

SE APLICA A: síSQL Server síAzure SQL Database (solo Instancia administrada) noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Este tema incluye prácticas recomendadas y sugerencias para la solución de problemas de copias de seguridad y restauraciones de SQL Server en Azure Blob service.This topic includes best practices and troubleshooting tips for SQL Server backup and restores to the Azure Blob service.

Para obtener más información sobre cómo usar el servicio Azure Blob Storage para realizar operaciones de copia de seguridad o restauración de SQL Server, vea:For more information about using Azure Blob storage service for SQL Server backup or restore operations, see:

Administrar copias de seguridadManaging Backups

La lista siguiente incluye recomendaciones generales para administrar copias de seguridad:The following list includes general recommendations to manage backups:

  • Se recomienda usar un nombre de archivo único para cada copia de seguridad con el fin de evitar que se sobrescriban accidentalmente los blobs.Unique file name for every backup is recommended to prevent accidentally overwriting the blobs.

  • Al crear un contenedor, se recomienda establecer el nivel de acceso en privado, de forma que solo los usuarios o las cuentas que puedan proporcionar la información de autenticación necesaria sean capaces de leer o escribir los blobs en el contenedor.When creating a container, it is recommended that you set the access level to private, so only users or accounts that can provide the required authentication information can read or write the blobs in the container.

  • En el caso de las bases de datos de SQL ServerSQL Server en una instancia de SQL ServerSQL Server que se ejecute en una máquina virtual de Azure, use una cuenta de almacenamiento de la misma región que la máquina virtual para evitar costos de transferencia de datos entre ellas.For SQL ServerSQL Server databases on an instance of SQL ServerSQL Server running in an Azure Virtual Machine, use a storage account in the same region as the virtual machine to avoid data transfer costs between regions. El uso de la misma región también garantiza un rendimiento óptimo para las operaciones de copia de seguridad y restauración.Using the same region also ensures optimal performance for backup and restore operations.

  • Una actividad de copia de seguridad con errores puede dar como resultado un archivo de copia de seguridad no válido.Failed backup activity can result in an invalid backup file. Se recomienda identificar periódicamente las copias de seguridad con errores y eliminar los archivos blob.We recommend periodic identification of failed backups and deleting the blob files. Para obtener más información, consulte Deleting Backup Blob Files with Active Leases.For more information, see Deleting Backup Blob Files with Active Leases

  • El uso de la opción WITH COMPRESSION durante la copia de seguridad puede reducir al mínimo los costos de almacenamiento y los costos de transacciones de almacenamiento.Using the WITH COMPRESSION option during backup can minimize your storage costs and storage transaction costs. También puede reducir el tiempo necesario para completar el proceso de copia de seguridad.It can also decrease the time taken to complete the backup process.

  • Establezca los argumentos MAXTRANSFERSIZE y BLOCKSIZE tal y como se recomienda en Copia de seguridad en URL de SQL Server.Set MAXTRANSFERSIZE and BLOCKSIZE arguments as reccomended at SQL Server Backup to URL.

Controlar archivos grandesHandling Large Files

  • La operación de copia de seguridad de SQL ServerSQL Server emplea varios subprocesos para optimizar la transferencia de datos a los servicios Azure Blob Storage.The SQL ServerSQL Server backup operation uses multiple threads to optimize data transfer to Azure Blob storage services. Sin embargo, el rendimiento depende en varios factores, como el ancho de banda del ISV y el tamaño de la base de datos.However the performance depends on various factors, such as ISV bandwidth and size of the database. Si piensa hacer copia de seguridad de bases de datos o grupos de archivos grandes desde una base de datos de SQL Server local, se recomienda que realice primero algunas pruebas de rendimiento.If you plan to back up large databases or filegroups from an on-premise SQL Server database, it is recommended that you do some throughput testing first. El SLA de Almacenamiento de Azure tiene unos tiempos máximos de procesamiento para los blobs que puede tener en cuenta.Azure SLA for Storage has maximum processing times for blobs that you can take into consideration.

  • Use la opción WITH COMPRESSION como se recomienda en la sección Administrar copias de seguridad, ya que es muy importante al realizar la copia de seguridad de archivos grandes.Using the WITH COMPRESSION option as recommended in the Managing Backup section, it is very important when backing up large files.

Resolución de problemas para realizar la copia de seguridad de una dirección URL o una restauración a partir de estaTroubleshooting Backup To or Restore from URL

A continuación se indican algunas formas rápidas de solucionar errores al hacer copia de seguridad o restaurar desde el servicio Azure Blob Storage.Following are some quick ways to troubleshoot errors when backing up to or restoring from the Azure Blob storage service.

Para evitar errores debidos a opciones no admitidas o a limitaciones, consulte la lista de limitaciones y la información de compatibilidad con los comandos BACKUP y RESTORE del artículo Copia de seguridad y restauración de SQL Server con el servicio de Almacenamiento de blobs de Microsoft Azure .To avoid errors due to unsupported options or limitations, review the list of limitations, and support for BACKUP and RESTORE commands information in the SQL Server Backup and Restore with Microsoft Azure Blob Storage Service article.

Errores de autenticación:Authentication Errors:

  • WITH CREDENTIAL es una opción nueva que es necesaria para la copia de seguridad o la restauración con el servicio Azure Blob Storage.The WITH CREDENTIAL is a new option and required to back up to or restore from the Azure Blob storage service. He aquí algunos errores relacionados con las credenciales:Failures related to credential could be the following:

    La credencial especificada en el comando BACKUP o RESTORE no existe.The credential specified in the BACKUP or RESTORE command does not exist. Para evitar este problema, puede incluir instrucciones T-SQL para crear la credencial si no existe ninguna en la instrucción de copia de seguridad.To avoid this issue, you can include T-SQL statements to create the credential if one does not exist in the backup statement. He aquí un ejemplo que puede usar:The following is an example you can use:

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials   
    WHERE credential_identity = 'mycredential')  
    CREATE CREDENTIAL <credential name> WITH IDENTITY = 'mystorageaccount'  
    ,SECRET = '<storage access key> ;  
    
  • La credencial existe pero la cuenta de inicio de sesión usada para ejecutar el comando de copia de seguridad no tiene permisos de acceso a las credenciales.The credential exists but the login account that is used to run the backup command does not have permissions to access the credentials. Use una cuenta de inicio de sesión en el rol db_backupoperator con permisos para Modificar cualquier credencial .Use a login account in the db_backupoperator role with Alter any credential permissions.

  • Compruebe los valores de clave y nombre de la cuenta de almacenamiento.Verify the storage account name and key values. La información almacenada en la credencial debe coincidir con los valores de propiedad de la cuenta de Azure Storage que se usa en las operaciones de copia de seguridad y restauración.The information stored in the credential must match the property values of the Azure storage account you are using in the backup and restore operations.

Errores de copia de seguridad:Backup Errors/Failures:

  • Las copias de seguridad en paralelo en el mismo blob produce errores en una de las copias de seguridad y hacen que aparezca un Error de inicialización .Parallel backups to the same blob cause one of the backups to fail with an Initialization failed error.

  • Use los registros de errores siguientes como ayuda para solucionar problemas de copia de seguridad:Use the following error logs to help with troubleshooting backup errors:

    • Establezca la marca de seguimiento 3051 para activar el registro en un registro de errores específico con el siguiente formato en:Set trace flag 3051 to turn on logging to a specific error log with the following format in:

      BackupToUrl-\<instname>-\<dbname>-action-\<PID>.log, donde \<action> es uno de los siguientes:BackupToUrl-\<instname>-\<dbname>-action-\<PID>.log Where \<action> is one of the following:

      • DBDB
      • FILELISTONLYFILELISTONLY
      • LABELONLYLABELONLY
      • HEADERONLYHEADERONLY
      • VERIFYONLYVERIFYONLY
    • También puede encontrar información si examina el registro de eventos de Windows, en los registros de aplicación con el nombre SQLBackupToUrl.You can also find information by reviewing the Windows Event Log - Under Application logs with the name SQLBackupToUrl.

    • Considere la posibilidad de usar COMPRESSION, MAXTRANSFERSIZE, BLOCKSIZE y varios argumentos de URL cuando realice copias de seguridad de bases de datos grandes.Consider COMPRESSION, MAXTRANSFERSIZE, BLOCKSIZE and multiple URL arguments when backing up large databases. Vea Backing up a VLDB to Azure Blob Storage (Copia de seguridad de una VLDB en Azure Blob Storage)See Backing up a VLDB to Azure Blob Storage

      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.
      
      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;  
      
  • Al restaurar desde una copia de seguridad comprimida, puede aparecer el siguiente error:When restoring from a compressed backup, you might see the following 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. Reissue the Restore statement with the same block size used to create the backupset: '65536' looks like a possible value.

      Para resolver este error, vuelva a emitir la instrucción RESTORE con BLOCKSIZE = 65536 especificado.To solve this error, reissue the RESTORE statement with BLOCKSIZE = 65536 specified.

  • Error durante la copia de seguridad porque los blobs tienen una concesión activa: una actividad de copia de seguridad con errores puede dar como resultado blobs con concesiones activas.Error during backup due to blobs that have active lease on them: Failed backup activity can result in blobs with active leases.

    Si se vuelve a intentar una instrucción de copia de seguridad, la operación de copia de seguridad puede producir un error similar al siguiente:If a backup statement is reattempted, backup operation might fail with an error similar to the following:

    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 se intenta una instrucción de restauración 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:If a restore statement is attempted on a backup blob file that has an active lease, the restore operation fails with an error similar to the following:

    Exception Message: The remote server returned an error: (409) Conflict..

    Cuando se produce ese error, es necesario eliminar los archivos de blob.When such error occurs, the blob files need to be deleted. Para obtener más información sobre este escenario y cómo corregir este problema, vea Deleting Backup Blob Files with Active Leases.For more information on this scenario and how to correct this problem, see Deleting Backup Blob Files with Active Leases

Errores de proxyProxy Errors

Si usa servidores proxy para tener acceso a Internet, pueden producirse los problemas siguientes:If you are using Proxy Servers to access the internet, you may see the following issues:

Limitación de la conexión por parte de los servidores proxy:Connection throttling by Proxy Servers:

Los servidores proxy pueden tener configuraciones que limitan el número de conexiones por minuto.Proxy Servers can have settings that limit the number of connections per minute. Copia de seguridad en URL es un proceso multiproceso y, por tanto, puede sobrepasar este límite.The Backup to URL process is a multi-threaded process and hence can go over this limit. Si esto ocurre, el servidor proxy elimina la conexión.If this happens, the proxy server kills the connection. Para resolver este problema, cambie la configuración de proxy para que SQL Server no utilice el proxy.To resolve this issue, change the proxy settings so SQL Server is not using the proxy. A continuación se muestran algunos ejemplos de los tipos o mensajes de error que puede ver en el registro de errores:Following are some examples of the types or error messages you may see in the error log:

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.

Si activa el registro detallado mediante la marca de seguimiento 3051, puede ver también el mensaje siguiente en los registros:If you turn on the verbose logging using the trace flag 3051 you may also see the following message in the logs:

HTTP status code 502, HTTP Status Message Proxy Error (The number of HTTP requests per minute exceeded the configured limit. Contact your ISA Server administrator.)

Configuración de proxy predeterminada no seleccionada:Default Proxy Settings not picked up:

A veces la configuración predefinida no se realiza correctamente, lo que provoca errores de autenticación de proxy, como el que se muestra a continuación:Sometimes the default settings are not picked up causing proxy authentication errors such as the one shown below:

A nonrecoverable I/O error occurred on file "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Backup to URL received an exception from the remote endpoint. Exception Message: The remote server returned an error: (407)* **Proxy Authentication Required.

Para resolver este problema, cree un archivo de configuración que permita al proceso Copia de seguridad en URL utilizar la configuración de proxy predeterminada mediante los pasos siguientes:To resolve this issue, create a configuration file that allows the Backup to URL process to use the default proxy settings using the following steps:

  1. Cree un archivo de configuración denominado BackuptoURL.exe.config con el contenido XML siguiente:Create a configuration file named BackuptoURL.exe.config with the following xml content:

    <?xml version ="1.0"?>  
    <configuration>   
                    <system.net>   
                                    <defaultProxy enabled="true" useDefaultCredentials="true">   
                                                    <proxy usesystemdefault="true" />   
                                    </defaultProxy>   
                    </system.net>  
    </configuration>  
    
  2. Coloque el archivo de configuración en la carpeta Binn de la instancia de SQL ServerSQL Server.Place the configuration file in the Binn folder of the SQL ServerSQL Server Instance. Por ejemplo, si SQL ServerSQL Server está instalado en la unidad C del equipo, coloque el archivo de configuración en C:\Program Files\Microsoft SQL Server\MSSQL13.\<InstanceName>\MSSQL\Binn.For example, if my SQL ServerSQL Server is installed on the C drive of the machine, place the configuration file in C:\Program Files\Microsoft SQL Server\MSSQL13.\<InstanceName>\MSSQL\Binn.

Consulte tambiénSee Also

Restaurar a partir de copias de seguridad archivadas en Microsoft AzureRestoring From Backups Stored in Microsoft Azure
BACKUP (Transact-SQL)BACKUP (Transact-SQL)
RESTORE (Transact-SQL)RESTORE (Transact-SQL)