关于数据库日志文件的备份和定期删除一段时间的日志,以节约磁盘空间.请详细说明步骤

wym840713 2006-09-25 06:01:33
即标题内容
...全文
288 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xx_adam 2006-09-27
  • 打赏
  • 举报
回复
备份log完成之后就可以清空log


备份log带下面的参数
NO_LOG | TRUNCATE_ONLY
通过放弃活动日志以外的所有日志,无需备份复制日志即可删除不活动的日志部分,并截断日志。该选项会释放空间。因为并不保存日志备份,所以没有必要指定备份设备。NO_LOG 和 TRUNCATE_ONLY 是同义的。


shaj98 2006-09-27
  • 打赏
  • 举报
回复
要实现备份,直接DTS自动执行就是。。。
shaj98 2006-09-27
  • 打赏
  • 举报
回复
我倒,,搞这麻烦做什么,直接在数据库属性里限制LOG文件大小就成了。。。。
dawugui 2006-09-26
  • 打赏
  • 举报
回复
如果是清空

清除SQLSERVER日志文件

DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE szwzcheck -- 要操作的数据库名
SELECT @LogicalFileName = 'szwzcheck_Log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 20 -- 你想设定的日志文件的大小(M)
-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
   CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
   CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)
DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name =
@LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF

把szwzcheck换成你数据库的名字即可,在查询分析器里面运行。
chenjunjarysky 2006-09-26
  • 打赏
  • 举报
回复
有关于这方面的网络质料吗?我也想了解一下。
rea1gz 2006-09-26
  • 打赏
  • 举报
回复
你可以:
1、制定一个备份计划,即多长时间做一次完全备份,在什么时间做;多长时间做一次日志备份,在什么时间做。
2、按照计划设定多个作业尽心备份
3、需要的话定时压缩数据库

备份会自动清除不活动的日志,防止日志无控制的扩大
xiaoyaowp 2006-09-26
  • 打赏
  • 举报
回复
jf
wym840713 2006-09-26
  • 打赏
  • 举报
回复
请各位大侠帮帮忙啊

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧