12

非常に小さな SQL Server Express 2008 データベースの 1 つのバックアップ スクリプトを作成しようとしました。私の要件は、毎晩フル バックアップを実行し、最後の 5 つのバックアップを保持することです。これは私の試みであり、私がそれを正しく行っているかどうかについてフィードバックを得たいですか? ご協力ありがとうございます。

    declare @backupfilename nvarchar(100)
    set @backupfilename='c:\...location..\filename_'+convert(varchar(10),getdate(),112) + '.bak'

    BACKUP DATABASE [dbname] TO  DISK = @backupfilename 
    WITH  RETAINDAYS = 5, NOFORMAT, NOINIT,  NAME = N'Full Database Backup Name', NOSKIP,
    NOREWIND, NOUNLOAD,  STATS = 10
    GO
    declare @backupSetId as int
    select @backupSetId = position from msdb..backupset where database_name=N'dbname'
    and backup_set_id=(select max (backup_set_id) from msdb..backupset where 
    database_name=N'dbname' )
    if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database  
    ''dbname'' not found.', 16, 1) end
    RESTORE VERIFYONLY FROM  DISK =@backupfilename  WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
    GO
4

1 に答える 1

18

Ola のバックアップ ストアド プロシージャを強くお勧めします。それらは十分にサポートされており、非常に堅牢です。それらを使用することに抵抗がある場合は、少なくとも独自のルーチンを作成するときにそれらを参照できます。

于 2012-05-21T19:47:31.547 に答える