技术开发 频道

达梦备份恢复原理

  【IT168 文档】本文对达梦数据库系统的备份恢复的各个方面进行了详细的阐述,包括达梦文件结构、UNDO日志、REDO日志、备份技术和检查点技术。特别的,对基于时间点恢复和并行恢复进行了介绍。

  1.恢复概述

  1.1恢复的必要性

  数据库系统在运行的过程会发生这样或那样的故障。按照故障的严重程度,可以将故障划分为如下三种类型:

  (1)事务故障

  逻辑错误:事务由于某些内部条件而无法继续正常工作,如非法输入、找不到数据、溢出或超出资源限制。

  系统错误:系统进入一种不良状态(如死锁)结果事务无法继续正常执行。

  (2)系统崩溃

  有硬件故障,或者是数据库软件或操作系统的漏洞,导致内存数据丢失。

  (3)磁盘故障

  在数据传送操作过程中由于磁头损坏或故障造成磁盘块上的内容丢失。

  正因为有故障发生,所以要解决恢复的问题。

  1.2 恢复的目标

  (1)数据一致性:将数据库恢复到故障发生前的某个一致性状态。

  一致性状态如何定义?将数据库恢复到某个时刻,这个时刻的事务如果处于提交状态就提交,如果是未提交状态或回滚状态就回滚,通过保证事务的ACID特性来保证数据库的一致性。

  (2)数据可用性:必须将崩溃后数据库不能使用的时间减少到最小。也就是缩短将数据库恢复到某个一致性状态的时间。

  1.3 恢复的技术

  (1)基于日志的恢复技术

  日志是记录数据库修改的结构。提前写日志规则(write-ahead logging, WAL):对数据文件的修改刷入磁盘之前,必须保证相应修改的日志记录已经保存到稳定存储器上。提前写日志的优点:事务提交的时候,只需要提交相应的日志记录到磁盘即可,不需要刷数据页。

  (2)达梦的事务日志

  在达梦数据系统中,有两种日志文件,一个是回滚日志文件(就是rol文件),一个是重做日志文件(就是log文件)。事务进行更新操作,首先写回滚文件,然后写数据文件,这两个操作都对应要写重做日志文件。也就是说对回滚文件和数据文件的修改都必须反映到重做日志文件中。

  回滚文件中记录的是UNDO日志,UNDO日志记录的是数据的前映像,即修改前的值,具有逻辑意义。重做日志文件中记录的是REDO日志,REDO日志记录的是数据的后映像,即修改后的值,因为记录的是物理修改,不具有逻辑意义。

1
相关文章