达梦分布式集群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_2[BP2_C]的源数据库备份文件/storage/dmagent/repository/deploy/db_full_20260202203253_BP2_A上传到远端Agent(影子副本IP)的/storage/dmagent/repository/deploy/datafileBak_40971449740765783_RAFT_2

3.影实转换

①关闭实例...

检测[BP]BP2_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_2[BP2_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等
达梦数据库应用开发专栏连接

相关推荐
努力有什么不好2 小时前
Hadoop3.2.2伪分布式搭建
大数据·hadoop·分布式
jllllyuz2 小时前
含分布式电源多目标粒子群无功优化解决方案
分布式
ApachePulsar2 小时前
演讲回顾|谙流科技在 Kafka on Pulsar 之上的探索
分布式·科技·kafka
難釋懷2 小时前
Redis分布式锁误删情况说明
数据库·redis·分布式
珠海西格电力科技4 小时前
微电网控制策略基础:集中式、分布式与混合式控制逻辑
网络·人工智能·分布式·物联网·智慧城市·能源
踩坑小念15 小时前
秒杀场景下如何处理redis扣除状态不一致问题
数据库·redis·分布式·缓存·秒杀
笃行客从不躺平18 小时前
Token 复习
java·分布式·spring cloud
u01040583620 小时前
分布式淘客系统的配置中心设计:Nacos在多环境配置管理的应用
分布式
迎仔21 小时前
01-Hadoop 核心三剑客通俗指南:从“单机搬砖”到“包工队”
大数据·hadoop·分布式