达梦分布式集群DPC_影子和实体副本相互转换(DEM)_yxy

达梦分布式集群DPC_影子和实体副本相互转换

  • [1 背景介绍](#1 背景介绍)
  • [2 RAFT库 → 影子库(DEM)](#2 RAFT库 → 影子库(DEM))
    • [2.1 目的](#2.1 目的)
    • [2.2 步骤总览](#2.2 步骤总览)
    • 详细步骤
  • [3 影子库 → RAFT库(DEM)](#3 影子库 → RAFT库(DEM))
    • [3.1 目的](#3.1 目的)
    • [3.2 命令行操作步骤](#3.2 命令行操作步骤)
    • [3.3 DEM操作步骤解释](#3.3 DEM操作步骤解释)
  • 4.常见报错

1 背景介绍

本方案详细说明 如何安全、正确地在影子库与 RAFT 库之间相互转换。

在 dpc多副本集群架构中,节点分为两类:

①RAFT 库(实体副本):
拥有完整数据文件 ,可读写、参与日志重演、提供完整服务。

②影子库(SHADOW 库):
无实际数据文件,不参与日志重演,仅参与选举和事务提交确认,用于节省存储资源。

注意:

Ⅰ. 影子库数量不得超过集群总节点数的一半。

Ⅱ. 影子库不能直接动态增删,必须通过先转为 RAFT 库再操作。

Ⅲ. 影子库不支持Learner 归档配置。

Ⅳ. 影子库不会随主库升级/降级自动同步版本,需手动重建。

2 RAFT库 → 影子库(DEM)

2.1 目的

节省该节点的存储资源,保留其参与选举和日志确认能力。

2.2 步骤总览

按顺序点击 【监控、数据库监控、选中集群后右键点维护、选中需要转换的副本点击影实转换、然后下一步到最后执行】

详细步骤

①实例规划

选中节点点击影实转换

②主机规划

③备份设置及实例规划

⑤表空间迁移

⑥地域、数据中心和容错域配置

⑦初始化参数配置

⑧上传服务器文件

⑨确定后保存并执行

⑩成功

2.4 DEM操作步骤解释

1.连接SP1(ip:15230)

查询集群当前配置参数:SELECT TOP 1 SF_GET_PARA_VALUE(2, 'BAK_USE_AP') as BAK_USE_AP, SF_GET_PARA_VALUE(2, 'EXTERNAL_AP_PORT') as EXTERNAL_AP_PORT,1 from DUAL

集群当前配置参数为:EXTERNAL_AP_PORT=4236,BAK_USE_AP=1

修改参数BAK_USE_AP: SP_SET_PARA_VALUE(1, 'BAK_USE_AP', 2);

2.查询参数(BAK_USE_AP,EXTERNAL_AP_PORT)的值:

SELECT TOP 1 SF_GET_PARA_VALUE(2, 'BAK_USE_AP'),

SF_GET_PARA_VALUE(2, 'EXTERNAL_AP_PORT')

BAK_USE_AP=2

EXTERNAL_AP_PORT=4236

联机备份: BACKUP DATABASE SHADOW BACKUPSET '/storage/dmagent/repository/deploy/db_full_20260202203253' MAXPIECESIZE 1024 COMPRESSED TASK THREAD 4 PARALLEL 4

将RAFT_2BP2_C的源数据库备份文件/storage/dmagent/repository/deploy/db_full_20260202203253_BP2_A上传到远端Agent(影子副本IP)的/storage/dmagent/repository/deploy/datafileBak_40971449740765783_RAFT_2

3.影实转换

①关闭实例...

检测BPBP2_C(影子副本IP:15242)进程是否存在...

②执行初始化命令/storage/TEST/dmdpc/bin/dminit PATH=/storage/TEST/dmdpc/BP2_C PORT_NUM=15242 DB_NAME=DAMENG EXTENT_SIZE=16 PAGE_SIZE=8 LOG_SIZE=2048 TIME_ZONE=+08:00 CHARSET=0 CASE_SENSITIVE=1 BLANK_PAD_MODE=0 USE_NEW_HASH=1 SYSDBA_PWD=Sc_SYSDBA@2025 SYSAUDITOR_PWD=Sc_SYSDBA@2026 BUFFER=10000 AUTO_OVERWRITE=1 AP_PORT_NUM=11642 DPC_MODE=2

修改数据库文件所有者

③BP2_C数据还原

检查备份集: CHECK BACKUPSET '/storage/dmagent/repository/deploy/datafileBak_40971449740765783_RAFT_2'

使用DMRMAN工具执行命令: RESTORE DATABASE '/storage/TEST/dmdpc/BP2_C/DAMENG/dm.ini' TO SHADOW OVERWRITE FROM BACKUPSET '/storage/dmagent/repository/deploy/datafileBak_40971449740765783_RAFT_2'

使用DMRMAN工具执行命令: RECOVER DATABASE '/storage/TEST/dmdpc/BP2_C/DAMENG/dm.ini' FROM BACKUPSET '/storage/dmagent/repository/deploy/datafileBak_40971449740765783_RAFT_2'

使用DMRMAN工具执行命令: RECOVER DATABASE '/storage/TEST/dmdpc/BP2_C/DAMENG/dm.ini' UPDATE DB_MAGIC

④启动数据库,并还原参数修改

还原修改参数BAK_USE_AP: SP_SET_PARA_VALUE(1, 'BAK_USE_AP', 1);

3 影子库 → RAFT库(DEM)

3.1 目的

使该节点具备完整数据能力,可承担读写或故障接管角色。

3.2 命令行操作步骤

①实例规划

②主机规划

③备份设置及实例规划

④初始化参数配置

⑤上传服务器文件

⑥保存并执行

3.3 DEM操作步骤解释

①集群环境准备

连接SP1(影子副本IP204:15230)

查询集群当前配置参数:SELECT TOP 1 SF_GET_PARA_VALUE(2, 'BAK_USE_AP') as BAK_USE_AP, SF_GET_PARA_VALUE(2, 'EXTERNAL_AP_PORT') as EXTERNAL_AP_PORT,1 from DUAL

集群当前配置参数为:EXTERNAL_AP_PORT=4236,BAK_USE_AP=1

修改参数BAK_USE_AP: SP_SET_PARA_VALUE(1, 'BAK_USE_AP', 2);

②联机备份

连接BP2_A(影子副本IP205:15240)

查询参数(BAK_USE_AP,EXTERNAL_AP_PORT)的值: SELECT TOP 1 SF_GET_PARA_VALUE(2, 'BAK_USE_AP'), SF_GET_PARA_VALUE(2, 'EXTERNAL_AP_PORT')

BAK_USE_AP=2

EXTERNAL_AP_PORT=4236

联机备份: BACKUP DATABASE BACKUPSET '/storage/dmagent/repository/deploy/db_full_20260202212501' MAXPIECESIZE 1024 COMPRESSED TASK THREAD 4 PARALLEL 4

将RAFT_2BP2_C的源数据库备份文件/storage/dmagent/repository/deploy/db_full_20260202212501_BP2_A上传到远端Agent(影子副本IP205)的/storage/dmagent/repository/deploy/datafileBak_40974460832288476_RAFT_2

③影子副本转换实体副本

数据库停止

执行初始化命令/storage/TEST/dmdpc/bin/dminit PATH=/storage/TEST/dmdpc/BP2_C PORT_NUM=15242 DB_NAME=DAMENG EXTENT_SIZE=16 PAGE_SIZE=8 LOG_SIZE=2048 TIME_ZONE=+08:00 CHARSET=0 CASE_SENSITIVE=1 BLANK_PAD_MODE=0 USE_NEW_HASH=1 SYSDBA_PWD=Sc_SYSDBA@2025 SYSAUDITOR_PWD=Sc_SYSDBA@2026 BUFFER=10000 AUTO_OVERWRITE=1 AP_PORT_NUM=11642 DPC_MODE=2

修改数据库文件所有者

数据库还原

BP2_C数据还原

检查备份集: CHECK BACKUPSET '/storage/dmagent/repository/deploy/datafileBak_40974460832288476_RAFT_2'

使用DMRMAN工具执行命令: RESTORE DATABASE '/storage/TEST/dmdpc/BP2_C/DAMENG/dm.ini' OVERWRITE FROM BACKUPSET '/storage/dmagent/repository/deploy/datafileBak_40974460832288476_RAFT_2'

使用DMRMAN工具执行命令: RECOVER DATABASE '/storage/TEST/dmdpc/BP2_C/DAMENG/dm.ini' FROM BACKUPSET '/storage/dmagent/repository/deploy/datafileBak_40974460832288476_RAFT_2'

使用DMRMAN工具执行命令: RECOVER DATABASE '/storage/TEST/dmdpc/BP2_C/DAMENG/dm.ini' UPDATE DB_MAGIC

启动实例

④集群维护环境还原

连接SP1(影子副本IP204:15230)

连接SP1(影子副本IP204:15230)

还原修改参数BAK_USE_AP: SP_SET_PARA_VALUE(1, 'BAK_USE_AP', 1);

4.常见报错

① 数据库初始化失败

拿出初始化脚本到服务器执行,查看报错原因

初始化参数配置模块错误,加上SYSSSO_PWD、SYSAUDITOR_PWD等密码参数,不然会因为初始化必须设置密码问题而报错;

② 备份还原失败

拿出dem备份还原脚本到服务器执行,查看报错原因

磁盘空间问题等


更多其他数据库相关专栏:

1.数据库优化

数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询、优化案例等
数据库优化(sql优化)专栏连接

2.达梦分布式数据库:

部署详细步骤(DEM)、备份还原实战、核心特性理解、使用心得、表分区方式详细介绍、表分区最佳实践、DPC架构详解等
达梦分布式DPC专栏连接

3.应用开发类

jdbc、hibernate、ibatis、mybatis、MyBatis-Plus、Spring、中间件mycat、Sharding-JDBC等
达梦数据库应用开发专栏连接

相关推荐
Thomas.Sir3 天前
第21课:PyTorch|GPU多卡训练与分布式训练基础【让多卡并行成为你的加速引擎】
人工智能·pytorch·分布式
Cicada1283 天前
库存消息消费的正确性设计——从幂等窗口到批量流水线
分布式·系统架构
Francek Chen4 天前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
Gl�ria4 天前
Hadoop/YARN 集群缩容:下线DN节点
大数据·hadoop·分布式
吉甫作诵4 天前
Kafka 集群安装与运维实战:消费组排查、Offset 重置与副本重分配
大数据·运维·分布式·kafka·消息队列
是Dream呀5 天前
Harness 工程:让 Agent 真正把任务做完
人工智能·分布式·缓存·agent
yt004yt5 天前
绿岛数字化平台搭建:VOCs 监测与能碳数据一体化方案
大数据·分布式
天天喝旺仔5 天前
分布式服务容错实战:用 Sentinel 实现限流、熔断与降级
分布式·微服务·云原生·sentinel
lisanmengmeng5 天前
分布式追踪与监控:Skywalking(三)
分布式·skywalking