1

フル、差分、およびログ バックアップをバックアップするための簡単なストアド プロシージャを作成しました。これは私のストアドプロシージャです:

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 分ごとに作成します。

このストアド プロシージャは正しく書かれていないと思いますか、それとも私のシナリオでは問題ないと思いますか?

4

1 に答える 1

3

これがプログラミングの演習であれば、私には良さそうです。(エラー トラップとレポートを含める必要があります)。ただし、SQL Express を使用していない場合は、上記で指摘したように、メンテナンス プランによってエラー レポートが作成されます。SQL Express を使用している場合、無料の SQLBackupAndFTP http://sqlbackupandftp.com/は、私が長年使用し、推奨してきた優れたプログラムです。msdb が破損したときに最近経験した優れたエラー レポート機能があります。また、Amazon S3 アカウントにバックアップします (有料版ですが、それほど多くはありません)。全文はこちら: http://ava.co.uk/blog/2013/3/21/a-backup-problem-and-the-solution.aspx

于 2013-03-21T09:08:44.260 に答える