数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

清理SQLServer数据库日志的两种方法


发布日期:2019年01月09日
 
清理SQLServer数据库日志的两种方法

sql server数据库使用时间长了日志文件会很大占用过多系统资源数据库可能会报 log full 的错误甚至磁盘空间占满让数据库处于不可用状态这个时候我们需要清理数据库以前有人开发了数据库日志清理工具好像还要收费其实很简单就可以完成这个操作请跟我来

清理sql server数据库日志可用两种方法

方法一清空日志

打开查询分析器输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG

再打开企业管理器右键你要压缩的数据库所有任务收缩数据库收缩文件选择日志文件在收缩方式里选择收缩至: 这里会给出一个允许收缩到的最小M数直接输入这个数确定就可以了

方法二有一定的风险性因为SQL SERVER的日志文件不是即时写入数据库主文件的如处理不当会造成数据的损失

删除LOG

分离数据库 企业管理器->服务器->数据库->右键->分离数据库

删除LOG文件

附加数据库 企业管理器->服务器->数据库->右键->附加数据库

此法生成新的LOG大小只有多K

注意建议使用第一种方法

如果以后不想要它变大

SQL下使用

在数据库上点右键>属性>选项>故障恢复模型选择简单模型

或用SQL语句alter database 数据库名 set recovery simple

另外数据库属性有两个选项与事务日志的增长有关

Truncate log on checkpoint

(此选项用于SQLSQL 中即故障恢复模型选择为简单模型)

当执行CHECKPOINT 命令时如果事务日志文件超过其大小的% 则将其内容清除在开发数据库时时常将此选项设置为True

定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的%时系统将会自动缩减文件使其未用空间等于% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行

注意一般立成建立的数据库默认属性已设好但碰到意外情况使数据库属性被更改请用户清空日志后检查数据库的以上属性以防事务日志再次充满

上一篇:OCPOracle10g管理(一):配置恢复管理器

下一篇:oracle加锁