我有一个数据库,我的目的是在一段时间后从几个表中删除一些旧记录,进行备份并收缩日志文件。我每天都会运行一个程序来执行此操作。但是,我的.bak
继续变大。这是为什么?
即使在收缩日志文件并删除旧记录之后,每次备份时我的.bak
文件都会增长得更多。如何备份数据库并使.bak
文件表示当前所有表中包含的实际大小?任何帮助都非常感谢。谢谢。
DECLARE @setDate DATE
SET @setDate = CAST(GETDATE() - 10 AS DATE)
DELETE recipebatches
WHERE CAST(dates AS DATE) < @setDate
DELETE parameterdata
WHERE CAST(dates AS DATE) < @setDate
BACKUP DATABASE xxxx
TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\xxxx.BAK'
ALTER DATABASE xxxx
SET RECOVERY SIMPLE;
-- shrink to 1 mb.
DBCC SHRINKFILE (xxxx_Log, 1);
ALTER DATABASE xxxx
SET RECOVERY FULL;
我的数据库中的当前表 - 记录不多,但我有2,329,768 kB .bak
大小
LOG和.MDF
文件的增长数据:
答案 0 :(得分:2)
这是.bak文件增长的最可能原因:
该链接说明.bak如何包含多个备份集,除非您对正在执行的备份应用特定设置。这将导致.bak在您反复保存到同一文件时增长。
另外,请检查您的压缩设置。