Exemple de script SQL pour compresser et transférer le fichier de sauvegarde de la base de données

StackOverflow https://stackoverflow.com/questions/128166

Question

Je recherchais un exemple de script SQL pour compresser le fichier de sauvegarde de ma base de données (.bak) et le transférer vers un emplacement distant. S'il vous plaît partager si vous l'avez avec vous.

Était-ce utile?

La solution

Vous pouvez utiliser xp_cmdshell pour appeler le commandes de compression et de copie. Dans l'exemple ci-dessous, j'utilise la ligne de commande winzip (pour zipper / décompresser) et xcopy pour transférer des fichiers.

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'

Autres conseils

xp_cmdshell est à sens unique, bien que ce ne soit pas idéal car l'activer rend le serveur moins sécurisé.

Mon projet open source, Sauvegarde compressée SQL Server , fait ce que vous recherchez en un seul. étape:

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

L'installation de SQL Server Compressed Backup s'effectue uniquement sous "xcopy". déploiement - il n'y a rien à installer / désinstaller, idéal si vous devez le faire une fois.

Il utilise zip64 car le format zip standard est limité à 4 Go. Les formats de compression alternatifs disponibles sont gzip et bzip2, qui n’ont pas de limites.

Pourquoi ne pas utiliser des outils simples tels que SqlBackupAndFtp ? Ils font exactement ce dont vous avez besoin (sauvegarde SQL + déplacement vers un emplacement distant) avec une interface simple et vous n’avez besoin d’écrire aucun script.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top