事务记录如何工作

下面是一个从管理员和员工角度描述的一般事务记录示例。

管理员为服务器上的所有数据库启用事务记录。管理员选择“归档”记录样式以使事务日志有足够的空间;使用单独的镜像设备以便安全快速地存储事务日志;并安装备份实用程序以便对媒体故障和数据库损坏结果进行恢复。

管理员每天对事务日志进行备份。此过程不会太久,因为管理员只需备份进行的更改,而不是对服务器上所有数据库进行完整备份。

如果服务器崩溃,它会关闭,但不会太久。当管理员重新启动服务器后,它会将所有的更改从事务日志重放到数据库中。然后服务器很快就会正常运作。

数天后,发生了媒体故障。管理员使用最近的每周备份还原已损坏的数据库,并重放更改。

使用该数据库的员工不会发现他们工作起来有任何异常。但他们可能会注意到服务器开启和关闭的频率比平时多,但停机时间很短。

如何对数据库进行更改

事务记录不等事务记录提交到磁盘上就会将所有数据库事务投递到日志文件中。投递到日志文件中之后,更改即视为成功。物理写入过程可以等待到服务器不忙或以固定时间间隔进行。更改将按批地写入磁盘。

数据库在打开时会高速高速缓存到内存中。对数据库的写入操作发生在数据库的内存拷贝中。随后这些更改将迅速发送到事务日志中。稍后,内存中高速高速缓存的数据库版本将投递到磁盘上,以更新数据库。由于事务日志是连续的,因此没有搜寻时间,并且只在日志中写入恢复(或必要时进行撤销)操作的足够信息。在很多情况下,该信息远远小于数据库写入磁盘的信息。

如果在数据库尚未完全写入磁盘的时候打开数据库,则您打开的是数据库的内存中高速高速缓存版本。如果服务器在使用进行的更改更新完磁盘上的数据库版本之前崩溃,则在重新启动服务器的过程中将把日志应用于数据库。