フル、差分、およびログ バックアップをバックアップするための簡単なストアド プロシージャを作成しました。これは私のストアドプロシージャです:
Alter PROCEDURE BackupDB
(
@BaseLocation varchar(1024),
@BackupType varchar(32)
)
AS
BEGIN
Declare @DBName varchar(255) = db_name()
Declare @FileName varchar(256)
Declare @Date datetime = getdate()
Set @BackupType = UPPER(@BackupType)
Set @FileName = @DBName + '_' + Cast(Year(@Date) as varchar(4)) + '_' +
Right('00' + Cast(Month(@Date) as varchar(2)),2) + '_' +
Right('00' + Cast(Day(@Date) as varchar(2)),2) + '_' +
Right('00' + Cast(DatePart(hh,@Date) as varchar(2)),2) + '_' +
Right('00' + Cast(DatePart(mi,@Date) as varchar(2)),2) + '_' +
Right('00' + Cast(DatePart(ss,@Date) as varchar(2)),2) + '_' +
Right('000' + Cast(DatePart(ms,@Date) as varchar(3)),3) + '_' + UPPER(@BackupType) +
(Case When @BackupType = 'FULL' Or @BackupType = 'DIFFERENTIAL' Then '.BAK' Else '.TRN' End)
Declare @FullPath varchar(1280) = ''
If Right(@BaseLocation,1) <> '\'
Begin
Set @BaseLocation = @BaseLocation + '\'
End
Set @FullPath = @BaseLocation + @FileName
Print @FullPath
If @BackupType = 'FULL'
Begin
Backup database @DBName To Disk = @FullPath
End
Else If @BackupType = 'DIFFERENTIAL'
Begin
Backup database @DBName To Disk = @FullPath WITH DIFFERENTIAL
End
Else If @BackupType = 'LOG'
Begin
BACKUP LOG @DBName
TO Disk = @FullPath
End
END
GO
ストアド プロシージャを実行しましたが、渡されたパラメーターに対して完全に機能しているようです。次のステップは、このための SQL JOB を作成することです。ただし、これを行う前に、この正しい手順を知りたいですか? 多くの記事を読みましたが、そのすべてが「バックアップ戦略のテスト」という 1 行を指摘しているようです。
ここで、SQL JOB を毎週、毎日、および 5 分ごとに作成します。つまり、毎週の完全バックアップ、毎日の差分およびログ バックアップを 5 分ごとに作成します。
このストアド プロシージャは正しく書かれていないと思いますか、それとも私のシナリオでは問題ないと思いますか?