Skip to content
Category: SQL Server
2016-12-20

SQL Server Backup “Mirror To” Local y Azure


Nos encontramos en unos tiempos en los que muchas empresas están migrando a Azure, ya sea total o parcialmente. Uno de los primeros elementos que se aventuran a probar es el almacenamiento y más en concreto el Backup a Azure, ya que sobretodo las empresas pequeñas no tienen un método seguro de poder conservar sus copias.

Si disponéis de una edición Enterprise de SQL Server, podéis hacer un Backup Mirror To, o lo que es lo mismo, un backup copiado en varias localizaciones (no confundirse con un backup dividido en varios ficheros).

Si os aventuráis a probar la funcionalidad MIRROR TO, pronto os encontraréis que no se puede realizar un backup a disco On Premise y hacer un mirror a una URL de Azure:

Mirroring applies both to disk and tape (disks do not support continuation tapes). All backup devices for a single backup or restore operation must be of the same type, disk or tape. 

https://msdn.microsoft.com/en-us/library/ms175053.aspx

Por lo que hay que buscar una alternativa para que SQL Server crea que las dos localizaciones son del mismo tipo.

Lo primero que vamos a tener que hacer es crear un Azure File Share, si no sabéis como crearlo, mi compañero Nacho Cotanda hizo una entrada al respecto hace unas semanas Creando una ruta compartida en Azure en 5 minutos.

Una vez tengamos creado el File Share, tenemos que habilitar en la configuración de SQL Server xp_cmdshell:

-- To allow advanced options to be changed.  
EXEC sp_configure 'show advanced options', 1;  
GO  
-- To update the currently configured value for advanced options.  
RECONFIGURE;  
GO  
-- To enable the feature.  
EXEC sp_configure 'xp_cmdshell', 1;  
GO  
-- To update the currently configured value for this feature.  
RECONFIGURE;  
GO

Mas información sobre xp_cmdshell en https://msdn.microsoft.com/en-us/library/ms190693.aspx

Una vez esté habilitado ya podemos crear nuestro pequeño script, que constará de tres partes:

  • Crear la unidad compartida en tiempo de ejecución
  • Realizar el backup
  • Borrar la unidad compartida
EXEC xp_cmdshell 'net use Z: \\<YOUR_STORAGE_ACCOUNT_NAME>.file.core.windows.net\<YOUR_FILE_SHARE> /u:<YOUR_STORAGE_ACCOUNT_NAME> <YOUR_ACCESS_KEY>'

BACKUP DATABASE <DATABASE_NAME> TO DISK = 'C:\Backup\<BACKUP_NAME>.bak' MIRROR TO DISK = 'Z:\Backup\<BACKUP_NAME>.bak' WITH FORMAT

EXEC xp_cmdshell 'net use Z: /delete'

Con esto ya podremos tener de una manera simple nuestro backup en Local y copiado en Azure.

BONUS TRACK

Si para realizar vuestros backups utilizáis los famosos scripts de Ola Hallengren (si no lo hacéis, deberíais empezar a hacerlo) , podréis utilizar el siguiente script:

EXEC xp_cmdshell 'net use Z: \\<YOUR_STORAGE_ACCOUNT_NAME>.file.core.windows.net\<YOUR_FILE_SHARE> /u:<YOUR_STORAGE_ACCOUNT_NAME> <YOUR_ACCESS_KEY>'

EXEC xp_cmdshell 'sqlcmd -E -S <YOUR_SERVER_NAME> -d master -Q "EXECUTE [dbo].[DatabaseBackup] @Databases = ''ALL_DATABASES'', @Directory = N''C:\Backup'', @MirrorDirectory = N''Z:\Backup'', @BackupType = ''FULL'', @Verify = ''Y'', @CleanupTime = 336, @MirrorCleanupTime = 336, @CheckSum = ''Y'', @LogToTable = ''Y''" -b'

EXEC xp_cmdshell 'net use Z: /delete'

Ya sabéis, si os ha servido.. ¡Compartidla!

Complete este formulario para recibir la guía de Windows Server en Azure
*Obligatorio
Complete este formulario para recibir la guía de Windows Server en Azure
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir 4 best practices to implement a comprehensive Zero Trust security approach
*Obligatorio
Complete este formulario para recibir 4 best practices to implement a comprehensive Zero Trust security approach
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir Cloud Migration Essentials
*Obligatorio
Complete este formulario para recibir Cloud Migration Essentials
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir Cloud security Advice for Nonprofit Leaders
*Obligatorio
Complete este formulario para recibir Cloud security Advice for Nonprofit Leaders
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir Prevent data leaks with Microsoft 365 Business Premium
*Obligatorio
Complete este formulario para recibir Prevent data leaks with Microsoft 365 Business Premium
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete this form to recieve the guide of Windows Server on Azure
*Required
Complete this form to recieve the guide of Windows Server on Azure
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve 4 best practices to implement a comprehensive Zero Trust security approach
*Required
Complete this form to recieve 4 best practices to implement a comprehensive Zero Trust security approach
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Cloud Migration Essentials
*Required
Complete this form to recieve Cloud Migration Essentials
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Cloud security Advice for Nonprofit Leaders
*Required
Complete este formulario para recibir Cloud security Advice for Nonprofit Leaders
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Prevent data leaks with Microsoft 365 Business Premium
*Obligatorio
Complete this form to recieve Prevent data leaks with Microsoft 365 Business Premium
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Cloud Migration Simplified Ebook.
*Obligatorio
Complete this form to recieve Prevent data leaks with Microsoft 365 Business Premium
Thank you for filling out the form [name]. Here's your Free eBook!