web-dev-qa-db-ja.com

SQL Server2005バックアップを自動的に圧縮/管理する

SQL Server 2005で毎晩バックアップを実行し、最後のn個のバックアップのみを保持して自動的に圧縮する良い方法はありますか?

エージェントが毎晩バックアップを実行できることは知っていますが、この質問の難しい部分は、非常に古いバックアップを圧縮して削除することだと思います。

乾杯!

3
keith

SQLバックアップの後、別のタスクを実行してバッチファイルを実行し、ファイルをZipして、NASにコピーします。最後の3つのバックアップを保持します-基本的なスクリプトは次のようになります。

d:
cd \MSSQL\BACKUP
Zip -rq d:\northwind northwind.BAK
REM - do the local copy to the NAS
move/y \\10.0.0.1\sql_backup\yesterday\northwind.Zip \\10.0.0.1\sql_backup\2DaysAgo\northwind.Zip
move/y \\10.0.0.1\sql_backup\northwind.Zip \\10.0.0.1\sql_backup\yesterday\northwind.Zip
copy northwind.Zip \\10.0.0.1\sql_backup\northwind.Zip

(1つのデータベースのみを表示するようにスクリプトを編集しました)。スクリプトの最後に、Pythonスクリプトを呼び出して、バックアップファイルのサイズと作成日を通知するメールを送信します。代わりにWSHスクリプトを簡単に使用できます。 SQLエージェントがバッチファイルが完了したかどうかを常に検出するとは限らないため、「if errorlevel ...」命令が追加された可能性がありますか?

if errorlevel 1 goto weakspace
d:\scripts\send_email_nas_copy_success.py
goto end
weakspace:
REM - error occured
d:\scripts\send_email_nas_copy_fail.py
end:
exit

サーバーの1つは、Zipの代わりにwinrarを使用してファイルを圧縮します(コマンドプロンプトがあります)。昨夜のバックアップは月に1回、6か月間保存されるアーカイブにコピーされますが、週に1回実行する別のバッチファイルを簡単に作成して、先週の日曜日、2日曜日前、3日曜日前のバックアップを維持できます。

3
Dan

私は automssqlbackup を作成しました。これは、バックアップを作成し、ローテーションし、圧縮し、電子メールを送信します。 PowerShellと無料。

2
devio

ソフトウェアがあります: SqlBackupAndFTP 。無料版と「プレミアム」版があります。

無料版には「バックアップのスケジュール、Zip」オプションが含まれています。これは SQL Authority.comブログ のレビューで、ツールの使用方法も説明しています。


または、SQL Server拡張ストアドプロシージャ xp_cmdshell からコマンドラインZip(winzip/ wzzip )を呼び出すこともできます。 robocopy 結果のファイルを安全な場所に使用できます。

1
splattne