5

データベースのバックアップファイル(.bak)を圧縮してリモートの場所に転送するためのサンプルSQLスクリプトを探していました。持っている場合は共有してください。

4

3 に答える 3

5

xp_cmdshellを使用して、zipおよびコピー用のコマンドを呼び出すことができます。このサンプルでは、​​winzipコマンドライン(zip / unzip用)とxcopyを使用してファイルを転送しています。

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'
于 2008-09-24T16:22:32.437 に答える
3

xp_cmdshell は 1 つの方法ですが、これを有効にするとサーバーの安全性が低下するため、理想的ではありません。

私のオープン ソース プロジェクトであるSQL Server Compressed Backupは、探していることを 1 ステップで実行します。

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

SQL Server Compressed Backup のインストールは、"xcopy" 展開だけです。インストール/アンインストールする必要はありません。これを 1 回だけ行う必要がある場合に最適です。

標準の zip 形式には 4 GB の制限があるため、zip64 を使用します。利用可能な代替圧縮形式は、制限のない gzip と bzip2 です。

于 2009-11-24T01:39:17.070 に答える
2

SqlBackupAndFtpのような単純なツールを使用してみませんか?シンプルなインターフェイスで必要な処理(SQLバックアップ+リモートロケーションへの移動)を正確に実行し、スクリプトを作成する必要はありません。

于 2012-10-09T09:25:21.393 に答える