数据库教程FGMT82:国产数据库-华为高斯GaussDB数据库培训(基于云数据库GaussDB企业版管理平台TPOPS)
数据库教程FGMT82:国产数据库-华为高斯GaussDB数据库培训(基于云数据库GaussDB企业版管理平台TPOPS)
一、前言与内容大纲介绍
风哥教程本文面向已经具备关系型数据库基础、希望系统掌握华为 GaussDB 企业版部署与日常运维的技术人员。本套风哥教程以云数据库 GaussDB 企业版管理平台 TPOPS 为主线,覆盖产品认知、体系架构、三种部署方案、平台安装配置、集中式与分布式实例安装、日常维护管理与备份恢复等完整环节。与单纯讲概念的资料不同,本套风哥教程把理论压缩到必要程度,把绝大部分篇幅放在可直接照做的实验步骤与命令上,所有实验均在两台物理机 fgedu-net-cn1、fgedu-net-cn2 上完成,单机规格统一为 64GB 内存、8 颗 CPU 核心,所有配置参数均按该规格给出,读者在同规格或更大规格环境中可直接套用。
风哥先说明本套风哥教程的实验约定:数据库名与实例名统一使用 fgedudb,数据库管理员用户名统一使用 fgedu,软件与数据目录统一使用 /fgedudb,不使用传统的根下旧业务目录;主机名固定为 fgedu-net-cn1(管理平台与主节点)和 fgedu-net-cn2(备节点与扩展节点);操作系统以 EulerOS / openEuler / RHEL 兼容发行版为准,命令在 bas-h 下执行。文中出现的密码均为实验占位,生产环境必须替换为强口令并纳入口令管理。
风哥教程本文的内容大纲如下:第一部分为前言与大纲介绍;第二部分为理论,包括 GaussDB 产品介绍、GaussDB 体系架构(集中式主备架构与分布式架构)、TPOPS 管理平台介绍、TPOPS 部署方案、集中式部署方案、分布式部署方案;第三部分为实战操作,包括 Linux 环境准备、TPOPS 管理平台安装配置、集中式单节点安装配置、分布式单节点安装配置、集中式与分布式多节点安装配置、日常维护管理(实例启停、连接访问、参数模板修改、备份恢复、监控告警、主备切换);第四部分为风哥针对本文总结。理论与实战的比例按 30% 与 60% 安排,前言与总结合计约 5%,读者可按章节顺序逐节跟做,也可在需要时直接跳到对应命令段查阅。
二、理论部分
2.1 GaussDB 产品介绍
GaussDB 是华为推出的企业级关系型数据库产品家族,基于 PostgreSQL 内核深度自研,兼容 SQL 标准,同时提供集中式(主备)与分布式两种形态。集中式形态面向传统 OLTP 业务,以一主多备、流复制同步/异步复制为核心,追求高可靠与高事务吞吐;分布式形态面向海量数据与高并发在线业务,采用 s-hared-Nothing 架构,通过协调节点、数据节点、全局事务管理器与集群管理组件协同,把数据按分片打散到多台物理机上,横向扩展存储与算力。
GaussDB 企业版面向私有化部署场景,支持物理机部署,不依赖云厂商专有服务,可在企业自有数据中心、政务云、行业云环境中落地。其核心能力包括:行列混合存储、全密态与 TDE 加密、审计与脱敏、在线扩容、主备自动切换、备份恢复、慢 SQL 与资源管控、兼容性扩展包(兼容 MySQL、Oracle 语法的能力通过扩展包提供)。本套风哥教程聚焦企业版在物理机上的安装与运维,不涉及 SaaS 形态的云数据库实例购买流程。
从版本线看,GaussDB 企业版按部署形态分为集中式主备版与分布式版,两者内核同源但组件不同,不能混用同一套实例管理命令;版本号按大版本、补丁号递增,实验环境建议使用同一大版本的稳定补丁,避免主备或分片之间版本不一致导致复制协议不兼容。兼容性方面,GaussDB 兼容 PostgreSQL 生态的 SQL 语法、系统视图与常用客户端工具(gsql、gs_dump、gs_restore、gs_dumpall),同时提供 Oracle 兼容扩展包,迁移存量 Oracle 业务时可降低改写量;应用侧通过标准 JDBC、ODBC 连接,连接串与 PostgreSQL 客户端基本一致,迁移改造成本主要集中在存储过程与特殊函数。
典型应用场景上,集中式版适合交易系统、账务系统、核心业务库这类要求强一致、事务量稳定、数据量在单机上限内的场景;分布式版适合日志分析、用户画像、物联网时序、大报表这类数据持续增长、需要横向扩容的场景。选型时不要盲目追求分布式:分布式引入了跨分片事务开销与扩容复杂度,若业务三年内容量仍在单机可承载范围,集中式主备是更省心的选择。本套风哥教程在实验中两种形态都部署,目的是让读者在同一台管理平台上对比两者的组件差异与运维命令差异。
需要强调的是,GaussDB 企业版的安装与日常管理在生产环境中主要通过 TPOPS 管理平台完成。TPOPS(云数据库 GaussDB 企业版管理平台)是华为提供的一体化部署运维控制台,承担主机纳管、软件包管理、实例创建、参数模板、备份策略、监控告警、故障切换等职责。脱离 TPOPS 直接用底层命令行装库,只适合实验理解,不适合生产;本套风哥教程在讲清底层命令的同时,把 TPOPS 控制台操作作为主线。
2.2 GaussDB 体系架构
2.2.1 集中式(主备)架构
集中式 GaussDB 的核心组件是数据库节点 DN(Data Node)、集群管理服务 CMS(Cluster Manager Service)与元数据仲裁组件 ETCD。一个集中式集群通常由一个主 DN 和若干备 DN 组成,主节点处理读写事务,备节点通过流复制(TCP 协议通道)实时接收主节点的 WAL 日志并回放,保持数据一致。复制模式分为同步复制、异步复制与级联复制:同步复制要求至少一个备节点收到 WAL 并落盘后主节点才提交,数据零丢失但延迟略高;异步复制主节点本地落盘即提交,性能高但存在极小丢失窗口;级联复制让备节点再向下游备节点复制,减轻主节点复制压力。
CMS 负责主备选举与状态仲裁,ETCD 保存集群元数据与仲裁票。当主节点故障时,CMS 依据仲裁结果把健康备节点提升为新主,应用通过虚拟 IP 或连接串切换到新主,实现高可用。集中式架构的数据全部保存在主节点及其备节点上,不做分片,因此容量上限由单机决定,适合百 GB 到数 TB、事务强一致要求高的业务。
集中式集群的端口规划需要提前固定:数据库监听端口默认 8000,主备复制通道端口、CMS 与 ETCD 端口、内部通信端口在安装时由 TPOPS 自动分配,实验中建议在主机规划表中登记,避免与现有服务冲突。
三种复制模式的取舍需要讲清。同步复制要求主节点把 WAL 发送到至少一个备节点并收到确认后才向客户端返回提交成功,任何一个备节点宕机都可能影响提交,因此生产同步集群通常配一主两备,允许一个备节点故障仍保持多数派;异步复制主节点本地落盘即提交,备节点追赶存在延迟窗口,主节点故障切换时可能丢失未回放的事务,只允许用于可容忍少量丢失的报表类业务;级联复制让备节点再向下游备节点转发 WAL,主节点只维护一条复制通道,适合跨机房多备拓扑。复制模式在创建实例时选定,事后切换需要重建复制关系,规划阶段就要定下来。
高可用仲裁方面,CMS 与 ETCD 共同构成仲裁层:主节点故障时,存活节点向 ETCD 争取仲裁票,获得多数票的备节点被提升为新主;网络分区时少数派一侧自动降级为只读,避免双主写入造成脑裂。生产环境可配置浮动 IP(VIP),新主提升后 VIP 漂移过去,应用连接串无需改动;实验环境通过控制台或连接串切换即可。脑裂防护的关键是仲裁节点数量为奇数,三节点集群(一主两备)天然满足多数派,两节点集群在网络中断时无法形成多数派,因此生产不建议只配一主一备。
2.2.2 分布式架构
分布式 GaussDB 采用 s-hared-Nothing,每个节点只保存自己分片的数据,节点之间不共享内存与磁盘。其核心组件包括:协调节点 CN(Coordinator Node),负责接收客户端 SQL、解析优化、把请求路由到对应 DN、汇总结果返回;数据节点 DN(Data Node),保存分片数据并执行本地事务;全局事务管理器 GTM(Global Transaction Manager),负责生成全局事务 ID、保证分布式事务的全局一致性与快照隔离;集群管理组件 CM(Cluster Manager)与 ETCD,负责节点状态监控、故障检测与主备仲裁。
分布式集群中,一张表按分布列(通常是主键或哈希列)哈希分片到多个 DN,每个 DN 上的数据再以主备方式复制。一次跨分片的事务由 GTM 协调,CN 把执行计划下发到相关 DN,两阶段提交保证全局一致。分布式架构的优势是在线扩容:新增 DN 后数据自动重分片,业务不停机;代价是跨分片 JOIN 与分布式事务有额外开销,设计表时应尽量让关联键落在同一分片。
分布式与集中式的选型原则:业务数据量在单机可承载范围、追求简单稳定,选集中式;数据量预计持续增长到数十 TB、并发写入高、需要横向扩展,选分布式。本套风哥教程两种形态都做实验。
分片是分布式的核心。建表时通过 DISTRIBUTE BY HAs-h(列名) 指定分布列,CN 对分布列做哈希后把行路由到对应 DN;分布列选取得当,关联查询可以在单个 DN 内完成(本地 JOIN),避免跨节点数据重分布。常见错误是把自增主键以外、频繁作为关联条件的列漏选为分布列,导致大表 JOIN 每次都要广播或重分布,性能骤降。设计阶段应把高频关联键、聚合分组键作为分布列候选。
分布式事务由 GTM 协调:CN 收到事务后向 GTM 申请全局事务号与快照,各 DN 执行本地事务,提交阶段走两阶段提交(Prepare 后 Commit),GTM 保证全局可见性与隔离级别。一致性级别分强一致与最终一致:强一致下跨分片读必须等到最新提交可见,延迟略高;最终一致允许短暂旧读,吞吐更高,按业务容忍度选择。扩容时新增 DN 后,平台按哈希环把部分分片迁移到新节点,迁移在线进行,迁移完成后执行 ANALYZE 更新统计信息,优化器才能按新分布生成计划。
2.2.3 关键进程与存储结构
集中式 DN 内部与 PostgreSQL 一脉相承:postgres 主进程监听连接,bgwriter 把脏页写盘,walwriter 写 WAL,checkpointer 做检查点,autovacuum 清理死元组,walsender 向备节点发送 WAL。数据目录下 pg_xlog(WAL)、base(表空间)、pg_clog(事务状态)等结构与 PG 类似,实验中通过 ps 与进程状态可直接观察。分布式每个 DN 内部结构相同,CN 不存用户数据,只存元数据与路由信息。
WAL(预写日志)是崩溃恢复与流复制的共同基础:所有修改先写 WAL 再写数据页,实例异常重启时重放 WAL 恢复到一致状态;主备之间传输的也是 WAL 流。检查点把脏页批量落盘并推进 WAL 回收点,checkpoint_timeout 与 max_wal_size 决定检查点频率,频率过低会导致恢复时间变长,过高则产生 IO 尖峰。VACUUM 与 autovacuum 清理更新删除留下的死元组并回收空间,长事务会阻塞 VACUUM 推进,实验中观察 pg_stat_user_tables 的 n_dead_tup 可判断是否需要手动 VACUUM ANALYZE。统计信息由 ANALYZE 采集,优化器依赖它选择执行计划,数据大批量变更后必须手动 ANALYZE,否则可能出现全表扫描等劣化计划。
2.3 TPOPS 管理平台介绍
TPOPS 由管理服务端(tpe)、管理代理(tpops-agent)与 Web 控制台组成。管理服务端部署在一台管理机上,提供 HTTPS Web 界面;tpops-agent 以系统服务形式安装在每台被纳管主机上,负责接收平台指令、在本机执行安装启停、上报监控指标。管理平台与被管主机之间通过 HTTPS 与 Agent 通道通信,实验环境中管理服务端安装在 fgedu-net-cn1,Agent 同时装在 fgedu-net-cn1 与 fgedu-net-cn2。
TPOPS 的主要功能模块包括:主机管理(添加主机、检查环境、纳管状态)、机房管理(逻辑分组,便于多机房容灾规划)、软件包管理(上传 GaussDB 安装包、版本登记)、实例管理(创建/删除实例、启停、规格调整)、参数模板(按实例类型预设 GUC 参数并下发)、备份管理(配置备份策略、手动备份、恢复)、监控告警(采集 CPU、内存、磁盘、连接数、复制延迟,配置阈值与告警)、故障切换(主备状态查看、手动/自动切换)。
TPOPS 的安装入口是安装包内的 appctl.s-h 脚本,执行 install 子命令完成服务端部署;安装完成后通过浏览器访问 管理主机:8443 进入控制台,S首登录使用默认管理员账号并修改口令。平台本身有独立的元数据库与运行目录,实验中统一放在 /fgedudb/tpops 下,与业务数据库实例目录隔离。
TPOPS 与手工命令行安装的本质区别在于:手工安装需要逐台完成解包、初始化、配置复制通道、注册服务、写配置文件,步骤多且容易漏项,换一批机器就要重复一遍;TPOPS 把这些动作固化为平台任务,纳管主机后在控制台填一次参数即可下发,同时把实例状态、参数、备份、监控统一纳管。平台自身的运行目录下包含元数据库、任务队列、Agent 通信日志与操作审计日志,生产环境应单独备份平台元数据库,平台丢失会导致纳管信息与备份策略记录丢失。
部署拓扑上,实验环境管理服务端与业务实例同机(fgedu-net-cn1),生产环境建议管理服务端独立部署或双机高可用,管理网与业务网分离;Agent 与平台之间保持长连接,平台下发任务时 Agent 在本机以 fgedu 用户执行,因此 Agent 必须与实例进程同属一个操作系统用户,权限边界不能交叉。
2.4 三种部署方案理论
2.4.1 TPOPS 部署方案
TPOPS 部署方案指先在管理机上安装管理平台本身,再由平台纳管业务主机。该方案是后续两种数据库部署方案的前置:没有 TPOPS,就无法在控制台可视化创建集中式或分布式实例。部署要求:管理机与业务主机网络互通、主机名可解析、时间同步、系统依赖齐全;管理机资源按 64GB 内存、8 核规划,平台元数据与 Agent 日志占用不高,剩余资源可同时跑一个实验实例。
2.4.2 集中式部署方案
集中式部署方案在两台物理机上部署一主一备:fgedu-net-cn1 为主节点,fgedu-net-cn2 为备节点,主备之间同步复制。该方案实验拓扑简单,重点观察主备数据一致性、复制延迟与主备切换。生产环境通常一主两备,第三台主机按同样规格准备即可,命令与两台场景一致。
2.4.3 分布式部署方案
分布式部署方案实验采用单节点起步(CN、GTM、DN 全部装在 fgedu-net-cn1 上,用于理解组件关系),再扩展到多节点:fgedu-net-cn1 部署 CN 与 GTM,fgedu-net-cn1 与 fgedu-net-cn2 各部署一组 DN 主备分片。多节点分布式用于理解分片路由、跨分片事务与在线扩容流程。
资源规划按 64GB 内存、8 CPU 核心统一测算:集中式单实例建议 max_process_memory 不超过 56GB,预留 8GB 给操作系统、Agent 与页面缓存之外的系统进程;分布式单节点上 CN、GTM、DN 共存时,DN 内存按分片数分摊,实验单节点不做严格分摊,生产多节点才需要按分片规划。磁盘方面,数据目录、WAL 目录、备份目录建议分盘,WAL 单独放高速盘可降低提交延迟;备份目录 /fgedudb/backup 容量至少保留全量备份的 1.5 倍余量。网络方面,管理网、业务网、复制网三平面分离,复制网带宽决定同步复制的延迟上限,实验环境同一网段可互通即可。
风哥 itpux-com
三、实战操作
3.1 实验环境规划
实验前先固定环境信息。两台主机均为 64GB 内存、8 CPU 核心、操作系统 openEuler/RHEL 兼容版,磁盘规划为系统盘与数据盘,数据盘挂载点为 /fgedudb。
- 点赞
- 收藏
- 关注作者
评论(0)