巨灵鸟

电话   4000156919
当前位置:首页 > 数据库管理_ERP百科

什么是事务日志

来源:巨灵鸟软件  作者:进销存软件  发布:2014/5/20  浏览次数:4376

1、事务日志文件

事务日志文件,扩展名为ldf,它是数据库结构中非常重要却又常被忽视的部分。它是用来记录数据库更新情况的文件,它可以记录针对数据库的任何操作,并将记录的结果保存到独立的文件中。对于每一次数据库更新的过程,事务日志文件都有非常全面的记录。根据这些记录可以恢复数据库更新前的状态。

2、作用

出于性能上的考虑,SQL Server将用户的改动存入缓存中,这些改变会立即写入事务日志,但不会立即写入数据文件。事物日志会通过一个标记点来确定某个事物是否已将缓存中的数据写入数据文件。当SQL Server重启后,它会查看日志中最新的标记点,并将这个标记点后面的事物记录抹去,因为这些事物记录并没有真正的将缓存中的数据写入数据文件。这可以防止那些中断的交易修改数据文件。

举个例子,在一个银行系统中,某个用户需要转帐。这个转帐作业主要是通过两个步骤来完成。第一个步骤就是扣减用户帐户中的金额; 第二个步骤是把钱转入到另外一个用户那里。现在如果在转帐的过程中,第一步成功了,但是第二个步骤因为某种原因出错了。如用户提供的帐户名字与实际转帐的帐户名字不符,则第二个操作就会失败。此时整个转帐操作就会以失败而告终。但是现在的问题是,第一个扣减的动作在数据库中已经完成了。而实际却是没有转帐成功,就造成了数据一致性的问题。实际过程中如果应用程序发出ROLLBACK 语句,或者数据库引擎检测到错误,就使用日志记录回滚未完成的事务所做的修改。也就是说,当第二个操作失败的话,应用程序要发出一个ROLLBACK 语句,利用事务日志回滚功能,恢复第一步的操作。也就是说,把扣减金额的操作进行恢复,从而实现数据的一致性。类似的应用,在数据库开发过程中很频繁。


3、事务日志的常见故障
一般情况下,在能够容纳两次事务日志截断之间发生的最大数量的事务时,事务日志的大小是稳定的,事务日志截断由检查点或者事务日志备份触发。
然而,在某些情况下,事务日志可能会变得非常大,以致用尽空间或变满。通常,在事务日志文件占尽可用磁盘空间且不能再扩展时,您将收到如下错误消息:
Error:9002, Severity:17, State:2
The log file for database ’%.*ls’ is full.
除了出现此错误消息之外,SQL Server 还可能因为缺少事务日志扩展空间而将数据库标记为 SUSPECT。有关如何从此情形中恢复的其他信息,请参见 SQL Server 联机帮助中的“磁盘空间不足”主题。

 

来源:巨灵鸟 欢迎分享本文

上一个文章:了解SQL数据库

下一个文章:备份和恢复数据库

  • 点击这里给我发消息
  • 点击这里给我发消息