sqlserver 事务日志已满的几种解决方案

一.删除日志文件:(不建议)

二.手动收缩:

1.数据库右键属性-选项-恢复模式-下拉选择简单-最后点击确定

sqlserver 事务日志已满的几种解决方案

 

 

2.右键数据库-任务-收缩-文件类型-下拉选择日志-收缩操作-在释放未使用....(默认收缩到1MB)-最后点击确定

 sqlserver 事务日志已满的几种解决方案

 

 

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

sqlserver 事务日志已满的几种解决方案

上一篇:MySQL数据库的约束


下一篇:java通用的jdbc数据库操作类