2008-09-24 24 views

Respuesta

5

Puede usar xp_cmdshell para invocar los comandos para comprimir y copiar. En el ejemplo aquí, estoy usando la línea de comandos winzip (para comprimir/descomprimir) y xcopy para transferir archivos.

EXEC master..xp_cmdshell 'C:\"Program Files"\WinZip\wzzip C:\Database.bak.zip C:\Database.bak'; 
EXEC master..xp_cmdshell 'C:\"Program Files"\WinZip\wzunzip -o "C:\Database.bak.zip" "C:\Database"'; 
EXEC master..xp_cmdshell 'xcopy "C:\Database.bak.zip" "\\networkshare\Backups" /Y' 
3

xp_cmdshell es de una forma, aunque no es ideal, ya que al habilitarlo hace que el servidor sea menos seguro.

Mi proyecto de código abierto, SQL Server Compressed Backup, hace lo que busca en un solo paso:

msbp.exe backup "db(database=model)" "zip64" "local(path=\\server\share\path\model.full.bak.zip)" 

La instalación de SQL Server comprimido de copia de seguridad es simplemente el despliegue "xcopy" - no hay nada que instalar/desinstalar , ideal si solo necesitas hacer esto una vez.

Utiliza zip64 ya que el formato zip estándar tiene un límite de 4 GB. Los formatos alternativos de compresión disponibles son gzip y bzip2 que no tienen límites.

2

¿Por qué no utilizar herramientas tan simples como SqlBackupAndFtp? Hacen exactamente lo que necesitan (copia de seguridad SQL + mudanza a ubicación remota) con una interfaz simple y no necesitan escribir ningún script.

Cuestiones relacionadas