Mik*_*ole 6 sql-server backup transaction-log
我正在尝试创建一个备份计划,该计划每天创建两次完整备份。每小时进行一次差异备份,每 5 分钟进行一次日志备份。
它工作正常,但我注意到日志备份(.trn
文件)每次都在增长。
如果我使用backup log with init
它会覆盖并且我收到了最近的错误。
我认为在另一个完整或差异备份之后,下一个日志备份将只包括“自上次完整/差异备份以来”的日志备份?
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'
Run Code Online (Sandbox Code Playgroud)
我按照下面的建议做了一些事情,将日志备份到带有日期时间戳的单独文件:
-- 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
Run Code Online (Sandbox Code Playgroud)
(如:LagerDB_06.12.2011_1418.bak
)
但我真正想要的答案是我认为它会在完整备份后重置。也许我应该backup with init
在完整备份或差异备份之后安排一个?
Mar*_*ith 11
您正在重复将日志备份到同一文件。后续备份将附加到该文件中,您可以在屏幕截图中看到这些内容。通常,我们倾向于备份到过时的文件:
BACKUP LOG
lagerdb
TO DISK = N'C:\SQLBACKUP\lagerdb-rechts_201112061130.trn'
WITH NAME = N'lagerdb logs'
Run Code Online (Sandbox Code Playgroud)
省去手动启动必要脚本的麻烦,并使用Ola Hallengren 的维护解决方案。
归档时间: |
|
查看次数: |
386 次 |
最近记录: |