SQL Server 日志文件过大预防及解决方法
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
事务日志文件(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 该文章在 2011/3/14 15:26:00 编辑过 |
关键字查询
相关文章
正在查询... |