数据库教程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 子命令完成服务端部署;安装完成后通过浏览器访问 https://管理主机: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。
fgedu-net-cn1:管理平台 TPOPS 服务端、集中式主节点、分布式 CN/GTM/主 DN;数据目录 /fgedudb/data;监听端口 8000。
fgedu-net-cn2:TPOPS Agent、集中式备节点、分布式备 DN;数据目录 /fgedudb/data;监听端口 8000。
账号约定:操作系统用户 fgedu(属于 fgedu 组),数据库管理员用户 fgedu,数据库名 fgedudb,实例名 fgedudb,实验口令统一记录在内部文档中,生产环境禁止明文留存。软件安装包统一上传到 /fgedudb/soft 目录。
### 3.2 Linux 环境准备(fgedu-net-cn1 与 fgedu-net-cn2)
以下操作在两台主机上分别执行,除特别标注外命令完全相同。
第一步,配置主机名与 hosts 解析。fgedu-net-cn1 上执行:
```bas-h
hostnamectl set-hostname fgedu-net-cn1
```
fgedu-net-cn2 上执行:
```bas-h
hostnamectl set-hostname fgedu-net-cn2
```
两台主机的 /etc/hosts 均写入以下内容,保证双向解析:
```bas-h
cat >> /etc/hosts << 'EOF'
192.168.1.101 fgedu-net-cn1
192.168.1.102 fgedu-net-cn2
EOF
```
第二步,关闭防火墙与 SELinux(实验环境;生产环境应改为放行业务端口而非全关):
```bas-h
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
```
风哥教程 113257174
第三步,配置时间同步,两台主机均以 fgedu-net-cn1 为内网时间源:
```bas-h
dnf install -y chrony
systemctl enable --now chronyd
timedatectl set-timezone Asia/s-hanghai
chronyc sources -v
```
第四步,调整内核参数。写入 /etc/sysctl.conf,按 64GB 内存、8 核规划:
```bas-h
cat >> /etc/sysctl.conf << 'EOF'
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_fin_timeout = 30
net.core.somaxconn = 65535
vm.swappiness = 10
vm.overcommit_memory = 1
vm.max_map_count = 262144
fs.file-max = 6815744
EOF
sysctl -p
```
第五步,关闭透明大页并调整资源限制:
```bas-h
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
```
/etc/security/limits.conf 追加:
```bas-h
cat >> /etc/security/limits.conf << 'EOF'
fgedu soft nofile 655360
fgedu hard nofile 655360
fgedu soft nproc 655360
fgedu hard nproc 655360
fgedu soft memlock unlimited
fgedu hard memlock unlimited
EOF
```
风哥数据库教程 itpux-com
第六步,创建操作系统用户与目录:
```bas-h
groupadd -g 6000 fgedu
useradd -u 6000 -g fgedu -m -s /bin/bas-h fgedu
echo 'fgedu:fgedu@2026' | chpasswd
mkdir -p /fgedudb/soft /fgedudb/data /fgedudb/backup /fgedudb/tpops
chown -R fgedu:fgedu /fgedudb
chmod -R 750 /fgedudb
```
第七步,配置 fgedu 用户 Ss-h 互信。在 fgedu-net-cn1 上切换到 fgedu 用户生成密钥并分发:
```bas-h
su - fgedu
ss-h-keygen -t rsa -b 2048 -N '' -f ~/.ss-h/id_rsa
ss-h-copy-id fgedu@fgedu-net-cn1
ss-h-copy-id fgedu@fgedu-net-cn2
```
在 fgedu-net-cn2 上同样生成密钥并互信到两台主机,随后验证免密:
```bas-h
ss-h fgedu@fgedu-net-cn1 hostname
ss-h fgedu@fgedu-net-cn2 hostname
```
两条命令分别返回 fgedu-net-cn1、fgedu-net-cn2 即互信成功。
第八步,安装基础依赖包并上传安装介质。先调整 Ss-h 配置,关闭 GSSAPIAuthentication、保留口令登录用于实验:
```bas-h
sed -i 's/^#\?GSSAPIAuthentication.*/GSSAPIAuthentication no/' /etc/ss-h/ss-hd_config
systemctl restart ss-hd
dnf install -y expect unzip tar libaio numactl-libs nc net-tools lrzsz
```
把 GaussDB 企业版安装包、TPOPS 安装包上传到两台主机的 /fgedudb/soft,解压缩待装:
```bas-h
cd /fgedudb/soft
unzip V500R003_gaussdb_enterprise.zip
unzip tpops_installer.zip
ls -l /fgedudb/soft
```
第九步,关闭 swap 过度使用并调整磁盘 IO 调度器。数据库工作集尽量落在内存,swappiness 已在第四步设为 10,再确认 swap 未被频繁换出:
```bas-h
free -g
cat /proc/swaps
```
数据盘设置为 deadline 或 none 调度器(NVMe 盘用 none),并持久化:
```bas-h
echo deadline > /sys/block/$(lsblk -no PKNAME $(df /fgedudb | tail -1 | awk '{print $1}') | head -1)/queue/scheduler
```
第十步,校验安装介质完整性。上传后在两台主机分别核对 md5,避免压缩包损坏导致安装中途报错:
```bas-h
cd /fgedudb/soft
md5sum -c V500R003_gaussdb_enterprise.md5
md5sum -c tpops_installer.md5
```
第十一步,确认时间同步偏差在毫秒级、防火墙端口策略与 umask 合规:
```bas-h
chronyc tracking | grep -E "Last offset|Leap status"
umask
ss -tlnp | grep -E "8000|8443"
```
环境准备完成后,用 TPOPS 的环境预检脚本(或控制台环境检查功能)复核:主机名解析、端口占用、磁盘剩余、时间差、依赖包、互信任一项不满足都会在安装阶段报错,务必先消除。预检不通过的典型现象是控制台添加主机时状态停留在"检查中"或报依赖缺失,回到对应步骤补齐即可,不要跳过检查直接创建实例。
网上搜索风哥教程可以学习全套数据库教程
### 3.3 TPOPS 管理平台安装与配置(fgedu-net-cn1)
以 fgedu 用户登录 fgedu-net-cn1,进入 TPOPS 安装包目录执行安装脚本:
```bas-h
su - fgedu
cd /fgedudb/soft/tpops_installer
bas-h appctl.s-h install --install-dir /fgedudb/tpops
```
脚本依次完成依赖检查、元数据库初始化、服务注册、Agent 安装。安装结束后控制台输出访问地址与默认管理员账号,启动与查看状态命令如下:
```bas-h
bas-h /fgedudb/tpops/appctl.s-h status
bas-h /fgedudb/tpops/appctl.s-h start
```
浏览器访问 https://fgedu-net-cn1:8443,S首登录使用默认账号 admin 与初始口令,按提示修改为强口令。
进入控制台后完成两项基础配置。其一,主机管理:在"平台管理 > 数据中心 > 机房"中先建机房 fgedu-lab,再进入主机管理添加 fgedu-net-cn1、fgedu-net-cn2 两台主机,分别填写管理平面、数据平面、业务平面三组 IP,Ss-h 端口 22,认证方式选择口令(实验)或上传 Ss-h 私钥(生产),填写 fgedu 用户,点击"检测连通性",平台自动在目标主机安装 tpops-agent 并上报 CPU、内存、磁盘、操作系统版本。单次批量添加不超过 50 台,两台实验主机直接单台添加即可。主机上线的硬性前置条件:两台主机时钟同步(chrony 已在 3.2 节配置)、可被平台 Ss-h 登录、umask 不大于 0022、/etc/ss-h/ss-hd_config 中 GSSAPIAuthentication 设为 no、防火墙放行 Agent 通信端口;任一不满足,检测连通性会直接失败。其二,机房管理:新建实验机房"fgedu-lab",把两台主机划入该机房,便于后续实例创建时按机房选择节点。
软件包管理中上传 GaussDB 企业版安装包,登记版本号,平台把包分发到各主机的 /fgedudb/soft 并校验完整性。至此管理平台就绪,后续实例安装全部在控制台完成。
appctl.s-h 常用子命令补充:status 查看平台服务状态,start/stop/restart 控制平台进程,uninstall 卸载平台(实验环境慎用),日志目录在 /fgedudb/tpops/log,安装失败时先看 appctl 日志再看主机 Agent 日志:
```bas-h
bas-h /fgedudb/tpops/appctl.s-h status
tail -200 /fgedudb/tpops/log/appctl.log
tail -200 /fgedudb/tpops/log/agent.log
```
Agent 注册验证:在 fgedu-net-cn2 上确认 Agent 进程在线、与平台心跳正常:
```bas-h
ps -ef | grep tpops-agent | grep -v grep
systemctl status tpops-agent
```
控制台"主机管理"中两台主机状态均为"在线"、环境检查项全部绿色,才允许进入实例创建环节;任何一台显示"离线"或"检查失败",先排查网络、互信与时间同步,不要带故障建实例。
### 3.4 集中式单节点安装配置(TPOPS 控制台)
在 TPOPS 控制台"实例管理"中点击"创建实例",实例类型选择"集中式",实例名 fgedudb,机房 fgedu-lab,主节点选择 fgedu-net-cn1,备节点选择 fgedu-net-cn2,复制模式选择"同步",数据目录 /fgedudb/data,监听端口 8000,管理员用户 fgedu,口令按规范设置。参数模板选择"集中式默认模板",稍后在 3.7 节按 64GB/8 核调优。
提交任务后平台自动在两台主机完成解包、初始化数据目录、配置主备复制通道、注册系统服务、启动实例。任务进度页可查看每一步日志,失败任务可下载详细日志定位。安装完成后,在控制台"实例概览"中应看到主节点状态 Normal、备节点状态 Normal、复制延迟接近 0。
命令行侧验证实例状态:
```bas-h
gs_ctl query -D /fgedudb/data
```
输出中 role 显示 Primary(fgedu-net-cn1)与 Standby(fgedu-net-cn2),replication_state 显示 Sync 即正常。连接数据库验证:
```bas-h
gsql -d fgedudb -U fgedu -h fgedu-net-cn1 -p 8000
```
进入 gsql 后执行基础 SQL:
```sql
SELECT version();
SELECT datname FROM pg_database;
CREATE TABLE t_test(id int, name varchar(32));
INSERT INTO t_test VALUES (1, 'fgedu-test');
SELECT * FROM t_test;
```
在 fgedu-net-cn2 的备节点上连接查询,数据可见即说明同步复制生效:
```bas-h
gsql -d fgedudb -U fgedu -h fgedu-net-cn2 -p 8000 -c "SELECT * FROM t_test;"
```
控制台创建实例的关键字段逐项说明:实例名 4 到 64 个字符、字母开头,创建后不可改;引擎版本选择与上传软件包一致的 8.0+ 版本;数据库端口默认 8000,范围 1024 到 39989,创建后不可改,因此规划阶段就要避开已占用端口;管理员账户默认 root,实验中统一改用 fgedu;实例规格选 8U64G 档位,与实验主机 64GB 内存、8 核对应;密码 8 到 32 字符,大写、小写、数字、特殊字符四类至少包含三类;分布式实例额外选择强一致或最终一致,集中式实例选择 Quorum 或 Paxos 一致性协议并可填浮动 IP。
实例在控制台的状态流转为:创建中 → 部署中 → 运行中,失败时停在"异常"并给出失败步骤;运行中可执行停止、启动、重启、删除。命令行侧 gs_ctl query 输出解读:role 行为 Primary 或 Standby,static_cluster 显示集群拓扑,replication_state 为 Sync 表示同步正常,received、replay 两个 LSN 与主节点差距为 0 表示无延迟:
```bas-h
gs_ctl query -D /fgedudb/data | grep -E "role|replication_state|received|replay"
```
主备一致性校验 SQL,在主节点写入后到备节点比对:
```sql
-- 主节点执行
INSERT INTO t_test VALUES (2, 'standby-check');
-- 备节点执行
SELECT count(*) FROM t_test;
SELECT pg_is_in_recovery();
```
pg_is_in_recovery() 返回 t 表示当前连接的是备节点,count(*) 与主节点一致即同步复制生效。
连接放行与自启验证:生产环境防火墙只放行 8000 端口(实验环境已按 3.2 节关闭 firewalld),确认实例服务注册为开机自启:
```bas-h
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --reload
systemctl status gaussdb-fgedudb
```
退出 gsql 用 \q,命令行非交互执行单条语句用 -c,执行脚本文件用 -f,列出全部数据库用 -l:
```bas-h
gsql -d fgedudb -U fgedu -h fgedu-net-cn1 -p 8000 -c "SELECT count(*) FROM t_test;"
gsql -d fgedudb -U fgedu -h fgedu-net-cn1 -p 8000 -f /fgedudb/soft/init.sql
gsql -l -U fgedu -h fgedu-net-cn1 -p 8000
```
init.sql 内可写建库、建模式、授权语句,批量初始化一次执行完成,避免手工逐条粘贴。
上51CTO搜索风哥可以学习全套数据库教程
### 3.5 分布式单节点安装配置(fgedu-net-cn1)
仍在控制台"实例管理"中点击"创建实例",实例类型选择"分布式",实例名 fgedudb,机房 fgedu-lab,节点全部选择 fgedu-net-cn1,规划为 1 个 CN、1 个 GTM、1 组 DN,数据目录 /fgedudb/data,端口组保持默认(CN 8000、DN 内部端口平台自动分配)。提交后平台在单台主机上初始化全部组件。
安装完成后查看组件进程:
```bas-h
ps -ef | grep -E "cn_5001|dn_6001|gtm" | grep -v grep
```
应看到 CN、GTM、DN 三类进程。连接协调节点执行分布式验证:
```bas-h
gsql -d fgedudb -U fgedu -h fgedu-net-cn1 -p 8000
```
```sql
SELECT node_name, node_type, status FROM pg_node_info;
CREATE TABLE t_has-h(id int, info varchar(64)) DISTRIBUTE BY HAs-h(id);
INSERT INTO t_has-h VALUES (1, 's-harding-a'), (2, 's-harding-b');
SELECT node_name, count(*) FROM t_has-h GROUP BY node_name;
```
第二条查询按分片在不同 DN 上聚合,返回各分片行数,证明数据已按哈希打散。单节点分布式主要用于理解组件关系,生产形态见下一节。
组件端口与进程验证:CN 对外监听 8000,GTM、DN 内部端口由平台分配,用进程与端口对照确认三类组件齐全:
```bas-h
ps -ef | grep -E "cn_5001|gtm|dn_6001" | grep -v grep
ss -tlnp | grep -E "8000|25108|26001"
```
GTM 全局事务号验证:连接 CN 后申请并查看当前事务号,确认 GTM 在线协调:
```sql
SELECT txid_current();
SELECT node_name, node_type, status FROM pg_node_info;
```
分片路由裁剪理解:查询带分布列条件时 CN 只把请求下发到目标 DN,不带分布列时广播到全部 DN,用 EXPLAIN 观察计划访问的节点数量:
```sql
EXPLAIN SELECT * FROM t_has-h WHERE id = 1;
```
计划中只出现目标 DN 节点名说明裁剪生效;出现全部节点扫描说明条件未命中分布列,建表时应把高频过滤与关联列选为分布列。
风哥 itpux-com
### 3.6 集中式与分布式多节点安装配置
集中式多节点在控制台创建实例时,主节点选 fgedu-net-cn1,备节点勾选 fgedu-net-cn2(生产可再加第三台主机,命令流程相同),复制模式选同步,其余参数与 3.4 节一致。安装完成后执行主备一致性校验:
```bas-h
gs_ctl query -D /fgedudb/data | grep -E "role|state|sync"
```
在主节点连续写入测试数据后,切换到备节点连接校验行数一致。
分布式多节点:CN 与 GTM 部署在 fgedu-net-cn1,DN 分片组分别落在 fgedu-net-cn1 与 fgedu-net-cn2。控制台创建实例时在"节点规划"页为每个分片选择目标主机,平台自动配置分片路由表。安装后通过 gsql 查看分片分布:
```sql
SELECT node_name, node_host, node_port, node_type FROM pg_node_info;
```
扩容流程(概念验证):在控制台"实例管理"中选择扩容,添加新分片节点,平台自动迁移部分分片,迁移期间业务可正常连接;扩容完成后执行 ANALYZE 更新统计信息。扩容与缩容都在平台任务中心查看进度,失败自动回滚。
多节点部署的网络前提:fgedu-net-cn1 与 fgedu-net-cn2 之间管理网、业务网、复制网三平面互通,复制通道不经过 NAT,两台主机时间同步偏差在毫秒级,互信已在 3.2 节建立。集中式三节点(一主两备)在控制台节点规划页把第二备节点加入拓扑,Quorum 协议要求多数派在线,因此一主两备允许任一节点故障;分布式三节点按分片组把 DN 分别落在两台主机,单台主机故障只影响其上分片组,其余分片继续服务。
缩容流程:先在控制台把待移除分片的数据迁出并校验,确认该分片无业务连接后执行缩容,平台更新路由表并下线节点;缩容后同样执行 ANALYZE。无论扩容缩容,操作前必须完成一次全量备份,操作后核对分片行数与主备延迟。
```bas-h
gs_om -t status --detail
gs_om -t query -D /fgedudb/data
```
gs_om 是分布式集群的命令行管理工具,-t status 查看整体拓扑与节点角色,--detail 输出每个节点的 IP、端口、状态;集中式主备版使用 gs_ctl,两者不要混用。
### 3.7 日常维护管理
#### 3.7.1 实例启停
控制台方式:实例管理页选择实例,点击"停止/启动/重启",平台按依赖顺序停掉或拉起各组件。命令行方式用于应急:
```bas-h
# 集中式
gs_ctl stop -D /fgedudb/data -m fast
gs_ctl start -D /fgedudb/data
gs_ctl restart -D /fgedudb/data -m fast
# 分布式(整集群)
gs_om -t stop
gs_om -t start
gs_om -t status
```
-m fast 表示快停,等待事务完成后退出;-m immediate 为立即退出,仅在紧急场景使用,生产优先用 fast。
启停前先确认当前角色,避免在备节点上误执行主节点命令:
```bas-h
gs_ctl query -D /fgedudb/data | grep role
```
开启慢查询日志便于事后定位,在参数模板中设置 log_min_duration_statement 为 1000(毫秒),超过该阈值的 SQL 写入 pg_log:
```bas-h
gsql -d fgedudb -U fgedu -p 8000 -c "ALTER SYSTEM SET log_min_duration_statement = 1000;"
```
日志轮转由平台按天管理,实验中定期清理超过保留期的 pg_log 文件,避免占满数据盘:
```bas-h
find /fgedudb/data/pg_log -name "*.log" -mtime +14 -delete
```
网上搜索风哥教程可以学习全套数据库教程
#### 3.7.2 连接访问与账号对象管理
日常连接命令:
```bas-h
gsql -d fgedudb -U fgedu -h fgedu-net-cn1 -p 8000 -W '实验口令'
```
常用管理 SQL:
```sql
-- 创建普通业务账号并授权
CREATE USER fgedu_app PASSWORD '强口令' NOSYSADMIN;
GRANT CONNECT ON DATABASE fgedudb TO fgedu_app;
-- 创建模式与表
CREATE SCHEMA fgedu_schema AUTHORIZATION fgedu;
CREATE TABLE fgedu_schema.t_order(order_id bigint, amount numeric(12,2)) DISTRIBUTE BY HAs-h(order_id);
-- 查看连接与会话
SELECT datname, usename, client_addr, state FROM pg_stat_activity;
-- 查看慢 SQL(需开启日志采集)
SELECT query, calls, total_time FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;
```
角色与权限管理遵循最小权限:fgedu 为实例管理员,业务账号 fgedu_app 只授予 CONNECT 与目标表的 SELECT/INSERT/UPDATE 权限,不授予 SYSADMIN 与 CREATEDB:
```sql
-- 表级授权与回收
GRANT SELECT, INSERT, UPDATE ON fgedu_schema.t_order TO fgedu_app;
REVOKE DELETE ON fgedu_schema.t_order FROM fgedu_app;
-- 查看角色权限
SELECT rolname, rolsuper, rolcreaterole, rolcreatedb FROM pg_roles;
-- 查看模式归属与对象
SELECT nspname, nspowner::regrole FROM pg_namespace;
```
表空间用于把大表与索引分离到不同磁盘,实验环境在 /fgedudb/data 下建表空间并绑定模式:
```sql
CREATE TABLESPACE fgedu_ts LOCATION '/fgedudb/data/ts';
ALTER TABLE fgedu_schema.t_order SET TABLESPACE fgedu_ts;
```
常用系统视图:pg_stat_activity 看当前会话与等待事件,pg_stat_user_tables 看表的扫描、死元组、索引命中,pg_locks 看锁等待,pg_class 与 pg_index 看对象定义,pg_settings 看当前参数值。连接时可用 PGTARGETSESSIONATTRS 指定读写或只读节点,只读业务连接备节点分担压力:
```bas-h
export PGTARGETSESSIONATTRS=read-only
gsql -d fgedudb -U fgedu -h fgedu-net-cn2 -p 8000
```
上51CTO搜索风哥可以学习全套数据库教程
#### 3.7.3 参数模板修改(按 64GB 内存、8 核规划)
控制台"参数模板"选择集中式/分布式模板,按本机 64GB 内存、8 核核心下发以下 GUC(分布式需分别在 CN 与 DN 模板中设置):
```ini
max_process_memory = 56GB
s-hared_buffers = 16GB
effective_cache_size = 48GB
work_mem = 64MB
maintenance_work_mem = 1GB
max_connections = 500
wal_buffers = 16MB
checkpoint_timeout = 15min
max_wal_size = 16GB
autovacuum_max_workers = 8
max_wal_senders = 10
max_replication_slots = 10
max_standby_streaming_delay = 30s
recovery_max_workers = 4
enable_stream_operator = on
enable_seqscan = on
```
参数含义:max_process_memory 限制数据库进程总内存不超过 56GB,给操作系统与 Agent 留 8GB;s-hared_buffers 取内存约四分之一;work_mem 控制单条排序/哈希内存,8 核并发下 64MB 可避免单次查询占用过大;maintenance_work_mem 供建索引与 VACUUM 使用。max_wal_senders 限制主节点同时向备节点发送 WAL 的连接数,一主两备预留到 10 足够;max_replication_slots 预留复制槽数量,防止备节点断连后主节点保留过多 WAL;max_standby_streaming_delay 控制备节点回放延迟上限,超过后按策略保护查询;recovery_max_workers 限制备节点并行回放线程数,8 核取 4;enable_stream_operator 开启流式算子减少中间结果落盘;enable_seqscan 允许优化器在小表上使用顺序扫描,不要盲目关闭。
修改后按参数是否为静态参数选择"重启生效"或"动态生效",控制台会标注生效方式,切勿对静态参数只做 reload。动态参数可直接 reload 生效,静态参数(如 s-hared_buffers、max_connections)必须重启实例。参数下发后在每个节点核对:
```bas-h
gsql -d fgedudb -U fgedu -p 8000 -c "s-hOW max_process_memory; s-hOW max_wal_senders;"
```
参数变更记录在控制台参数模板的历史版本中,回滚直接选历史版本重新下发。
风哥教程 113257174
命令行侧查看参数:
```bas-h
gsql -d fgedudb -U fgedu -p 8000 -c "s-hOW s-hared_buffers; s-hOW work_mem;"
```
#### 3.7.4 备份与恢复
逻辑备份使用 gs_dump(单库)与 gs_dumpall(全库对象)。备份目录 /fgedudb/backup:
```bas-h
# 单库自定义格式备份
gs_dump -U fgedu -W '实验口令' -h fgedu-net-cn1 -p 8000 \
-F d -f /fgedudb/backup/fgedudb_$(date +%Y%m%d) fgedudb
# 全库导出(角色、表空间、全部库)
gs_dumpall -U fgedu -W '实验口令' -h fgedu-net-cn1 -p 8000 \
-f /fgedudb/backup/all_$(date +%Y%m%d).sql
```
gs_dump 格式选项:-F p 纯文本 SQL,可直接编辑,适合小库与结构导出;-F c 自定义压缩单文件,体积小;-F d 目录格式,生成多文件并支持 -j 并行恢复;-F t tar 归档。常用过滤与控制选项:-n schema 只导出指定模式,-t table 只导出指定表,-Z 0 到 9 设置压缩级别,-a 只导数据不导结构,-s 只导结构不导数据,-C 导出建库语句,-c 导出前先清理对象的语句。按模式与表分别导出示例:
```bas-h
# 只导出 fgedu_schema 结构
gs_dump -U fgedu -W '实验口令' -h fgedu-net-cn1 -p 8000 \
-F p -s -n fgedu_schema -f /fgedudb/backup/schema.sql fgedudb
# 只导出单表数据并压缩
gs_dump -U fgedu -W '实验口令' -h fgedu-net-cn1 -p 8000 \
-F c -a -t fgedu_schema.t_order -Z 6 \
-f /fgedudb/backup/t_order.dump fgedudb
```
校验备份文件:
```bas-h
ls -lh /fgedudb/backup/
gs_restore -l /fgedudb/backup/fgedudb_20261110 | head -20
```
gs_restore 的 -l 列出归档内容,-L 按清单文件选择性恢复,-j 4 用 4 个并发线程恢复,-c 恢复前清理已有对象,-e 遇到错误即退出;注意 -d 指定目标库与 -f 输出文件不能同时使用。恢复使用 gs_restore(目录格式)或 gsql 执行文本 SQL:
```bas-h
# 恢复到目标库(先确认目标库为空)
gs_restore -U fgedu -h fgedu-net-cn1 -p 8000 -d fgedudb \
-j 4 -c /fgedudb/backup/fgedudb_20261110
# 单表数据恢复
gs_restore -U fgedu -h fgedu-net-cn1 -p 8000 -d fgedudb \
-j 2 -t t_order /fgedudb/backup/t_order.dump
# 文本全量恢复
gsql -d postgres -U fgedu -p 8000 -f /fgedudb/backup/all_20261110.sql
```
gs_dumpall 导出全集群所有库加全局对象(角色、表空间),仅支持纯文本,恢复用 gsql 执行,恢复后必须 ANALYZE 更新统计信息。定时备份用 crontab,每日凌晨全量、每小时增量,日志单独留存:
```bas-h
crontab -e
# 每日 02:00 全量目录备份
0 2 * * * /fgedudb/soft/gs_dump -U fgedu -W '实验口令' -h fgedu-net-cn1 -p 8000 -F d -f /fgedudb/backup/full_$(date +\%Y\%m\%d) fgedudb >> /fgedudb/backup/dump.log 2>&1
# 每小时增量归档
0 * * * * /fgedudb/soft/gs_dump -U fgedu -W '实验口令' -h fgedu-net-cn1 -p 8000 -F c -Z 6 -f /fgedudb/backup/inc_$(date +\%Y\%m\%d\%H).dump fgedudb >> /fgedudb/backup/dump.log 2>&1
```
生产环境还需在控制台"备份管理"中配置周期备份策略(每日全量、每小时增量),并定期做恢复演练,备份不可恢复等于没有备份。恢复演练每季度至少一次,在隔离环境把备份还原并比对行数与校验和。
风哥数据库教程 itpux-com
#### 3.7.5 监控与告警
控制台"监控告警"页查看实例 CPU、内存、磁盘、连接数、复制延迟、QPS/TPS 曲线。告警规则按 64GB/8 核基线设置:内存使用率超过 85%、磁盘剩余低于 15%、复制延迟超过 10s、连接数超过 450、实例状态异常时触发告警,通知方式接入邮件或企业 IM。
命令行侧应急查看:
```bas-h
# 实时进程与资源
top -p $(pgrep -d, postgres)
# 表空间与磁盘
gsql -d fgedudb -U fgedu -p 8000 -c "SELECT spcname, pg_size_pretty(pg_tablespace_size(spcname)) FROM pg_tablespace;"
# 复制延迟(集中式)
gsql -d fgedudb -U fgedu -p 8000 -c "SELECT pid, state, write_lag, replay_lag FROM pg_stat_replication;"
```
监控指标口径:CPU 使用率看平台主机曲线,持续高于 80% 需排查慢 SQL 或扩容;内存看 s-hared_buffers 命中与连接占用,OOM 会在 pg_log 留下 out of memory 记录;磁盘看数据目录与 WAL 目录增长,WAL 积压说明备节点回放跟不上;连接数对照 max_connections=500,超过 450 告警;复制延迟 write_lag、replay_lag 持续大于 10 秒说明网络或备节点 IO 瓶颈。日志位置:实例数据目录 pg_log 下按天滚动,平台日志在 /fgedudb/tpops/log,Agent 日志在被管主机同目录下,排查时先看任务详情再下钻到主机日志:
```bas-h
ls -lt /fgedudb/data/pg_log/ | head -10
tail -200 /fgedudb/data/pg_log/postgresql-$(date +%F).log
grep -iE "error|fatal|panic" /fgedudb/data/pg_log/postgresql-$(date +%F).log
```
告警阈值按 64GB/8 核基线设定,不要直接套用大规格模板;阈值调整后观察两周再固化。
#### 3.7.6 主备切换验证
集中式集群在控制台"故障切换"中执行手动切换,把 fgedu-net-cn2 提升为主;切换后用 gs_ctl query 确认角色互换,应用连接串切到新主后业务恢复正常,再切回原主完成演练。命令行侧查看切换结果:
```bas-h
gs_ctl query -D /fgedudb/data
```
完整切换步骤:第一步,维护窗口内通知业务方并暂停批量任务,确认主备延迟为 0、无未提交长事务;第二步,控制台"故障切换"选择目标备节点 fgedu-net-cn2,执行提升,平台等待仲裁确认后把新主角色落定;第三步,在新主上执行 gs_ctl query 确认 role=Primary,在原主上确认已转为 Standby;第四步,应用连接串或浮动 IP 切到新主,执行一次读写验证;第五步,观察复制重建与延迟,确认新备节点进入 streaming 状态。回切流程对称:把 fgedu-net-cn1 重新提升为主,应用切回,再确认复制正常。
```bas-h
# 切换后核对角色与延迟
gs_ctl query -D /fgedudb/data | grep -E "role|replication_state|replay"
gsql -d fgedudb -U fgedu -p 8000 -c "SELECT pg_is_in_recovery();"
```
切换演练必须在维护窗口进行,切换前确认备份可用,切换后核对数据一致性与复制状态,避免出现双主或脑裂。出现双主迹象时立即停掉一侧写入,不要强行合并,先通过仲裁日志确认哪一侧获得多数票。
### 3.8 常见问题排查要点
安装阶段报错优先看三处:TPOPS 任务详情日志、目标主机 /fgedudb/tpops/log 下的 Agent 日志、实例数据目录下的 pg_log。主机名不可解析、时间不同步、互信失效、依赖包缺失是四大高频原因,3.2 节的预检可覆盖绝大部分。实例启动失败先看数据目录日志中的 OOM、端口占用、权限错误;复制中断检查网络与复制通道端口,在主节点查询 pg_stat_replication 观察 state 是否为 streaming;性能变慢先看 pg_stat_statements 定位慢 SQL,再核对 work_mem 与 s-hared_buffers 是否与 64GB/8 核基线匹配。
常见故障案例清单:
1. 添加主机失败、状态停在检查中:检查 /etc/hosts 双向解析、Ss-h 互信、umask 是否大于 0022、GSSAPIAuthentication 是否关闭、两台主机时间差是否超过阈值。
2. 实例创建卡在部署中:看任务详情定位失败步骤,多为软件包校验失败、磁盘空间不足、端口被占用;清理后在控制台重试,不要重复提交多个创建任务。
3. 主备复制 state 为 catchup 或断开:备节点 WAL 落后或网络中断,先看 pg_stat_replication 的 write_lag、replay_lag,再检查复制通道端口连通性,网络恢复后等待自动追平,长期追不上需重建备节点。
4. 连接被拒绝:确认实例运行中、端口 8000 未被防火墙拦截、max_connections 未耗尽;连接数耗尽时先查 pg_stat_activity 找长连接,再决定是否调大连接上限。
5. 实例 OOM 自动重启:max_process_memory 与实际负载不匹配,检查是否有大 work_mem 排序或异常连接,按 64GB 基线重新核算参数。
6. 备份失败:备份目录权限与空间不足、口令过期、网络中断都会导致 gs_dump 退出非零,看 dump.log 与平台备份任务详情,备份失败必须告警,不能静默。
7. 恢复后统计信息陈旧:大批量恢复后执行 ANALYZE,否则优化器按旧统计信息生成错误计划,表现为慢查询与全表扫描。
8. 切换后业务不通:应用连接串仍指向旧主或浮动 IP 未漂移,核对新主角色与连接目标,确认只读连接未误连旧主。
排查顺序固定为:先看平台任务与告警,再看主机 Agent 日志,最后看实例 pg_log;不要一上来就改参数,先定位证据再动手。
## 四、风哥针对本文总结
风哥针对本文总结如下:本套风哥教程围绕华为 GaussDB 企业版与 TPOPS 管理平台,先讲清集中式主备与分布式 s-hared-Nothing 两套体系的组件关系与选型原则,再在 fgedu-net-cn1、fgedu-net-cn2 两台 64GB/8 核主机上完整走通环境准备、TPOPS 安装纳管、集中式单节点与多节点、分布式单节点与多节点、参数调优、备份恢复、监控告警与主备切换的全流程。
理论层面要抓住一条主线:集中式无 GTM 与 CN,应用直连 DN,靠 CMS 与 ETCD 仲裁实现一主多备流复制,适合强一致、容量可控的核心业务;分布式用 CN 路由、GTM 协调全局事务、DN 分片存储,靠哈希分布与两阶段提交支撑横向扩展,适合持续增长的大数据量场景。两者内核同源、工具通用,但管理命令不同,集中式用 gs_ctl,分布式用 gs_om,切勿混用。
实战层面要按顺序落地:先在 3.2 节把操作系统内核参数、互信、时间同步、磁盘与目录准备到位,再用 appctl.s-h 安装 TPOPS 并纳管主机,然后在控制台按字段逐项填写创建实例,最后进入日常维护。参数、备份、切换是三个高频出问题的环节,所有 GUC 都要按本机 64GB 内存、8 核算出,备份要定期恢复演练,切换要在维护窗口按步骤执行并核对角色与延迟。
读者需要记住三个落脚点:一是生产环境以 TPOPS 控制台为主、命令行为辅,不要绕过平台手工装库;二是所有参数必须按本机规格核算,本套风哥教程给出的 56GB 进程内存、16GB s-hared_buffers、64MB work_mem 是 64GB/8 核基线,换规格要重新折算;三是备份与切换演练必须常态化,安装成功只是起点,可恢复、可切换才算交付。按本套风哥教程的步骤在实验环境完整复刻一遍,再对照生产环境的实际规格调整参数与拓扑,即可形成可落地的运维能力。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9664900/viewspace-3188309/ ,如需转载,请注明出处,否则将追究法律责任。