2012-05-21 14 views
12

Podjęto próbę napisania skryptu kopii zapasowej dla jednej z moich bardzo małych baz danych Express 2008 sql dla serwera. Moje wymagania to wykonywanie pełnej kopii zapasowej co noc, zachowywanie ostatnich pięciu kopii zapasowych. To jest moja próba napisania jednej i chciałbym uzyskać opinię na temat tego, czy robię to dobrze? Dzięki za pomoc.skrypt kopii zapasowej serwera SQL

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 [email protected] WITH FILE = @backupSetId, NOUNLOAD, NOREWIND 
    GO 

Odpowiedz

19

Bardzo polecam Ola's backup stored procedures. Są dobrze wspierane i niezwykle solidne. Jeśli nie czujesz się komfortowo z nich korzystać, możesz przynajmniej patrzeć na nich podczas pisania własnej rutyny.

+0

To bardzo cenne ogniwo, które przez wielu uważa się za standard ... plus jeden. – RThomas

+0

Dzięki za wskazanie tej strony ... to ma wiele informacji i myślę, że powinienem móc dostosować plik databasebackup.sql zgodnie z moimi wymaganiami ... – cableload

Powiązane problemy