虚拟集群的“镜像”管理功能是什么?它主要用于实现什么目的(如高可用、容灾)?
GBase 8a 虚拟集群的 “镜像”管理功能 是一项核心的高可用与容灾特性。它通过在两个虚拟集群(VC)之间建立表级的实时、双向数据同步关系,实现数据的“双活”备份。
一、镜像功能是什么?
定义:镜像功能是基于多虚拟集群(VC)概念之上的增强功能。它允许管理员在两个不同的VC之间,为具有相同库名、表名、表结构和数据分布的表建立镜像关系。
核心机制:
一旦建立镜像关系,对其中任意一张表发起的写操作(包括 DDL、DML 和 LOAD DATA),都会实时、同步地应用到另一张镜像表上。镜像关系是相互的、平等的,不存在传统的主从概念。
工作原理:
DDL操作:集群层下发
CREATE/ALTER/DROP TABLE等语句时,会同时在两个VC上执行。DML操作:集群层下发
INSERT/UPDATE/DELETE时,在一个VC上执行运算,结果会同步发送到另一个VC的对应数据文件中。- 查询操作:
SELECT查询仅在一个VC上执行,实现了读写分离。
二、镜像功能主要用于实现什么目的?
镜像功能的核心设计目标是实现高级别的高可用和容灾,具体服务于以下三大场景:
| 主要目的 | 具体实现与价值 | 文档中的场景描述 |
|---|---|---|
| 1. 双活备份与容灾 | • 同城双活:在同一数据中心内,两个VC互为备份,实现业务不间断和快速切换。 • 异地灾备:在不同数据中心间建立镜像,实现同城异地容灾,保证业务连续性。 • 价值:提供 T+0级(实时)的数据保护,满足高可用性要求。 | “可实现同城异地容灾,保证业务不间断。”
|
| 2. 集群迁移与升级 | • 机房迁移:在新机房搭建新集群并创建VC,与旧VC建立镜像,待数据完全同步后,将应用连接切换到新VC,实现业务无感知的平滑迁移。
| “当集群需要迁移到新地点时...待新旧VC数据完全同步后,可将数据连接切换到新VC。”
|
| 3. 读写分离与负载分担 | • 读写分离:主VC用于处理读写混合的联机事务处理(OLTP)或批量加工,备VC专门用于执行只读的即席查询(Ad-hoc Query),避免查询负载影响写入性能。 • 负载分担:将不同的业务应用指向不同的VC,利用镜像保持数据一致,从而分担系统负载。 | “可实现数据备份,读写分离(批量加工和即席查询分开)。”
|
三、镜像功能的独特优势
与传统的备份或异步同步工具(如GVR)相比,镜像功能具备以下突出优势:
- 实时性强:数据同步是实时的,RPO(恢复点目标)接近零,几乎无数据丢失风险。
高可用提升:镜像表在另一个VC也建立了备份分片,查询模块可以利用这些额外的副本来提升查询能力和并发性能。
- 操作灵活易维护:
通过简单的SQL语句(
ALTER TABLE ... CREATE MIRROR TO)即可创建和删除镜像关系。可以以库为单位建立镜像,自动同步库内所有表、视图、存储过程。
终止镜像关系后,两个VC可立即作为独立集群工作。
- 数据一致性保障:通过集群同步锁管理,确保同一时刻只有一端能修改镜像表,有效控制数据一致性。
四、重要前提与限制
要成功建立和使用镜像,必须满足以下条件:
- 版本要求:集群数据库版本必须是 V9.5 及以上。
结构一致性:两个VC的
HashMap必须完全一致。HashMap由分布表(Distribution)决定,因此通常要求两个VC具有相同的节点数量、分片数量和分布规则。- 表结构一致:需要建立镜像关系的两张表,必须具有相同的库名、表名、表结构和数据分布。
五、总结
GBase 8a 的虚拟集群镜像功能,本质上是一个基于表级别的、实时双向同步的数据双活解决方案。它主要用于构建高可用架构、实现业务无缝容灾与迁移,以及进行读写分离。
与异步同步工具(GVR)对比:镜像适用于对实时性要求高、网络延迟低(如同数据中心)的场景,实现真正的“双活”。而GVR工具则适用于异地、带宽有限、对实时性要求不高的准实时备份场景。
- 核心价值:它通过软件层面内置的能力,在不依赖外部存储复制技术的情况下,为企业提供了数据库层的高可用、容灾和弹性扩展能力,是保障核心业务连续性的关键特性。
评论
热门帖子
- 12025-12-01浏览数:182763
- 22023-05-09浏览数:25057
- 42023-09-25浏览数:18525
- 52020-05-11浏览数:17529