sqlserver 2008 R2 的日志文件怎么删除啊?

偶是菜鸟 2013-12-20 05:53:08
最好验证过的,网上找了好多都各种错误大神在哪里
...全文
2111 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2013-12-23
  • 打赏
  • 举报
回复
做日志备份再看
唐诗三百首 2013-12-23
  • 打赏
  • 举报
回复
最简单的处理方法,把数据库恢复模式设为简单.
偶是菜鸟 2013-12-23
  • 打赏
  • 举报
回复
引用 1 楼 ap0405140 的回复:
卸离数据库-->删除日志文件-->附加数据库(会自动重新创建日志文件).
这个行不通,最好是写成脚本,不可能去客户那里去删日志文件吧
偶是菜鸟 2013-12-23
  • 打赏
  • 举报
回复
引用 3 楼 DBA_Huangzj 的回复:
先说说删除的理由
日志文件太大,最后数据库奔溃
KevinLiu 2013-12-23
  • 打赏
  • 举报
回复
引用 19 楼 DBA_Huangzj 的回复:
做个维护计划,比如半小时、1小时做一次日志备份,通常情况下ldf就不会增大,用DBCC SQLPERF(LOGSPACE)可以知道所有数据库的日志使用百分比,如果再完整恢复模式下不做常规的日志备份,ldf就会增长很大。日志备份的其中一个功能就是控制ldf文件的大小,不要乱相信别人那些脱机→分离→删除→附加,会导致数据的不一致甚至数据库无法使用。
脱机分离不行,但是Detach的这种分离是可以的,只要保证数据库里面没有Active的交易,那么删除是没有问题的。但是不建议这样做,太麻烦了,还不如Shrink来的方便。
shoppo0505 2013-12-23
  • 打赏
  • 举报
回复
DBCC SHRINKFILE 就行。日志文件建议别手动删除,有可能会出错。
發糞塗牆 2013-12-23
  • 打赏
  • 举报
回复
做个维护计划,比如半小时、1小时做一次日志备份,通常情况下ldf就不会增大,用DBCC SQLPERF(LOGSPACE)可以知道所有数据库的日志使用百分比,如果再完整恢复模式下不做常规的日志备份,ldf就会增长很大。日志备份的其中一个功能就是控制ldf文件的大小,不要乱相信别人那些脱机→分离→删除→附加,会导致数据的不一致甚至数据库无法使用。
偶是菜鸟 2013-12-23
  • 打赏
  • 举报
回复
引用 14 楼 DBA_Huangzj 的回复:
日志如果有活动的事务,你收缩不了,针对日志过大的问题,常规做法是做周期性的日志备份,这个虽然物理大小不会减少,但是由于空间可以重用,所以正常情况下物理大小不会变化很大。还有就是控制事务的运行时间,这是查询优化的概念了。
没有活动的事务,主要是insert数据多,所以运行一段时间日志文件就比较了,做备份难道日志文件就不会增加很快?周期性备份是指自动备份吗?项目以后要部署在局域网不可能去客户现场的
發糞塗牆 2013-12-23
  • 打赏
  • 举报
回复
如果有活动的事务,我看你能收缩到什么程度
山寨DBA 2013-12-23
  • 打赏
  • 举报
回复
你可以看下:http://blog.csdn.net/hwhmh2010/article/details/17301317 在这里头有对事务日志的物理结构、逻辑结构,以及事务日志满的处理方式的详细介绍。
山寨DBA 2013-12-23
  • 打赏
  • 举报
回复
日志文件太大的话,收缩下就可以了。

GO checkpoint; 
dbcc dropcleanbuffers;

GO  
dump transaction @库名 with no_log ; 
backup log @库名 with no_log ; 
dbcc shrinkdatabase(@库名)  ; 
dbcc shrinkfile(@file_id)

---select * from sysfiles ---找到@file_id就是那个log文件的id
發糞塗牆 2013-12-23
  • 打赏
  • 举报
回复
日志如果有活动的事务,你收缩不了,针对日志过大的问题,常规做法是做周期性的日志备份,这个虽然物理大小不会减少,但是由于空间可以重用,所以正常情况下物理大小不会变化很大。还有就是控制事务的运行时间,这是查询优化的概念了。
偶是菜鸟 2013-12-23
  • 打赏
  • 举报
回复
引用 12 楼 DBA_Huangzj 的回复:
[quote=引用 11 楼 fangwei198712 的回复:] [quote=引用 4 楼 zhangfk 的回复:] 压缩日志即可: USE[master] GO ALTERDATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT GO
问下,这个日志文件一直可以无限期压缩?[/quote]buxing [/quote] 谢谢斑竹哈,可以说下原因吗?再问下有什么可以解决日志文件过大
發糞塗牆 2013-12-23
  • 打赏
  • 举报
回复
引用 11 楼 fangwei198712 的回复:
[quote=引用 4 楼 zhangfk 的回复:] 压缩日志即可: USE[master] GO ALTERDATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTERDATABASE DNName SET RECOVERY SIMPLE --简单模式 GO USE DNName GO DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY) GO USE[master] GO ALTERDATABASE DNName SET RECOVERY FULLWITH NO_WAIT GO ALTERDATABASE DNName SET RECOVERY FULL --还原为完全模式 GO
问下,这个日志文件一直可以无限期压缩?[/quote]buxing
偶是菜鸟 2013-12-23
  • 打赏
  • 举报
回复
引用 4 楼 zhangfk 的回复:
压缩日志即可: USE[master] GO ALTERDATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTERDATABASE DNName SET RECOVERY SIMPLE --简单模式 GO USE DNName GO DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY) GO USE[master] GO ALTERDATABASE DNName SET RECOVERY FULLWITH NO_WAIT GO ALTERDATABASE DNName SET RECOVERY FULL --还原为完全模式 GO
问下,这个日志文件一直可以无限期压缩?
houyajin 2013-12-23
  • 打赏
  • 举报
回复
收缩,压缩都可以。没有删除的必要哦。。太多应该找一下原因,是每天都很多,还是突然的多。每天都多,还这样,说明你们工作不到位啊。
zhangfk 2013-12-22
  • 打赏
  • 举报
回复
压缩日志即可: USE[master] GO ALTERDATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTERDATABASE DNName SET RECOVERY SIMPLE --简单模式 GO USE DNName GO DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY) GO USE[master] GO ALTERDATABASE DNName SET RECOVERY FULLWITH NO_WAIT GO ALTERDATABASE DNName SET RECOVERY FULL --还原为完全模式 GO 步骤: 1、把上述语句拷贝。 2、把“DNName”换成你要压缩数据库的名字。 3、把'DNName_Log'换成日志的名字,这个名字是,在数据库名上按右键-〉属性。在弹出的对话框中,找到[文件]双击,在右表格中找日志别名(我记得),不是文件名。 4、替换完后,执行。
發糞塗牆 2013-12-20
  • 打赏
  • 举报
回复
先说说删除的理由
  • 打赏
  • 举报
回复
最好是收缩把,别删除,上次有个网友,就是删除了日志文件,最后再次附加的时候,报错,最后采用的导出数据的办法。
唐诗三百首 2013-12-20
  • 打赏
  • 举报
回复
卸离数据库-->删除日志文件-->附加数据库(会自动重新创建日志文件).

34,571

社区成员

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

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