web-dev-qa-db-ja.com

T-SQLを使用してバックアップファイルを圧縮する

メンテナンスプランから呼び出されたストアドプロシージャで、バックアップファイルを.Zip(または別のファイル)に圧縮することはできますか?

私の保守計画には次の手順が含まれています。

  • dBをチェックしてください(整合性、re_index、おそらく重要ではありません)

  • 完全バックアップ

  • restore_verifyonlyを使用してバックアップファイルを確認するには

  • データベースを縮小する

Restore_verifyonly/shrinkデータベースの後、このファイルを圧縮します。

5
mKorbel

バックアップ圧縮はSQL 2008 Enterpriseで導入され、SQL2008R2以降ではStandard Editionに追加されました。

バックアップを作成するときに、WITH COMPRESSIONキーワードを指定できます。これにより、データベースのバックアップサイズが、圧縮された「通常の」バックアップファイルとほぼ同じサイズに圧縮されます。

SQL2005以前の場合、(RedGateのような特定のツールを使用する以外の)最善の方法は、インスタンスでxp_cmdshellが有効になっていることを確認し、コマンドラインを使用して、たとえば、 WinRar。

次のようなcmdファイルを使用します。

@echo off
Set "winrarPath=C:\Program Files\WinRAR"
"%winrarPath%\winrar.exe" a -r "ZippedBackup.Zip" "BackupFile.BAK" 

その後、2000/2005インスタンスからこのcmdファイルを実行できます。ファイル名が一般的ではない場合は、%1- type変数をcmdファイルに渡して遊ぶこともできます。

6
RoKa