目录
数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。
本文主要针对的是物理备份与还原,旨在利用达梦提供的图形化工具,快速的进行全量备份,增量备份,以及还原与恢复的全过程,帮助读者了解备份与还原的原理和操作方法。
本文使用到的工具:
DM管理工具:用于执行sql,查看表和备份集情况。
DM控制台工具:用于执行还原过程。
DM服务查看器:用于启停服务。
演示系统:Windows 11 ,达梦版本:DM8。
参考文章 DM8备份与还原
数据库的操作,本质上都是对某个数据文件页的读写操作。物理备份就是把这些数据文件中的有效数据页备份起来。一份完整的物理备份包括两部分:数据页内容,和备份过程中产生的redo日志。下图直观的展示了全量备份与增量备份的数据范围。理论上来说,备份中包含了直到备份完成前一刻的所有数据。
在达梦中,备份的还原可以分为以下阶段:
在稍后的实战中,我们将在图中1234分别插入数据,用来验证还原的效果。
联机备份需要开启归档,按照以下步骤开启
dmarch.ini 文件内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = d:\dm_arch\arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 2048
确保数据库正常开启,使用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,'全量备份过程中');
如图所示:
回到第一个会话,执行全量备份,执行下面语句后,立马回到会话二提交事务
BACKUP DATABASE;
dm 提供了相当多的备份可用参数,具体参考 DM8备份与还原,这里只给出最简单的例子
成功后,在数据库数据文件所属目录中可以看到一个bak文件夹,里面会出现一个命名格式为 DB_数据库名_FULL_日期 的文件夹,这就是我们的全量备份集。
在增量备份前,先往表中插入一条数据,记得提交。
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,'增量备份后');
库还原需要停止服务,使用DM服务查看器进行停止。
停止后,使用DM控制台工具进行备份的还原。
在左侧导航栏点击备份还原,然后在右侧点击还原
选择你的全量备份集后点击确认即可开始还原。
还原后,还需恢复和更新magic,如下图所示:
选择从备份集中恢复
更新DB_MAGIC
使用服务查看器启动数据库实例,查询数据库还原情况
SELECT * FROM BACKUP_RESTORE;
查询结果中有1,2两条数据,与开篇给出的全量备份数据范围一致,备份集中的数据包含备份过程中产生的数据。
在2.3.1的基础上,我们继续进行增量备份的还原
停止数据库实例服务,打开dm控制台工具,选择还原,这次备份集目录选择增量备份集。
之后是恢复,更新MAGIC,参考全量备份还原
完成后启动数据库并查询表信息
SELECT * FROM BACKUP_RESTORE;
可以见到增量备份前的数据成功的还原了,符合我们的增量备份数据范围。
如果我们想恢复到最新的时间点,但是已有的备份数据范围不够,这时候就需要利用到指定归档恢复。
需要注意的是,达梦中的备份还原强制要求按照还原-恢复-更改magic的过程来,更改完magic就表示一次完整的备份还原操作进行完了,所以虽然我们这里只需要执行恢复操作,但还是得先进行一次还原操作。
同[2.3.2](# 2.3.2 增量备份还原) 进行还原操作,还原完成后,点击恢复,恢复类型选择指定归档恢复,选择好对应的归档日志目录。
最后更新DB_MAGIC,启动并重连数据库,查询表,结果如下:
数据恢复到了最新的版本。
本文介绍了达梦中的物理备份与还原,对数据恢复的时间点进行了讲解,全文使用图形化工具方便读者快速了解备份还原的全过程。
如果想要一次性恢复到最新状态,只需要还原全量备份,还原增量备份,恢复归档日志,更新magic即可,无需每次还原都恢复和更新。
文章
阅读量
获赞
