备份还原实际操作
前言
根据达梦文档整理。
一、工具介绍
工具 | 联机/脱机工具 | 应用场景 |
---|---|---|
disql | 联机 | 1️⃣数据库备份 2️⃣归档备份 3️⃣表空间备份与还原 4️⃣表备份与还原 |
dmrman | 脱机 | 1️⃣数据库备份、还原和恢复 2️⃣脱机还原表空间 3️⃣归档的备份、还原和修复 |
manager | 联机 | 对应disql工具 |
console | 脱机 | 对应dmrman工具 |
二、对备份还原的支持和限制
类型 | 支持与限制 |
---|---|
联机备份 | 1️⃣MPP 环境仅允许库和归档备份,且各节点都会执行,生成相应的备份集,支持 DDL CLONE; 2️⃣DSC 环境支持库备份、表空间备份和表备份,要求 DSC 环境的所有节点都处于 OPEN 状态; 3️⃣MOUNT 状态所有备份均不支持; 4️⃣SUSPEND 状态所有备份均不支持; 5️⃣OPEN 状态支持所有备份,支持 DDL CLONE; 6️⃣PRIMARY 模式支持所有备份,支持 DDL CLONE; 7️⃣STANDBY 模式仅支持库级、表空间级和归档备份,支持 DDL CLONE; 8️⃣DDL CLONE 必须备份归档,不允许指定 WITHOUT LOG。 |
联机还原 | 1️⃣MPP 和分布式数据库不支持; 2️⃣PRIMARY 支持; 3️⃣SUSPEND 状态所有还原均不支持; 4️⃣OPEN/NORMAL 支持。 |
脱机备份 | 1️⃣MPP 视同单机环境,仅当前节点执行备份操作; 2️⃣允许异常退出后备份,支持 DDL_CLONE; 3️⃣DSC 支持库级备份,支持 DDL_CLONE; 4️⃣当 DSC 环境下正常节点的 CKPT_LSN 小于故障节点的 CKPT_LSN 时,不支持脱机备份。 |
脱机还原 | 脱机还原跟目标库所处的模式、状态以及集群环境(MPP 和 DSC)无关,允许库级、表空间级和归档还原。 |
注意
备份与还原时,指定的备份集名称和目录名中最好不要包含中文、空格以及特殊字符,否则可能会因为字符处理及字符集问题导致一些不可预期的问题。
三、归档配置
DM 数据库可以运行在归档模式或非归档模式下。如果是归档模式,联机日志文件中的内容保存到硬盘中,形成归档日志文件;如果是非归档模式,则不会形成归档日志。
DM 的 dmarch.ini 可以进行归档配置,dmarch.ini 生效的前提是 dm.ini 中的参数 ARCH_INI = 1
。
查询 v$dm_arch_ini、v$arch_status 等动态视图可以获取归档配置以及归档状态等相关信息。
1、何时配置归档
场景 | 是否要配置归档 |
---|---|
联机备份数据库 | √ |
脱机备份数据库 | 可配置、也可不配置 |
联机备份表空间 | √ |
联机备份表 | X |
备份归档日志 | √ |
2、联机配置归档
联机配置归档即在数据库实例启动的情况下,使用 SQL 语句完成 dmarch.ini 和 ARCH_INI 的配置。本地归档和远程归档均可以联机配置归档。
2.1 语法
ALTER DATABASE <ADD|MODIFY|DELETE> ARCHIVELOG <归档配置语句>;
<归档配置语句>::= 'DEST = <归档目标>,TYPE = <归档类型>'
<归档类型>::=<local方式>|<remote方式>
<local方式>::=LOCAL [,FILE_SIZE = <文件大小>][,SPACE_LIMIT = <空间大小限制>][,ARCH_FLUSH_BUF_SIZE = <归档合并刷盘缓存大小>][,HANG_FLAG=<0|1>]
<remote方式>::=REMOTE ,INCOMING_PATH = <远程节点的归档存放路径>
ADD
:增加归档。该参数可以配置本地归档和远程归档。
MODIFY
:修改归档。该参数可以修改已有归档的配置参数。不建议修改归档类型。
DELETE
: 删除归档。在归档模式下,不允许删除本地归档。
2.2 本地归档
- SQL配置
-- 修改数据库为MOUNT状态
ALTER DATABASE MOUNT;
-- 配置本地归档
ALTER DATABASE ADD ARCHIVELOG 'type=local,file_size=128,dest=/dmdata/arch,space_limit=1024';
-- 开启归档模式
ALTER DATABASE ARCHIVELOG;
-- 修改数据库为OPEN状态
ALTER DATABASE OPEN;
- dmarch.ini配置
[ARCHIVE_LOCAL1]ARCH_TYPE = LOCALARCH_DEST = /dmdata/archARCH_FILE_SIZE = 128ARCH_SPACE_LIMIT = 1024ARCH_FLUSH_BUF_SIZE = 0ARCH_HANG_FLAG = 1
2.3 远程归档
与本地归档一样,远程归档也是配置在 dmarch.ini 文件中,配置步骤请参考本地归档。
一般建议 DMDSC 集群中的节点,在配置本地归档之外,再交叉配置集群中所有其他节点的远程归档。
下面以两节点 DMDSC 集群为例,说明如何编辑 dmarch.ini 文件以配置远程归档,DSC0 和 DSC1 是 DMDSC 集群中的两个实例,交叉进行 REMOTE 归档配置
2.3.1 DSC0 实例配置
- SQL配置
-- 修改数据库为MOUNT状态
ALTER DATABASE MOUNT;
-- 配置远程归档
ALTER DATABASE ADD ARCHIVELOG 'type=local,dest=/dmdata/arch/dsc0,file_size=512,space_limit=1024';
ALTER DATABASE ADD ARCHIVELOG 'type=remote,dest=DSC1,file_size=512,space_limit=1024,INCOMING_PATH=/dmdata/arch/dsc1';
-- 开启归档模式
ALTER DATABASE ARCHIVELOG;
-- 修改数据库为OPEN状态
ALTER DATABASE OPEN;
- dmarch.ini
[ARCHIVE_LOCAL1]ARCH_TYPE = LOCALARCH_DEST = /dmdata/arch/dsc0ARCH_FILE_SIZE = 512ARCH_SPACE_LIMIT = 1024ARCH_FLUSH_BUF_SIZE = 0ARCH_HANG_FLAG = 1[ARCH_REMOTE1]ARCH_TYPE = REMOTEARCH_DEST = DSC1ARCH_INCOMING_PATH = /dmdata/arch/dsc1ARCH_FILE_SIZE = 512ARCH_SPACE_LIMIT = 1024ARCH_FLUSH_BUF_SIZE = 0
2.3.2 DSC1 实例配置
- SQL配置
-- 修改数据库为MOUNT状态
ALTER DATABASE MOUNT;
-- 配置远程归档
ALTER DATABASE ADD ARCHIVELOG 'type=local,dest=/dmdata/arch/dsc1,file_size=512,space_limit=1024';
ALTER DATABASE ADD ARCHIVELOG 'type=remote,dest=DSC0,file_size=512,space_limit=1024,INCOMING_PATH=/dmdata/arch/dsc0';
-- 开启归档模式
ALTER DATABASE ARCHIVELOG;
-- 修改数据库为OPEN状态
ALTER DATABASE OPEN;
- dmarch.ini配置
[ARCHIVE_LOCAL1]ARCH_TYPE = LOCALARCH_DEST = /dmdata/arch/dsc1ARCH_FILE_SIZE = 512ARCH_SPACE_LIMIT = 1024ARCH_FLUSH_BUF_SIZE = 0ARCH_HANG_FLAG = 1[ARCH_REMOTE1]ARCH_TYPE = REMOTEARCH_DEST = DSC0ARCH_INCOMING_PATH = /dmdata/arch/dsc0ARCH_FILE_SIZE = 512ARCH_SPACE_LIMIT = 1024ARCH_FLUSH_BUF_SIZE = 0
注意:
不论是本地归档,还是远程归档,SQL配置完成后,都会在数据目录下自动生成对应的dmarch.ini文件
3、手动配置归档(dmarch.ini
)
手动配置归档即在数据库实例未启动的情况下,手动编写 dmarch.ini 文件和设置参数 ARCH_INI。
四、disql
备份还原
参考另一篇文档:disql备份还原
五、DMRMAN
备份还原
待补充
达梦社区:https://eco.dameng.com