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提供自动缩减日志的脚本写法),添加到任务计划中,定时执行!可以节省很多磁盘空间!