2008-09-24 12 views

Antwort

5

Sie können xp_cmdshell verwenden, um die Befehle zum Zippen und Kopieren aufzurufen. Im Beispiel hier verwende ich winzip Kommandozeile (zum Zippen/Entpacken) und xcopy zum Übertragen von Dateien.

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 ist ein Weg, obwohl es nicht ideal ist, da die Aktivierung es den Server weniger sicher macht.

My Open-Source-Projekt, SQL Server Compressed Backup, das tut, was Sie in einem Schritt suchen:

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

Die Installation von SQL Server Backup komprimiert wird nur "xcopy" Einsatz - es gibt nichts zu installieren/deinstallieren , ideal, wenn Sie dies nur einmal tun müssen.

Es verwendet zip64, da das Standard-Zip-Format eine Beschränkung von 4 GB hat. Alternative verfügbare Komprimierungsformate sind gzip und bzip2, denen keine Grenzen gesetzt sind.

2

Warum nicht so einfache Werkzeuge wie SqlBackupAndFtp verwenden? Sie tun genau das, was Sie brauchen (sql backup + Umzug zum entfernten Ort) mit einer einfachen Schnittstelle und Sie müssen keine Skripte schreiben.