Ich war auf der Suche nach einem Beispiel SQL-Skript, um meine Datenbank-Backup-Datei (.bak) zip und Übertragung an einen Remote-Speicherort. Bitte teilen Sie, wenn Sie es mit Ihnen haben.Beispiel SQL-Skript zu zippen und zu übertragen Datenbank-Backup-Datei
Antwort
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'
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.
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.