技术开发 频道

达梦备份恢复原理

  2.达梦文件结构

  2.1库文件整体结构

  达梦库文件整体结构如图2.1所示

图2.1 达梦文件结构图

  主控制文件:指dm01.ctl和dm02.ctl。主要记录系统初始化信息(页大小,簇大小,是否大小写敏感,是否使用Unicode等)和系统中库的控制文件路径。

  库控制文件:指system01.ctl和system02.ctl。主要记录库的基本信息(库名,归档目录,备份目录等)和文件组信息。

  DBF和ROL文件:采取统一的存储格式,按建库时的页大小,分页存储,页号连续,每个页头上都有一个标识页被修改的LSN。

  LOG文件:采用独立的页大小,一般为512字节,16兆作为一个逻辑上的文件。在写日志的过程中,逻辑文件号不断增大。LSN则根据文件号,页号,页偏移计算得来的,单调递增。

  2.2回滚文件结构

  回滚文件是按回滚段组织的。一个事务在一个库上进行更新操作,则在该库上建立其对应的回滚段。回滚段是用来记录事务逻辑操作的页集合。回滚段中记录回滚记录以及回滚段的状态。结合回滚段的状态和回滚记录就能实现事务回滚,将数据库恢复到事务开始时的状态。

  (1)回滚记录

  回滚记录也就是UNDO日志,记录的是对一行(row)操作的前映像值。回滚记录是明确的逻辑意义的。

  记录的格式如下:

  a)类型:插入、修改或删除

  b)数据库ID

  c)表ID

  d)表的列数

  e)被更新的列ID数组

  f)元组数据:对插入是插入的新值,对修改和删除是旧值

  g)时间戳:供事务用

  事务对数据库的插入、修改和删除,首先生成回滚记录,反映到回滚文件上,然后事务的操作才会反映到数据文件上。

  (2)回滚段的状态

  常见的回滚段状态有:

  a)TRX_NOT_START:事务还未开始

  b)TRX_ACTIVE:活动事务

  c)TRX_COMMITING:正在提交

  d)TRX_ROLLING:正在回滚

  e)TRX_COMMITTED:已提交

  f)TRX_ROLLBACKED:已回滚

1
相关文章