注册
快速上手达梦备份与还原
专栏/技术分享/ 文章详情 /

快速上手达梦备份与还原

,,, 2025/11/28 125 0 0
摘要

快速上手达梦备份与还原

目录
image.png

一、概述

数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。

本文主要针对的是物理备份与还原,旨在利用达梦提供的图形化工具,快速的进行全量备份,增量备份,以及还原与恢复的全过程,帮助读者了解备份与还原的原理和操作方法。

本文使用到的工具:

DM管理工具:用于执行sql,查看表和备份集情况。

DM控制台工具:用于执行还原过程。

DM服务查看器:用于启停服务。

演示系统:Windows 11 ,达梦版本:DM8。

参考文章 DM8备份与还原

二、备份与还原

2.1 原理

数据库的操作,本质上都是对某个数据文件页的读写操作。物理备份就是把这些数据文件中的有效数据页备份起来。一份完整的物理备份包括两部分:数据页内容,和备份过程中产生的redo日志。下图直观的展示了全量备份与增量备份的数据范围。理论上来说,备份中包含了直到备份完成前一刻的所有数据。

在达梦中,备份的还原可以分为以下阶段:

  • 还原:将备份集中的数据还原
  • 恢复:重做备份集中的redo日志
  • 更新 DB_MAGIC:数据库魔数,数据库初始化时生成,数据库还原后重新生成新的 DB_MAGIC

在稍后的实战中,我们将在图中1234分别插入数据,用来验证还原的效果。

全量备份与增量备份示意图

2.2 备份

2.2.1 全量备份

联机备份需要开启归档,按照以下步骤开启

  1. 关闭数据库,在 dm.ini 所在的目录手动创建并编辑 dmarch.ini 文件,之后保存;

dmarch.ini 文件内容如下:

[ARCHIVE_LOCAL1] 

ARCH_TYPE = LOCAL 

ARCH_DEST = d:\dm_arch\arch

ARCH_FILE_SIZE = 1024 

ARCH_SPACE_LIMIT = 2048
  1. 编辑 dm.ini 文件,设置参数 ARCH_INI=1,保存;
  2. 启动数据库实例,数据库已运行于归档模式。

确保数据库正常开启,使用SYS_DBA身份连接。

创建一个表用来插入需要的数据

CREATE TABLE BACKUP_RESTORE( INSERT_ID INT, DESCRIBE VARCHAR(50), INSERT_TIME DATETIME DEFAULT SYSDATE() )

在开始备份前,先插入一条数据, 记得提交。

INSERT INTO BACKUP_RESTORE(INSERT_ID,DESCRIBE) VALUES(1,'全量备份开始前');

打开一个新的会话,再插入一条数据,但是先不提交,等执行备份的过程中提交

INSERT INTO BACKUP_RESTORE(INSERT_ID,DESCRIBE) VALUES(2,'全量备份过程中');

如图所示:
image20251121112435734.png

回到第一个会话,执行全量备份,执行下面语句后,立马回到会话二提交事务

BACKUP DATABASE;

image20251121113139287.png

dm 提供了相当多的备份可用参数,具体参考 DM8备份与还原,这里只给出最简单的例子

成功后,在数据库数据文件所属目录中可以看到一个bak文件夹,里面会出现一个命名格式为 DB_数据库名_FULL_日期 的文件夹,这就是我们的全量备份集。

2.2.2 增量备份

在增量备份前,先往表中插入一条数据,记得提交。

INSERT INTO BACKUP_RESTORE(INSERT_ID,DESCRIBE) VALUES(3,'全量备份后,增量备份前');

然后进行增量备份

BACKUP DATABASE INCREMENT WITH BACKUPDIR '你的全量备份集全路径';

增量备份默认为差异备份,每一次增量备份都基于上一次备份(不管是全量还是增量),所以如果在全量备份后,要进行第二次或者更多次增量备份,要把路径换成上一次备份的备份集路径。

成功后,在bak文件夹中能看到 DB_数据库名_increment_日期 的文件。

增量备份后,再插入一条数据,记得提交

INSERT INTO BACKUP_RESTORE(INSERT_ID,DESCRIBE) VALUES(4,'增量备份后');

2.3 还原

库还原需要停止服务,使用DM服务查看器进行停止。

停止后,使用DM控制台工具进行备份的还原。

2.3.1 全量备份还原

在左侧导航栏点击备份还原,然后在右侧点击还原

image20251121120305166.png
选择你的全量备份集后点击确认即可开始还原。

还原后,还需恢复和更新magic,如下图所示:

选择从备份集中恢复

image20251121142718208.png

更新DB_MAGIC

image20251121142814219.png

使用服务查看器启动数据库实例,查询数据库还原情况

SELECT * FROM BACKUP_RESTORE;

image20251121143158118.png

查询结果中有1,2两条数据,与开篇给出的全量备份数据范围一致,备份集中的数据包含备份过程中产生的数据。

2.3.2 增量备份还原

在2.3.1的基础上,我们继续进行增量备份的还原

停止数据库实例服务,打开dm控制台工具,选择还原,这次备份集目录选择增量备份集。

image20251121143927043.png

之后是恢复,更新MAGIC,参考全量备份还原

完成后启动数据库并查询表信息

SELECT * FROM BACKUP_RESTORE;

image20251121144351916.png

可以见到增量备份前的数据成功的还原了,符合我们的增量备份数据范围。

如果我们想恢复到最新的时间点,但是已有的备份数据范围不够,这时候就需要利用到指定归档恢复。

2.3.3 指定归档恢复

需要注意的是,达梦中的备份还原强制要求按照还原-恢复-更改magic的过程来,更改完magic就表示一次完整的备份还原操作进行完了,所以虽然我们这里只需要执行恢复操作,但还是得先进行一次还原操作。

同[2.3.2](# 2.3.2 增量备份还原) 进行还原操作,还原完成后,点击恢复,恢复类型选择指定归档恢复,选择好对应的归档日志目录。

image20251121145948340.png

最后更新DB_MAGIC,启动并重连数据库,查询表,结果如下:

image20251121160104769.png

数据恢复到了最新的版本。

三、总结

本文介绍了达梦中的物理备份与还原,对数据恢复的时间点进行了讲解,全文使用图形化工具方便读者快速了解备份还原的全过程。

如果想要一次性恢复到最新状态,只需要还原全量备份,还原增量备份,恢复归档日志,更新magic即可,无需每次还原都恢复和更新。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服