Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 启动并连接到数据库 » 使用数据库文件 » 事务日志

 

了解检查点日志

数据库文件由页(即硬盘中大小固定的区域)组成。检查点日志位于数据库文件的末尾处,并存储在系统 dbspace 中。在会话过程中,页会根据需要添加到检查点日志中,整个检查点日志会在会话结束时删除。

在任何页更新(弄)之前,数据库服务器都执行以下操作:

  • 它将该页读入内存的数据库高速缓存中。

  • 它创建原始页的副本。这些复制的页称为检查点日志。

数据库服务器将页 A 读入内存的高速缓存中。然后页 A 被添加到检查点日志中。

对页进行的更改应用于高速缓存中的副本。出于性能上的考虑,它们不立即写入磁盘上的数据库文件中。

对页 A 进行的更改应用于高速缓存中的副本(称作页 B)。对页 A 的更改记录在事务日志中。

当高速缓存变满时,已更改的页可写入到磁盘中。检查点日志中的副本保持不变。

页 B 会写入到数据库中,但页 A 的副本在检查点日志中保持不变。事务日志包含自检查点以来对页 A 进行的更改。
了解检查点

检查点是一个点,在到达该点时,所有脏页都写入到磁盘中,因而该点代表磁盘上数据库的一种已知的一致状态。在检查点之后,检查点日志的内容都将删除。空检查点日志页在给定会话内保留在检查点日志中,并且可重新用于新的检查点日志数据。随着检查点日志逐渐增大,数据库文件也逐渐增大。

在检查点,数据库中的所有数据都保存在磁盘上的数据库文件中。数据库文件中的信息与事务日志中的信息相匹配。在恢复过程中,数据库首先恢复到最近的检查点,然后应用自该检查点以来进行的更改。

整个检查点日志(包括所有空的检查点日志页)会在每个会话结束时删除。删除检查点日志将使数据库缩小。

数据库服务器可以启动检查点并在出现检查点时执行其它操作。不过,如果检查点操作已经在进行,则启动新检查点的任何操作(如 ALTER TABLE 或 CREATE INDEX)必须等到当前检查点操作结束之后方可执行。

另请参见