事物日志如何清理

navy887 2011-01-06 02:58:43
系统环境:win2003
数据库环境:SQL SERVER 2005

问题描述:有个数据库正在做事物复制,清理事物日志的时候总是失败。哪位大大有好的方法提供一下,谢谢!

我的清理方法如下:
backup log database with truncate_only
dbcc shrinkfile(2,truncateonly)
go
...全文
169 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacyfx 2011-01-06
  • 打赏
  • 举报
回复

use master
GO
--截断事务日志
DUMP TRANSACTION FAL WITH NO_LOG
GO
--备份事务日志
BACKUP LOG FAL WITH NO_LOG
GO
--收缩数据库
DBCC SHRINKDATABASE(FAL)
GO
--设置自动收缩
EXEC SP_DBOPTION 'FAL','AUTOSHRINK','TRUE'
GO
--查看日志使用情况
DBCC SQLPERF(LOGSPACE)
navy887 2011-01-06
  • 打赏
  • 举报
回复
谢谢!
我现在就是晚上做的。每天有30G的事物日志,愁死了。。。
luoyefeng1022 2011-01-06
  • 打赏
  • 举报
回复
停止复制,在收缩日志!
billpu 2011-01-06
  • 打赏
  • 举报
回复
或者把截断收缩放在晚上去做,如果深更半夜还有n多日志要复制 那我就没办法了
billpu 2011-01-06
  • 打赏
  • 举报
回复
标记所有日志已分发
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0,@time= 0, @reset = 1
但是用了这个可能掉数据 慎之慎之
navy887 2011-01-06
  • 打赏
  • 举报
回复
数据量太大,重新初始化不敢搞。
现在用的就是连续运行。

另外我发布和分发时同一台服务器,不存在网络瓶颈。
I/O瓶颈有时候会存在,不知道是不是这个问题。

不知道有没有其他处理事务日志的方法?
billpu 2011-01-06
  • 打赏
  • 举报
回复
对了 还有缩短日志读取器代理运行的时间间隔 或者干脆用连续运行
billpu 2011-01-06
  • 打赏
  • 举报
回复
感觉没什么太好的办法 可以试试看 重新初始化快照代理...不过你数据量大 这个负担会很大
Mr_Nice 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 billpu 的回复:]

关键是你的发布到分发的效率太低了 形成瓶颈了 (可能是网络因素,也可能是磁盘io瓶颈)
所以日志的状态一直是未传送造成日志不能截断
[/Quote]

同判断。 LZ监控一下看看
billpu 2011-01-06
  • 打赏
  • 举报
回复
关键是你的发布到分发的效率太低了 形成瓶颈了 (可能是网络因素,也可能是磁盘io瓶颈)
所以日志的状态一直是未传送造成日志不能截断
navy887 2011-01-06
  • 打赏
  • 举报
回复
停止复制的话,下次又要重新初始化操作。数据量太大,这样不太合适。
有没有其他办法?
谢谢!
billpu 2011-01-06
  • 打赏
  • 举报
回复
停止复制再清理

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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