首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么‘重置’事务日志

什么‘重置’事务日志
EN

Database Administration用户
提问于 2011-12-06 09:52:50
回答 1查看 396关注 0票数 6

我正在尝试创建一个备份计划,每天两次创建一个完整的备份。每小时进行一次差异备份,每5分钟备份一次日志。

它工作得很好,但是我注意到日志备份(.trn文件)每次都在增长和增长。

如果我使用backup log with init,它会覆盖并得到最近的错误。

我认为在另一次完整备份或差异备份之后,下一次日志备份将只包括日志备份“自上次完整/差异备份”吗?

代码语言:javascript
复制
BACKUP DATABASE 
    lagerdb 
TO DISK = N'C:\SQLBACKUP\lagerdb-rechts.bak' 
WITH INIT, NOUNLOAD, NAME = N'lagerdb full', NOSKIP, STATS = 20, NOFORMAT

BACKUP DATABASE 
    lagerdb TO DISK = N'c:\SQLBACKUP\lagerdbd-rechts.bak' 
WITH INIT, NOUNLOAD, NAME = N'lagerdb differential', NOSKIP, STATS = 20, NOFORMAT, DIFFERENTIAL 

BACKUP LOG 
    lagerdb 
TO DISK = N'C:\SQLBACKUP\lagerdb-rechts.trn' 
WITH NAME = N'lagerdb logs'

我用下面的建议做了一些事情,用日期时间戳备份日志以分离文件:

代码语言:javascript
复制
 -- Declares a string
 declare @sql nvarchar(255)
 declare @ParmDefinition NVARCHAR(500)

 -- declares the path name. Seperated by disk drive and directory.
 declare @bkName varchar(255)

 -- Declares the filename. 
 declare @bkdbName varchar(50)
 declare @bkdbDateTime varchar(20)

 --Get Timestring
 set @sql = N'select @parm1OUT = CONVERT(varchar(20),CONVERT(DATE,GETDATE(),104),104)     + ''_'' + Substring(CONVERT(varchar(8),getdate(),114),1,2) + Substring(CONVERT(varchar(8),getdate(),114),4,2)'
 SET @ParmDefinition=N'@parm1OUT varchar(20) OUTPUT'

 exec sp_executesql 
 @sql, 
 @ParmDefinition,
 @parm1OUT=@bkdbDateTime OUTPUT

 set @bkdbName = 'LagerDB_' + @bkdbDateTime

 -- Enter the Drive letter below. Please remove C: as current value.
 set @bkName = 'C:'

 -- Enter the folder name below (with lead and end '\' back slashes.
 -- Ensure that you change the folder from Temp below.
 set @bkName = @bkName + '\SQLBackup\'
 set @bkName = @bkName + @bkdbName 

 -- Sets the backup running by executing the @sql string.
 set @sql = 'BACKUP DATABASE lagerdb TO DISK = '''+@bkName+'.bak'''

 print @sql
 exec sp_executesql @sql

(例如:LagerDB_06.12.2011_1418.bak)

但我真正想要的答案是,我认为它会在完全备份后重置。也许我应该在完全备份或差异备份之后安排一个backup with init

EN

回答 1

Database Administration用户

发布于 2011-12-06 11:28:07

您正在重复地将日志备份到同一个文件。随后的备份将被附加到该文件中,这就是您在屏幕截图中可以看到的。通常,我们倾向于备份到过时的文件:

代码语言:javascript
复制
BACKUP LOG 
    lagerdb 
TO DISK = N'C:\SQLBACKUP\lagerdb-rechts_201112061130.trn' 
WITH NAME = N'lagerdb logs'

省去手工操作所需脚本的麻烦,并使用Ola Hallengren维修解决方案

票数 11
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/8821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档