sql-server - 如何在日志备份脚本中添加校验和?
问题描述
我有一个 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
解决方案
您的命令应如下所示:
BACKUP LOG @name TO DISK = @fileName with checksum
您可以在此处启用或禁用备份或还原期间的备份校验和 (SQL Server)和此处的错误管理选项下 的 BACKUP (Transact-SQL)找到此语法
推荐阅读
- jenkins - Jenkins boostrap 在单独的工作中而不是在构建工作中
- node.js - Mocha、Sinon 和 Chai 在回调中测试两个 http 调用
- vba - Statistica 64 - 你如何让宏找到它的文件名?
- python - 如何在安装 conda 包期间而不是在 conda 构建期间运行脚本
- matlab - 如何使用牛顿法求解积分的上限?
- javascript - 如何比较用户角色?
- c# - 如何在新标签 Asp.net 中打开 pdf 文件
- python - 有没有更好的方法来确保变量只包含数字
- c# - 如何根据用户输入生成范围不同的数字
- java - @RequestMapping 不映射 URL