11.3 完整备份
11.3.1 完整备份的过程
完整备份包含了数据库中的所有数据,以及可以恢复这些数据的足够的日志(以便恢复到该备份的结尾)。
备份的过程大致包含以下步骤:
(1)锁定数据库,阻塞所有的事务。
(2)在事务日志中放置一个标志1。
(3)释放数据库锁。
(4)提取数据文件的所有包含数据的数据页面,把它们写入备份设备。不包含数据的数据页面被跳过,因此备份的文件大小永远不会大于该数据库的数据文件。
(5)锁定数据库,阻塞所有事务。
(6)在事务日志中放置一个标志2。
(7)释放数据库锁。
(8)提取标志1与标志2之间的所有事务,把它们追加到备份中。
为了提升性能,发起一次备份时,备份引擎以最快的速度从数据文件中获取数据页面,这个过程不考虑页面的顺序。根据这个机制,可以用多个线程向备份设备写入数据页面。
11.3.2 完整备份的原理
11.3.3 完整备份中的事务日志
这是因为在备份过程中可能还在不停地产生“脏页”,在恢复时就需要利用这些少量日志进行“重做”(把“脏页”回写到磁盘的数据页面),这样就可以恢复到备份完成时的那个时间点。
时间: 2024-08-07 00:13:25