SQL Server 2005 バックアップデバイスの自動切り替え

8 8月, 2011 (16:57) | SQL Server, クラウド | By: ohishi

SQL Server 2005のバックアップは、「テープ」ではなく、「外付けディスク上のファイル」を指定して取得している。

この外付けディスク上のファイルに、「完全バックアップ」や「ログバックアップ」を追加で書き込むのだが、
ちょっと目を離すと、いつの間にか40GB等の巨大なファイルに成長してしまう。

なるべく巨大になりすぎないうちに、このバックアップを再作成する必要があったが、これまで手作業でしかできなかったために、
放置することが多かった。

クラウドでバックアップのシステムを立てようとすると、このバックアップファイルの大きさはネックになると思い、
定期的に、バックアップファイルの再作成を行うジョブを作ってみたのでメモっておきます。

◆前提

 ・バックアップファイル名:"F:\database backup\DATA_BACKUP"
 ・バックアップデバイス名:DATA_BACKUP
 ・保存用のバックアップファイル名:DB_BKUP_yyyymmdd_hhmm

◆SQLServer エージェントのジョブ

ステップ1:バックアップデバイスの削除(ファイルは消えません。登録だけ削除します)・・・ T-SQL
IF  EXISTS (SELECT name FROM master.dbo.sysdevices WHERE name = N'DATA_BACKUP')
EXEC master.dbo.sp_dropdevice @logicalname = N'DATA_BACKUP'

ステップ2:バックアップファイルのリネーム ・・・ コマンド
rename "F:\database backup\DATA_BACKUP" 
       "DB_BKUP_%date:~-10,4%%date:~-5,2%%date:~-2,2%_%time:~0,2%%time:~3,2%”

ステップ3:空のバックアップファイル作成 ・・・ コマンド
type nul > "F:\database backup\DATA_BACKUP"

ステップ4:バックアップデバイスの登録 ・・・ T-SQL
EXEC master.dbo.sp_addumpdevice  @devtype = N'disk', 
   @logicalname = N'DATA_BACKUP', @physicalname = N'F:\database backup\DATA_BACKUP'

◆おまけ

ステップ1、4は無しでも私の環境だと問題なく切り替えできているようですが、バックアップデバイスの登録を削除せず、ファイル名を変更してしまうのは
少々気持ち悪いので、削除せず残しておこうと思ってます。

このエージェントを、週1で実行させれば、バックアップファイルは、1GB以内に収まる見込みです。

Write a comment