技术开发 频道

SQL Server日志文件总结及日志满的处理

  原因  

  事务日志扩展可能由于以下原因或情形而发生:

  · 未提交的事务

  · 非常大的事务

  · 操作:DBCC DBREINDEX 和 CREATE INDEX

  · 在从事务日志备份还原时

  · 客户端应用程序不处理所有结果

  · 查询在事务日志完成扩展之前超时,您收到假的“Log Full”错误消息

  · 未复制的事务
  
  解决方法:  

  日志文件满而造成SQL数据库无法写入文件时,可用两种方法:

  一种方法:清空日志。

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

DUMP TRANSACTION 数据库名 WITH NO_LOG

 

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

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

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

  2.删除LOG文件

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

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

  注意:建议使用第一种方法。  

  如果以后,不想要它变大。

  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 时才能进行。  


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