达梦分布式集群DPC_影子和实体副本相互转换
- [1 背景介绍](#1 背景介绍)
-
- [1.1 什么是DPC副本](#1.1 什么是DPC副本)
- [1.2 为什么需要"重做副本"](#1.2 为什么需要“重做副本”)
- [1.3 解决方案概述](#1.3 解决方案概述)
- [2 重做副本详细步骤](#2 重做副本详细步骤)
-
- [2.1 步骤总览](#2.1 步骤总览)
- [2.2 详细步骤](#2.2 详细步骤)
1 背景介绍
1.1 什么是DPC副本
达梦分布式数据库(DPC)采用基于 RAFT 协议的多副本架构来保障数据的高可用性与一致性。在DPC集群中,数据并非存储在单一节点上,而是分布在不同的副本节点中。
- 实体副本(RAFT库):拥有完整的数据文件,参与日志重演,提供读写服务。
- 影子副本(SHADOW库):不存储实际数据文件,仅参与选举和事务提交确认,用于节省存储资源。
在正常运行状态下,主节点(BP)产生的 redo 日志会实时同步到备节点(BP)。只要集群中超过半数的副本节点正常工作,数据库服务就能持续对外提供读写能力,且保证数据不丢失。
1.2 为什么需要"重做副本"
尽管 DPC 集群具备自动故障恢复能力(如自动追平归档日志),但在某些极端场景下,自动恢复机制可能会失效。
常见故障场景包括:
- 归档日志断档:故障节点离线时间过长,导致主节点生成的归档日志已被清理,故障节点无法通过增量日志追平数据。
- 数据文件损坏:由于磁盘故障或操作系统异常,导致副本节点的数据文件(如 SYSTEM.DBF 或 ROLL.DBF)发生物理损坏。
- 脑裂或状态不一致:节点重启后,其记录的日志序列号(LSN)与集群当前状态严重脱节,无法加入 RAFT 组。
当出现上述情况时,该副本节点将处于"不可用"或"异常"状态,且无法自动恢复正常,不能实现高可用特性。此时,必须通过"重做副本"操作,强制将该节点的数据重置,并从主节点或其他健康副本重新拉取全量数据,使其重新加入集群。
1.3 解决方案概述
本手册介绍的方法是利用 达梦企业管理器(DEM) 提供的可视化运维功能,对故障副本执行"重做"任务。
- 核心原理:
DEM 将协调集群,自动清理故障节点上的陈旧数据,利用现有的备份集或通过联机备份技术,将最新的全量数据还原至故障节点,并应用后续的归档日志,最终将其恢复至与集群一致的状态。
- 适用对象:
本手册主要面向应用开发商及运维人员,旨在提供一套标准化的操作流程,以便在副本故障时快速恢复业务。
2 重做副本详细步骤
本文描述DEM图形化进行DPC副本重做
2.1 步骤总览
按顺序点击 【监控、数据库监控、选中集群后右键点维护、选中需要重做的副本点击重建实例、然后一直下一步到最后执行】

2.2 详细步骤
①重建实例点击确定
不用修改任何值,然后下一步

②配置主机和实例工作目录
默认,继续下一步

③备份设置和实例规划

④表空间迁移
默认,继续下一步

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

⑥初始化参数配置
需要强制配置SYSDBA和SYSAUTIDOR密码
安全版需要配置SYSSSO密码
例如:
SYSAUTIDOR_PWD=密码

⑦上传服务器文件

⑨确定信息后保存并执行

⑩成功

更多其他数据库相关专栏:
1.数据库优化
数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询、优化案例等
数据库优化(sql优化)专栏连接
2.达梦分布式数据库:
部署详细步骤(DEM)、备份还原实战、核心特性理解、使用心得、表分区方式详细介绍、表分区最佳实践、DPC架构详解等
达梦分布式DPC专栏连接
3.应用开发类
jdbc、hibernate、ibatis、mybatis、MyBatis-Plus、Spring、中间件mycat、Sharding-JDBC等
达梦数据库应用开发专栏连接