事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf。
在 SQL Server 7.0 和 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”错误消息
· 未复制的事务
解决方法
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。
1: 删除LOG
分离数据库 企业管理器->服务器->数据库->右键->分离数据库
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 时才能进行。
注意:一般新建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/goblin117/archive/2009/03/16/3994769.aspx
分享到:
相关推荐
通过以上步骤,我们可以清楚地了解到Oracle数据库中Alert日志文件的位置。这对于DBA来说是一项重要的技能,可以帮助他们更快地解决问题和维护数据库的稳定性。同时,理解ADR的工作原理和相关参数的作用也有助于更好...
- 在执行`ALTER DATABASE CLEAR`相关的命令时,请务必确认清楚需要清理的重做日志文件组号,以免误操作导致不必要的损失。 #### 结论 当遇到Oracle数据库联机重做日志文件丢失或损坏的问题时,需要根据具体情况...
日志文件记录了系统、应用程序以及服务的运行情况,包括错误、警告、信息和其他关键事件。随着时间的推移,这些日志文件可能会变得非常大,占用大量磁盘空间,影响系统性能,甚至可能导致存储瓶颈。因此,有效地管理...
在IT系统管理中,日志文件的管理是一项重要的工作。日志文件记录了系统的运行状态、错误信息以及各种操作轨迹,对于排查问题、优化性能、保障安全都有着关键作用。然而,随着时间的推移,日志文件会不断积累,占用...
Mybatis 的日志文件 可以清楚看到运行代码结果的日志信息
spring boot项目记录日志、...error日志单独输出一份至一个文件夹中,设置滚动策略与info日志保持一致时间滚动策越+单个文件最大滚动策略,如果对日志滚动备份不太清楚的话可以去官网上看一看,上面有详细的说明文档;
首先,我们需要创建一个日志文件,例如命名为"file_operation_log.txt"。每当有文件操作时,就向这个日志文件中写入一条记录。 日志记录通常包含以下几个关键元素: 1. **时间戳**:记录操作发生的具体时间,便于按...
"SQL Server 2000数据库日志清楚工具"就是为了解决这一问题而设计的小型应用程序,它能够帮助管理员快速有效地清理数据库的日志文件,从而释放磁盘空间,提高系统性能。 事务日志是SQL Server用来记录所有事务的...
SQL数据库日志清理工具是针对SQL Server数据库管理系统中日志文件过大或日志管理不当而设计的专业工具。在SQL Server中,日志文件(通常命名为*.ldf)用于记录所有事务的更改,包括数据的插入、更新和删除,以及...
C盘清理工具-一件清楚C盘冗余缓存和日志文件
本文将详细介绍一款名为“用友日志清楚工具”的实用小软件,帮助用户高效地管理用友系统的日志文件。 首先,我们关注的是“setup.exe”这个文件,这通常是一个安装程序,用于在用户的计算机上部署用友日志清理工具...
归档日志是数据库系统为了实现数据恢复而产生的日志文件,当数据库处于归档模式时,每一次完整的数据库备份后都会生成归档日志。随着时间的推移,这些归档日志会占用大量的磁盘空间,因此定期清理不再需要的归档日志...
本篇文章将深入讲解如何利用Linux的crontab工具设置定时删除任务,特别是针对日志文件的清理。 首先,我们需要了解`crontab`这个命令。`crontab`是Linux下的一个计划任务调度命令,它允许用户定义周期性的任务。每...
Tomcat作为一款广泛使用的Java应用服务器,它会在运行过程中生成各种临时文件,如编译后的JSP文件、日志文件、工作目录中的应用数据等。下面将详细介绍如何在Java Tomcat环境下清理这些临时文件。 首先,了解Tomcat...
一款小巧方便的SqlServer日志清除工具,可用于Sql Server 6.5到Sql Server 2000的各种版本的数据库日志的清除,使您再也不用担心数据库日志文件超过几百兆或上GB级而烦恼,使您的Sql Server数据库既小巧又精练。...
1. **归档模式**:当Oracle数据库运行在归档模式下,每次数据库完成一个事务,相关的重做日志条目不仅写入在线重做日志文件,还会被复制到归档日志文件中,这样可以确保在介质故障后能恢复数据。 2. **归档日志文件...
这里“过期”通常是指那些不再被需要的日志文件,例如已经被完全备份所覆盖的日志。 3. **Delete Archive Log Until Sequence 16** 命令`delete archivelog until sequence 16;`用于删除指定序列号之前的所有归档...
在计算机使用过程中,随着时间的推移,系统会产生大量的临时文件、缓存文件、日志文件等垃圾文件。这些文件不仅占用磁盘空间,还可能影响系统的性能。因此,定期清理这些垃圾文件对于保持系统的稳定性和提高运行效率...
此脚本首先定义了日志文件的路径,然后使用`find`命令查找一周前(`-mtime +7`)的`catalina.*.log`文件并删除它们。在脚本的后面,`javac`命令被用来编译所有位于`JAVA_SRC`目录下的Java源文件。 另一个脚本`...
这样,无论哪个线程调用这个函数,都可以清楚地知道这条日志信息来自哪个线程。 3. **线程安全**:因为多线程环境下的日志函数可能会被并发调用,所以必须确保它是线程安全的。这可以通过使用互斥量(mutex)、信号...