现在的位置: 首页 > 综合 > 正文

数据库“TSupervise” 的事务日志已满问题的解决之法

2013年09月14日 ⁄ 综合 ⁄ 共 638字 ⁄ 字号 评论关闭

      写了个windows服务程序,并且设置为开机自动启动,功能为:将Acess数据库中的数据导入到SQL Server中,并且每隔10s导入一次。

结果开机启动后,数据导入一直在后台进行,不知过了多久,突然发现本奇卡,后来找原因才发现数据库中数据过多,打开数据库表一看,

发现有>1800w条数据记录,光日志文件都有10.5G左右,数据库文件1G左右。然后执行delete表操作,想清空表中记录,结果出现:

数据库 “TSupervise”的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。

最后网上搜寻,终于找到解决方法,说是清空日志即可。方法如下所示:

1.打开查询分析器,输入:

dump transaction databasename(注:databasename为你要进行日志删除操作的数据库名) with no_log并执行。

2.查询分析器里输入:

alter database databasename set recovery simple

3.右键你要压缩的数据库--所有任务--收缩--文件,右侧会出现相应的信息,在“文件类型”中选择“日志”,在收缩操作中选择“在释放未使用的空间前重新组织页”,将文件收缩到xxMB,填入右侧括号的最小值即可。

以上步骤完成后,便可进行其他操作了,我后来将表中数据全部清空,结果花了我大概7min钟:

参考:http://bbs.csdn.net/topics/300122867

抱歉!评论已关闭.