Prácticas recomendadas de copias de seguridad y restauración (servicio de almacenamiento Blob de Windows Azure)
Este tema incluye prácticas recomendadas y sugerencias para la solución de problemas de copias de seguridad y restauraciones de SQL Server en el servicio Blob de Windows Azure.
Para obtener más información sobre cómo usar el servicio de almacenamiento Blob de Windows Azure para realizar operaciones de copia de seguridad o restauración de SQL Server, vea:
Administrar copias de seguridad
La lista siguiente incluye recomendaciones generales para administrar copias de seguridad:
Se recomienda usar un nombre de archivo único para cada copia de seguridad con el fin de evitar que se sobrescriban accidentalmente los blobs.
Al crear un contenedor de blob de Windows Azure, 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.
En el caso de bases de datos en una instancia de SQL Server que se ejecuta en una máquina virtual de Windows Azure, use una cuenta de almacenamiento de la misma región que la máquina virtual para evitar costos de transferencia de datos entre las 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. Se recomienda identificar periódicamente las copias de seguridad con errores y eliminar los archivos blob. Para obtener más información, vea Eliminar archivos de blob de copia de seguridad con concesiones activas.
Use 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. También puede reducir el tiempo necesario para completar el proceso de copia de seguridad.
Controlar archivos grandes
La operación de copia de seguridad de SQL Server emplea varios subprocesos para optimizar la transferencia de datos a los servicios de almacenamiento Blob de Windows Azure. Sin embargo, el rendimiento depende en varios factores, como el ancho de banda del ISV y el tamaño de la base de datos. 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. Los SLA de almacenamiento de Windows Azure tienen unos tiempos de procesamiento máximo para los blobs que puede tener en cuenta.
Usar la opción WITH COMPRESSION como se recomienda en la sección Administrar la copia de seguridad es muy importante al realizar la copia de seguridad de archivos grandes.
Optimizar restauraciones
Para reducir el tiempo de escritura de restauración, agregue el derecho de usuario Realizar tareas de mantenimiento del volumen a la cuenta de usuario de SQL Server. Para obtener más información, vea Inicialización de archivos de base de datos.
Consideraciones de rendimiento
El rendimiento de las copias de seguridad y restauración puede variar en función del ancho de banda de red, el tamaño de la base de datos y la ubicación del servicio de almacenamiento de Windows Azure relativa a la ubicación local. Para evaluar el rendimiento de las copias de seguridad y restauración para su entorno, se recomienda probar las copias de seguridad y restauraciones y medirlo. Los siguientes elementos deben tenerse en cuenta al realizar la copia de seguridad del servicio de almacenamiento de blobs de Windows Azure:
Los tiempos de las copias de seguridad y restauración son proporcionales al ancho de banda de red.
El ancho de banda de red mínimo de la copia de seguridad es de 1 MB por segundo. La copia de seguridad puede sufrir errores de tiempo de espera, si el ancho de banda es inferior a 1 MB por segundo.
El tiempo de restauración también es proporcional a la latencia de red, especialmente si intenta restaurar un archivo de una región de Windows Azure geográficamente diferente de la instancia de SQL Server que está intentando restaurar. En estos casos, las pruebas adquieren mucha importancia para asegurarse de que puede cumplir los requisitos de RTO.
Solucionar problemas de copia de seguridad en el servicio de almacenamiento Blob de Windows Azure o de restauración desde el mismo
A continuación se indican algunas formas rápidas de solucionar errores al hacer copia de seguridad o restaurar desde el servicio de almacenamiento Blob de Windows Azure.
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 Blob de Windows Azure.
Errores de autenticación:
WITH CREDENTIAL es una opción nueva que es necesaria para la copia de seguridad o la restauración con el servicio de almacenamiento Blob de Windows Azure. He aquí algunos errores relacionados con las credenciales:
La credencial especificada en el comando BACKUP o RESTORE no existe. 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. He aquí un ejemplo que puede usar:
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. Use una cuenta de inicio de sesión en el rol db_backupoperator con permisos Alter any credential.
Compruebe los valores de clave y nombre de la cuenta de almacenamiento. La información almacenada en la credencial debe coincidir con los valores de propiedad de la cuenta de almacenamiento de Windows Azure que se usa en las operaciones de copia de seguridad y restauración.
Errores de copia de seguridad:
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.
Use los registros de errores siguientes como ayuda para solucionar problemas de copia de seguridad:
Establezca la marca de seguimiento 3051 para activar el registro en un registro de errores específico con el siguiente formato en:
BackupToUrl-<instname>-<dbname>-action-<PID>.log Donde <action> es uno de los valores siguientes:
DB
FILELISTONLY
LABELONLY
HEADERONLY
VERIFYONLY
También puede encontrar información si examina el registro de eventos de Windows, en los registros de aplicación con el nombre 'SQLBackupToUrl'.
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.
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:
BACKUP TO URL recibió una excepción del extremo remoto. Mensaje de la excepción: Error en el servidor remoto: (412) Actualmente hay una concesión en el blob y no se especificó ningún identificador de concesión en la solicitud.
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:
Mensaje de la excepción: Error en el servidor remoto: (409) Conflicto.
Cuando se produce ese error, es necesario eliminar los archivos de blob. Para obtener más información sobre este escenario y cómo corregir este problema, vea Eliminar archivos de blob de copia de seguridad con concesiones activas.
Errores de proxy
Si usa servidores proxy para tener acceso a Internet, pueden producirse los problemas siguientes:
Limitación de la conexión por parte de los servidores proxy:
Los servidores proxy pueden tener configuraciones que limitan el número de conexiones por minuto. Copia de seguridad en URL es un proceso multiproceso y, por tanto, puede sobrepasar este límite. Si esto ocurre, el servidor proxy elimina la conexión. Para resolver este problema, cambie la configuración de proxy para que SQL Server no utilice el proxy. A continuación se muestran algunos ejemplos de los tipos o mensajes de error que puede ver en el registro de errores:
Error de escritura en “http://storageaccount.blob.core.windows. net/container/BackupAzurefile.bak": Copia de seguridad en URL recibió una excepción del extremo remoto. Mensaje de excepción: No se pueden leer datos de la conexión de transporte: La conexión se cerró.
Error de E/S irrecuperable en el archivo "http://storageaccount.blob.core.windows. net/container/BackupAzurefile.bak:" No se pudo recopilar el error del extremo remoto.
Mensaje 3013, nivel 16, estado 1, línea 2
Fin anómalo de BACKUP DATABASE.
BackupIoRequest::ReportIoError: error de escritura en el dispositivo de copia de seguridad http://storageaccount.blob.core.windows. net/container/BackupAzurefile.bak'. Error de sistema operativo Copia de seguridad en URL recibió una excepción del extremo remoto. Mensaje de excepción: No se pueden leer datos de la conexión de transporte: La conexión se cerró.
Si activa el registro detallado mediante la marca de seguimiento 3051, puede ver también el mensaje siguiente en los registros:
Código de estado HTTP 502, error de proxy del mensaje de estado HTTP (El número de peticiones HTTP por minuto superó el límite configurado. Póngase en contacto con el administrador del servidor ISA. )
Configuración de proxy predeterminada no seleccionada:
A veces, la configuración predeterminada no se selecciona, lo que produce errores de autenticación del proxy como el que se muestra a continuación:Error de E/S irrecuperable en el archivo "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Copia de seguridad en URL recibió una excepción del extremo remoto. Mensaje de excepción: Error en el servidor remoto: (407) Se requiere autorización del proxy.
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:
Cree un archivo de configuración denominado BackuptoURL.exe.config con el código XML siguiente:
<?xml version ="1.0"?> <configuration> <system.net> <defaultProxy enabled="true" useDefaultCredentials="true"> <proxy usesystemdefault="true" /> </defaultProxy> </system.net> </configuration>
Coloque el archivo de configuración en la carpeta Binn de la instancia de SQL Server. Por ejemplo, si SQL Server está instalado en la unidad C del equipo, coloque el archivo de configuración aquí: C:\Archivos de programa\Microsoft SQL Server\MSSQL11.<InstanceName>\MSSQL\Binn.