注册
物理备份实操练习
专栏/技术分享/ 文章详情 /

物理备份实操练习

好运连连 2026/10/16 176 0 0
摘要

DM8 学习笔记:物理备份实操练习

1. 前期准备

1.1 实验环境

本文使用 DM8 单节点测试环境,实践操作系统文件级冷备、DMRMAN 脱机备份,以及通过 disql 执行的联机全库、单表、表空间和增量备份。

项目 配置
实例名 DAMENG
实例配置文件 /dmdata/data/DAMENG/dm.ini
数据库端口 5236
备份目录 /dmdata/dmbak

1.2 创建备份目录

使用 root 创建目录,并设置属主和权限:

mkdir -p /dmdata/dmbak chown dmdba:dinstall /dmdata/dmbak chmod 750 /dmdata/dmbak ls -ld /dmdata/dmbak df -h /dmdata

该备份目录位于 /dmdata 所在文件系统,与数据目录处于同一个文件系统内,生产环境建议将备份复制到独立磁盘或异机存储,避免数据库磁盘故障时备份也一并丢失。

1.3 检查数据库状态

systemctl status DmServiceDAMENG disql / as sysdba

image.png

后续 SQL 示例均在 disql 中执行。
image.png

1.4 开启归档模式

先检查当前归档状态及配置:

SELECT ARCH_MODE FROM V$DATABASE; SELECT * FROM V$DM_ARCH_INI;

image.png
如果已经处于归档模式,应核对归档配置和目录可用性,不必重复开启。若尚未开启,则根据当前 DM8 版本的官方手册和实例状态完成配置。

2. 脱机备份

脱机备份要求数据库实例停止运行。本节分别演示操作系统文件级备份和 DMRMAN 脱机备份。

2.1 操作系统文件级冷备

2.1.1 停止数据库

systemctl stop DmServiceDAMENG systemctl status DmServiceDAMENG

确认实例已经正常关闭后再复制文件。不要在数据库仍运行、数据文件仍变化时直接打包,并将其当作一致性冷备份。

2.1.2 打包实例目录

tar -czpf /dmdata/dmbak/DAMENG_cold_$(date +%Y%m%d_%H%M%S).tar.gz -C /dmdata/data DAMENG

该命令将 /dmdata/data/DAMENG 目录打包到 /dmdata/dmbak。恢复时仍需结合实例配置、文件权限和数据库恢复要求处理。

image.png

2.1.3 检查并启动数据库

ls -lh /dmdata/dmbak/ tar -tzf /dmdata/dmbak/DAMENG_cold_实际时间戳.tar.gz | head

image.png

systemctl start DmServiceDAMENG systemctl status DmServiceDAMENG

image.png

2.1.4 小结

操作系统文件级冷备操作简单,适合停库后整体复制实例文件;但它不是达梦数据库工具生成的备份集,恢复时必须保证实例文件完整、权限正确,并按文件级恢复方案执行。

2.2 DMRMAN 脱机全量备份

2.2.1 停止实例并进入 DMRMAN

systemctl stop DmServiceDAMENG systemctl status DmServiceDAMENG su - dmdba dmrman

确认实例已关闭后,在 RMAN> 提示符下执行备份。

或是通过DMRMAN的CTLSTMT参数,直接在linux命令行中带入备份命令

2.2.2 执行全量备份

BACKUP DATABASE '/dmdata/data/DAMENG/dm.ini' FULL BACKUPSET '/dmdata/dmbak/DAMENG_OFFLINE_FULL_01';
  • BACKUP DATABASE:执行数据库备份。
  • dm.ini:指定目标实例的配置文件。
  • FULL:指定全量备份。
  • BACKUPSET:指定备份集输出路径。

image.png

2.2.3 检查备份集并恢复服务

find /dmdata/dmbak/DAMENG_OFFLINE_FULL_01 -maxdepth 2 -type f systemctl start DmServiceDAMENG systemctl status DmServiceDAMENG

image.png

启动后通过 disql 验证连接。备份集目录存在并不代表一定可恢复;还应进行备份集检查和恢复演练。

image.png

3. 联机备份

联机备份在数据库运行期间执行,可以减少因备份导致的停机时间。全库备份、表空间备份和增量备份需要结合归档配置及基备份集;单表备份有不同的限制。

3.1 联机全库完全备份

确认数据库处于 OPEN 状态,归档配置符合要求,且备份目录对数据库运行用户可写。

在 disql 中执行:

BACKUP DATABASE FULL BACKUPSET '/dmdata/dmbak/DAMENG_ONLINE_FULL_01';

image.png

执行完成后检查返回信息及备份集:

ls -lh /dmdata/dmbak/ find /dmdata/dmbak/DAMENG_ONLINE_FULL_01 -maxdepth 2 -type f

该全量备份可作为后续数据库增量备份的基备份。后续应保留增量备份所依赖的基备份集,不能随意删除。

若是备份路径在BAK_PATH配置路径下,可通过查询V$BACKUPSET视图查询备份信息
image.png

3.2 单表备份:WZL.TEST

3.2.1 确认对象和所属表空间

本文按 WZL.TEST 表示 WZL 模式下的 TEST 表。先查询对象是否存在及其表空间:

SELECT OWNER, TABLE_NAME, TABLESPACE_NAME FROM DBA_TABLES WHERE OWNER = 'WZL' AND TABLE_NAME = 'TEST';

image.png

如果当前账号没有查询 DBA_TABLES 的权限,可使用具有相应权限的账号查询,或通过当前版本支持的数据字典视图确认。

3.2.2 执行单表备份

表备份是物理备份中唯一能联机恢复的备份类型。

BACKUP TABLE WZL.TEST BACKUPSET '/dmdata/dmbak/WZL_TEST_TABLE_FULL_01';

image.png

表备份属于联机完全备份。执行后检查返回信息和备份集:

find /dmdata/dmbak/WZL_TEST_TABLE_FULL_01 -maxdepth 2 -type f

image.png

单表备份适合针对单个表的数据保护或迁移。它与全库备份的恢复对象及恢复流程不同,不能把单表备份集当成全库备份集使用。

3.3 表空间备份

表空间备份针对指定表空间中的有效数据,并非只备份其中某一张表。 表空间备份要求数据库处于 OPEN 状态,并且需要满足联机备份的归档要求。

3.3.1 查询 WZL.TEST 所属表空间

SELECT TABLESPACE_NAME FROM DBA_TABLES WHERE OWNER = 'WZL' AND TABLE_NAME = 'TEST';

image.png

3.3.2 表空间全量备份

BACKUP TABLESPACE MAIN FULL BACKUPSET '/dmdata/dmbak/MAIN_TS_FULL_01';

image.png

如果表空间中还有其他对象,表空间备份也会覆盖该表空间中的有效数据,而不是只备份 WZL.TEST。

检查备份集:

find /dmdata/dmbak/MAIN_TS_FULL_01 -maxdepth 2 -type f

image.png

3.3.3 表空间增量备份

先成功完成表空间全量备份,再执行增量备份:

BACKUP TABLESPACE MAIN INCREMENT WITH BACKUPDIR '/dmdata/dmbak' BACKUPSET '/dmdata/dmbak/MAIN_TS_INCR_01';

image.png

WITH BACKUPDIR 用于指定基备份集搜索目录。执行前应确认该目录内存在与本次表空间增量备份匹配的基备份集,并核对当前版本支持的语法。

3.4 数据库增量备份

3.4.1 增量备份原理

增量备份原理

增量备份以已有备份集为基础,通过扫描数据文件,识别并备份需要纳入本次备份的数据页。与完全备份相比,增量备份通常能够减少备份数据量,但实际效果取决于数据变化情况。

根据基备份的选择方式,DM8 的增量备份分为两种:

  • 差异增量备份:基备份可以是完全备份集,也可以是增量备份集,备份自相应基备份以来需要纳入本次备份的数据页。
  • 累积增量备份:基备份只能是完全备份集,备份自该完全备份以来需要纳入本次备份的数据页。

增量备份的恢复依赖完整的备份集链。差异增量可能依赖前序增量备份,而累积增量以完全备份为基准。执行恢复时,需要确保相关基备份及恢复所需的增量备份集均可用,不能仅保留最后一次增量备份而删除其依赖的备份集。

3.4.2 准备全量基备份

使用前面生成的全库全量备份作为基备份:

/dmdata/dmbak/DAMENG_ONLINE_FULL_01

如果全量备份尚未成功完成,应先执行并确认备份集可用。

3.4.3 产生测试数据变化

增量备份需要有可备份的数据变化。在测试表中执行一笔测试数据变更并提交。

image.png

3.4.4 执行差异增量备份

BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dmdata/dmbak' BACKUPSET '/dmdata/dmbak/DAMENG_ONLINE_INCR_01';
  • INCREMENT:指定增量备份。
  • WITH BACKUPDIR:指定基备份集搜索目录。
  • BACKUPSET:指定本次备份集输出路径。

未指定 CUMULATIVE 时,通常按差异增量备份处理。若需要累积增量备份,应明确指定 CUMULATIVE,并确认其基备份要求。

image.png

3.4.5 再次执行增量备份

再次产生一笔测试数据变化后,可以执行第二次增量备份:

BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dmdata/dmbak' BACKUPSET '/dmdata/dmbak/DAMENG_ONLINE_INCR_02';

image.png

image.png

每次使用不同的备份集路径。若期间没有产生可备份的数据变化,增量备份可能无法按预期完成;遇到错误时,应检查错误信息及基备份集匹配情况。

查看备份文件:

ls -lh /dmdata/dmbak/ find /dmdata/dmbak/DAMENG_ONLINE_FULL_01 -maxdepth 2 -type f find /dmdata/dmbak/DAMENG_ONLINE_INCR_01 -maxdepth 2 -type f find /dmdata/dmbak/DAMENG_ONLINE_INCR_02 -maxdepth 2 -type f

恢复时需要保留完整的依赖链。不要在完成恢复验证前删除全量基备份集或相关增量备份集。WITH BACKUPDIR 应指向实际存放基备份集的目录。
image.png

3.5 查看备份记录

可尝试查询备份相关视图:

SELECT * FROM V$BACKUP_HISTORY; SELECT * FROM V$BACKUPSET;

image.png

4. 备份方式对比

备份方式 数据库状态 归档要求 是否支持增量 主要用途
操作系统文件级冷备 正常关闭 文件级冷备本身不依赖联机归档配置 不适用 停库后整体复制实例文件
DMRMAN 脱机全量备份 正常关闭 某些情况需要归档文件 支持 使用达梦工具生成备份集
联机全库备份 OPEN 需要满足联机备份的归档要求 支持 日常全库备份及增量备份基线
联机单表备份 OPEN 通常不需要 不支持单表增量 单个表的数据保护或迁移
联机表空间备份 OPEN 需要满足联机表空间备份的归档要求 支持 指定表空间的数据保护

5. 总结

  • 全库全量备份适合作为基础备份,常与增量备份组合使用。
  • 增量备份能够减少重复备份的数据量,但依赖基备份及完整备份链。
  • 表空间备份针对特定表空间,不等同于单表备份。
  • 单表备份便于保护单个表,但不支持单表增量备份。
  • 文件级冷备操作简单,但恢复时必须保证实例文件完整,并按文件级恢复方案执行。

正式生产环境应补充备份保留周期、异机存储、备份失败告警、定期恢复演练和恢复时间目标(RTO)/恢复点目标(RPO)。备份命令执行成功不等于恢复一定成功;只有完成可验证的恢复演练,才能更有把握地确认备份方案有效。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服