欢迎光临

木子屋

标题: SQL Server 日志文件过大预防及解决方法

作者: dnawo

日期: 2008-04-07 11:31 AM

分类: 服务器

内容: 事务日志文件(Transaction Log File)是用来记录数据库更新情况的文件，扩展名为LDF。 在 SQL Server 2000 中，如果设置了自动增长功能，事务日志文件将会自动扩展。一般情况下，在能够容纳两次事务日志截断之间发生的最大数量的事务时，事务日志的大小是稳定的，事务日志截断由检查点或者事务日志备份触发。然而，在某些情况下，事务日志可能会变得非常大，以致用尽空间或变满。通常，在事务日志文件占尽可用磁盘空间且不能再扩展时，您将收到如下错误消息：
引用内容Error:9002, Severity:17, State:2
The log file for database ’%.*ls’ is full.
除了出现此错误消息之外，SQL Server 还可能因为缺少事务日志扩展空间而将数据库标记为 SUSPECT。有关如何从此情形中恢复的其他信息，请参见 SQL Server 联机帮助中的“磁盘空间不足”主题。
另外，事务日志扩展可能导致下列情形：
·非常大的事务日志文件。
·事务可能会失败并可能开始回滚。
·事务可能会用很长时间才能完成。
·可能发生性能问题。
·可能发生阻塞现象。
原因
事务日志扩展可能由于以下原因或情形而发生：
·未提交的事务
·非常大的事务
·操作：DBCC DBREINDEX 和 Create INDEX
·在从事务日志备份还原时
·客户端应用程序不处理所有结果
·查询在事务日志完成扩展之前超时，您收到假的“Log Full”错误消息
·未复制的事务
解决方法
方法一：清空日志
1) 打开查询分析器，输入命令 BACKUP LOG 数据库名 WITH NO_LOG(或者DUMP TRANSACTION 数据库名 WITH NO_LOG )
2) 再打开企业管理器→右键你要压缩的数据库→所有任务→收缩数据库→收缩文件→选择日志文件→在收缩操作里选择收缩文件至M，这里会给出一个允许收缩到的最小M数，直接输入这个数，确定就可以了。
方法二：生成新的日志文件
1) 分离数据库
2) 重命名/删除LOG文件
3) 附加数据库(重新生成日志文件)
此法生成新的LOG，大小只有500多K。这种方法有一定的风险性，因为SQL SERVER的日志文件不是即时写入数据库主文件的，如处理不当，会造成数据的损失，建议使用第一种方法。
如果以后不想要它变大，SQL Server 2000下使用：
在数据库上点右键→属性→选项→故障恢复→简单模型
或用SQL语句：
alter database 数据库名 set recovery simple

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.580 ms

返回

标题: SQL Server 日志文件过大预防及解决方法

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.580 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.613 ms

返回