达梦分布式集群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等
达梦数据库应用开发专栏连接

相关推荐
StevenSurpass11 小时前
智能工厂场景:FastPrintAgent 分布式打印中间件落地应用方案
分布式·mqtt·http·中间件·打印·fastreport
江畔柳前堤1 天前
具身智能全景深度指南(2026年9月版):从“会聊天的AI“到“能干活的机器“
大数据·javascript·图像处理·人工智能·分布式·智慧城市·原型模式
夕除1 天前
redis--010
笔记·分布式·学习
寻求出路的程序媛1 天前
分布式 & 高性能 & 高可用 体系、学习重点、面试点
分布式·后端·面试·性能优化
东小黑1 天前
mac安装RabbitMQ
分布式·rabbitmq
zhougl9961 天前
从ZooKeeper到微服务生态:分布式协调核心原理
分布式·微服务·zookeeper
FakeOccupational1 天前
【p2p、分布式,区块链笔记 IPFS】网关+多地址+HTTP RPC API+kubo-rpc-client
分布式·区块链·p2p
bgy66661 天前
Ceph 分布式存储完整实战指南:架构、部署与全场景运维
分布式·ceph·架构
夫唯不争,故无尤也2 天前
分布式训练全栈地图
分布式·ddp·fsdp·ray·verl
国科安芯2 天前
星载CAN总线通信网络中抗辐射MCU的通信可靠性设计分析
网络·人工智能·分布式·单片机·嵌入式硬件·架构