sqlserver事务⽇志已满的⼏种解决⽅案
⼀.删除⽇志⽂件:(不建议)⼆.⼿动收缩:
1.数据库右键属性-选项-恢复模式-下拉选择简单-最后点击确定
2.右键数据库-任务-收缩-⽂件类型-下拉选择⽇志-收缩操作-在释放未使⽤....(默认收缩到1MB)-最后点击确定
3.最后别忘了回到第⼀步骤把恢复模式改为完整!
三.⾃动收缩:
1.为了以后能⾃动收缩,做如下设置:
企业管理器–服务器–右键数据库–属性–选项–选择”⾃动收缩”QL语句设置⽅式:
EXEC sp_dboption ‘数据库名’, ‘autoshrink’, ‘TRUE’2..如果想以后不让它⽇志增长得太⼤
企业管理器–服务器–右键数据库–属性–事务⽇志
–将⽂件增长为xM(x是你允许的最⼤数据⽂件⼤⼩)–SQL语句的设置⽅式:
alter database 数据库名 modify file(name=逻辑⽂件名,maxsize=20)
四.分离附加:
分离主数据库-删除.ldf⽂件-附件数据库;
五.使⽤sql语句:(可设置为计划)
--将数据库设为简单模式。⽇志⽂件⾃动断开。alter database dbname set recovery simple--查看⽇志⽂件状况 use dbname
dbcc shrinkfile('logname') --like XXXX_log--恢复数据库模式
alter database dbname set recovery full六.备份⽇志:
SQL Server 2008 先备份⽇志将⽇志截断.
再⽤dbcc shrinkfile(⽇志⽂件,1024)收缩⽇志⽂件。七.设置简单模式:
设置为简单模式不记录⽇志;⼋.sql⾃动缩减⽇志:
针对⽇志这个问题,建议⼿动写个⼩⼯具(SQL提供⾃动缩减⽇志的脚本写法),添加到任务计划中,定时执⾏!可以节省很多磁盘空间!