MSSQL数据库日志清理实例详解
日志文件满而造成SQL数据库无法写入文件时,可用很多种方法:
打开SQL查询分析器 => 连接数据库所在服务器
可以使用以下语句清理数据库日志:
–对mssql事务日志变大的处理 清空日志
DUMP TRANSACTION 数据库名 WITH NO_LOG
–截断事务日志
BACKUP LOG 数据库名 WITH NO_LOG
–收缩数据库
DBCC SHRINKDATABASE(数据库名)
另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,
会造成数据的损失。
1、备份数据库(以防万一)
2、分离数据库 企业管理器->服务器->数据库->右键->分离数据库
3、删除LOG文件
4、附加数据库 企业管理器->服务器->右键->附加数据库
此法生成新的LOG,大小只有500多K。
如果以后,不想要它变大。
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
alter database 数据库名 set recovery 易做图
v如果我们手工来清除可能有时会忘记了,下面我给一个自动清除的实例。
自动清理方法:同样是利用sql server代理服务,执行自动作业。
打开企业管理器,进入"管理"-"sql server代理服务"-"作业",在右侧窗口点击右键,选择"新建作
业"。"常规"选项卡中,填写作业名称,具体描述,注意所有者最好还是用sa或者默认的管理帐号。
转到"步骤"选项卡,新建作业步骤,填写步骤名称,类型为脚本,数据库为需要清理日志的数据库
,在下边命令中填写以下命令:
DUMP TRANSACTION 数据库名称 WITH NO_LOG
DBCC SHRINKFILE(数据库日志文件名,1)
上边的数据库名称填写需要维护的数据库名称,数据库日志文件名填写其对应的日志文件名,注意
,不是资源管理器里看到的带后缀名的那个名字,而是企业管理器里,数据库属性里日志选项卡中日志
的名字(通常也只是差一个后缀名……),确定后添加一个作业步骤。 如果需要维护多个数据库,用上述
方法重复添加作业步骤,注意每个步骤成功或失败后的动作即可,最后选择一下开始的步骤。
在"调度"选项卡中,类似备份的维护计划,填写调度周期,即定期清理的周期
补充:数据库,Mssql