事务日志(Transaction logs)是数据库结构中非常重要但又经常被忽略的部分。由于它并不像数据库中的schema那样活跃,因此很少有人关注事务日志。
事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。对于任何每一个事务过程,事务日志都有非常全面的记录,根据这些记录可以将数据文件恢复成事务前的状态。从事务动作开始,事务日志就处于记录状态,事务过程中对数据库的任何操作都在记录范围,直到用户点击提交或后退后才结束记录。每个数据库都拥有至少一个事务日志以及一个数据文件。
出于性能上的考虑,SQL Server将用户的改动存入缓存中,这些改变会立即写入事务日志,但不会立即写入数据文件。事务日志会通过一个标记点来确定某个事务是否已将缓存中的数据写入数据文件。当SQL Server重启后,它会查看日志中最新的标记点,并将这个标记点后面的事务记录抹去,因为这些事务记录并没有真正的将缓存中的数据写入数据文件。这可以防止那些中断的事务修改数据文件。
维护事务日志
因为很多人经常遗忘事务日志,因此它也会给系统带来一些问题。随着系统的不断运行,日志记录的内容会越来越多,日志文件的体积也会越来越大,最终导致可用磁盘空间不足。除非日常工作中经常对日志进行清理,否则日志文件最终会侵占分区内的全部可用空间。日志的默认配置为不限容量,如果以这种配置工作,它就会不断膨胀,最终也会占据全部可用空间。这两种情况都会导致数据库停止工作。<
Access软件网交流QQ群(群号:198465573) |