2. 高可用性
HGDB V5 支持多种高可用技术架构,包括 HA 双机架构、多节点流复制(同步、异步、混合同步、级联)集群架构等,同时 HGDB V5增加了流复制集群管理组件HG_REPMGR,并对流复制同步机制进行了功能增强,为用户提供最佳高可用解决方案。
2.1. 流复制集群管理组件(HG_REPMGR)
HG_REPMGR 的总体架构如下:

HG_REPMGR 是在社区版 REPMGR 基础上进行了功能改进与增强,同时修正了发现的多处 BUG。HG_REPMGR 开源并将发布社区版。
后台守护进程 repmgrd:在每个节点上后台运行,负责实时监控与自动 Failover。
命令行工具 repmgr:负责执行一站式管理任务,如克隆节点、注册节点、主备 Switchover、主备 Failover,注销节点、重新加入节点等。在任一节点上通过 repmgr 可管理集群所有节点。
配置文件:独立存在于每个节点上,用于保存节点的属性定义
元数据:存储在集群主节点数据库中,通过流复制同步到所有
备节点数据库。元数据包括集群所有主备节点的注册信息(节点编
号、主备状态等)
2.2. 流复制增强特性(HG_Stream)
在传统流复制集群中,WAL 日志传输模式有同步(Sync)和异步(Async)两种模式。基于服务器与存储成本、容灾高可用架构以及核心业务性能的考虑,在实际生产环境中,通常有以下典型的使用场景:
典型场景一:主节点 + 备节点(同步模式)

典型场景二:本地主节点 + 本地备节点(同步模式)+ 异地备
节点(异步模式)

在实际生产过程中,常常会遇到服务器软硬件故障、网络抖动、服务器资源紧张等导致备节点无法和主节点保持 Sync 模式同 步。按照流复制集群现有的机制,在这些场景下会导致主节点出现挂起,不能继续提供服务,会严重影响到业务连续性。
HGDB V5 实现了如下增强:
- 处于 Sync 模式的备节点异常宕机不会影响主节点的正常运行;
- 当出现异常的 Sync 模式备节点恢复正常时,数据库自动将故障节点恢复为 Sync 模式,无需人工干预。
启用瀚高流复制增强特性后,可以规避现有同步机制异常对业务连续性带来的潜在风险。
2.3. 备份恢复管理组件(HG_RMAN)
在数据库使用的生产场景中,通常会遇到各种异常和数据失效。
软硬件与人为异常:
- 硬件损坏:服务器宕机,需更换服务器。
- 数据库介质损坏:文件损坏。
- 人为故障:表误删除,数据文件误删除等。
- 数据库实例异常:数据库后台进程崩溃等导致数据异常。
数据失效:
- 数据文件无法正常访问。
- 物理损坏:数据块信息物理不完整。
- 逻辑损坏:数据字典信息不一致,索引块与数据块信息不一致等。
- 不一致:pg_control 信息与数据文件信息不同步。
- IO 异常:网络或者 IO 异常导致数据不完整。
数据库备份工具 Pg_basebackup 虽然在备份过程中不会影响到数据库的正常使用,也不需要通过文件系统访问来传输数据文件。但是 pg_basebackup 存在一些限制,例如没有备份结果集管理机制,无法实现物理块级和增量备份等,很难满足企业级数据库的备份需
求。
HGDB V5 新引入数据库组件 HG_RMAN,用于执行备份和恢复管理。使用它可执行一致性备份或非一致性备份,执行增量备份或完全备份。HG_RMAN 总体架构如下:

Recovery Manager 可执行文件:HG_RMAN 负责解释用户命令和调用相应的服务器会话来执行任务。
数据库连接会话:HG_RMAN 连接到目标数据库后可执行备份和恢复功能。这些会话会在指定的存储位置上读写文件。
目标数据库群集: 使用 HG_RMAN 对其执行备份和恢复操作的数据库群集称为目标数据库群集。目标数据库群集的控制文件(PG_CONTROL)包含关于其物理结构的信息,如数据库系统标识符、数据库块大小、WAL日志块大小、最新检查点信息及最新重做日志信息等。
Catalog:用于保存所有备份文件信息和其他信息。HG_RMAN Catalog 存储在单独的加密二进制文件中。
配置文件:HG_RMAN 会维护关于目标数据库群集备份和恢复操作所需的配置信息。配置信息存储在单独的文本文件中。
备份集:备份集包含所有备份文件,如数据文件的全量和增量备份、归档日志的备份、控制文件的备份及其他文件的备份。
HG_RMAN 主要特点如下:
- 备份记录集管理:历史记录,保留策略,有效性校验等
- 基于物理块级备份
- 支持全量、增量及归档日志在线备份
- 支持 Point-In-Time Recovery(PITR) 支持备份压缩机制
- 独有的块变化跟踪机制
- 独有的块介质恢复(Block Media Recovery,BMR)技术
基于块变化跟踪机制,在增量备份时可提升效率至少 5 倍以上。BMR技术可以在数据库出现少量坏块时,实现在线快速修复,无需停机和恢复整库,更好的保证了业务连续性。
2.4. 在线 DDL 增强特性(Online DDL)
在 HGDB V5 中,对大表(表记录数在千万级或者亿级以上)增加新字段时做了功能增强。当表增加 NOT NULL 并且带 DEFAULT 值的字段时,不需要实际更新表中已有记录,同时亦不需要长时间锁定大表,可明显提升前端用户体验和业务连续性。
2.5. 性能监控与诊断组件(HG_PDR)
数据库性能监控与诊断组件–HG_PDR, 实现了周期性的收集、处理、持久化和维护性能统计数据,主要用于数据库性能问题的诊断与解决。另外,HG_PDR 可以生成简单明了、信息丰富和分类清晰的 HTML 格式性能诊断报告,以方便数据库管理者阅读。

图 4-5 HG_PDR 诊断报告示例
2.6. 内核诊断增强特性(HG_DEBUG)
在生产场景中,通常会遇到各种故障。
例如:
- 数据库挂起或者响应变慢
- 数据库崩溃
- 服务器宕机。

HGDB V5 数据库内核诊断特性启用后,结合 HG-PDR 组件,可以快速定位数据库异常问题和性能瓶颈。具有自动和人工转储异常信息功能,并可根据指定时间区间进行信息转储。
2.7. 闪回查询特性(HG_FBQ)
HG_FBQ 启用后,可以用于恢复、查询那些已提交删除和更新的数据。
HG_FBQ 总体架构如下:

主要特点如下:
- 支持查看事务数据在特定时间区间的状态
- 可用于防范人为的数据误操作
- 可对比当前版本的数据和早些版本的数据差异




