日志文档满而造成SQL数据库无法写入文档时,可用两种方法解决该问题:
第一种方法:清空日志。
1.打开查询分析器,输入命令
| DUMP TRANSACTION 数据库名 WITH NO_LOG |
2.再打开企业管理器--右键您要压缩的数据库--任何任务--收缩数据库--收缩文档--选择日志文档--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就能够了。
第二种方法有一定的风险性,因为SQL Server的日志文档不是实时写入数据库主文档的,如处理不当,会造成数据的损失。
1: 删除LOG
分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文档
附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多KB。
注意:建议使用第一种方法。
假如以后,不想要他变大。
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
| alter database 数据库名 set recovery simple |
另外,Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时假如事务日志文档超过其大小的70% 则将其内容清除在研发数据库时时常将此选项配置为True Auto shrink定期对数据库进行检查当数据库文档或日志文档的未用空间超过其大小的25%时,系统将会自动缩减文档使其未用空间等于25% 当文档大小没有超过其建立时的初始大小时不会缩减文档缩减后的文档也必须大于或等于其初始大小对事务日志文档的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。
注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



