首页 > 解决方案 > 如何在日志备份脚本中添加校验和?

问题描述

我有一个 mssql 脚本,我想将其用于每日完整备份和日志备份,我无法理解如何添加 CHECKSUM 值以使其正常工作,谁能帮助我解决这个问题:

DECLARE @name VARCHAR(50) -- database name   
DECLARE @path VARCHAR(256) -- path for backup files   
DECLARE @fileName VARCHAR(256) -- filename for backup   
DECLARE @fileDate VARCHAR(20) -- used for file name  

SET @path = 'C:\Backup\'   

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)  
   + '_'  
   + REPLACE(CONVERT(VARCHAR(20),GETDATE(),108),':','') 

DECLARE db_cursor CURSOR FOR   
SELECT name  
FROM master.dbo.sysdatabases  
WHERE name NOT IN ('master','model','msdb','tempdb')  
   AND DATABASEPROPERTYEX(name, 'Recovery') IN ('FULL','BULK_LOGGED') 

OPEN db_cursor    
FETCH NEXT FROM db_cursor INTO @name    

WHILE @@FETCH_STATUS = 0    
BEGIN    
       SET @fileName = @path + @name + '_' + @fileDate + '.TRN'   
       BACKUP LOG @name TO DISK = @fileName   

       FETCH NEXT FROM db_cursor INTO @name    
END    

CLOSE db_cursor    
DEALLOCATE db_cursor

标签: sql-server

解决方案


您的命令应如下所示:

BACKUP LOG @name TO DISK = @fileName with checksum

您可以在此处启用或禁用备份或还原期间的备份校验和 (SQL Server)和此处的错误管理选项的 BACKUP (Transact-SQL)找到此语法


推荐阅读