GaussDB数据库日常运维
1
1.1 总结
本文档围绕 GaussDB 日常运维核心操作展开,重点覆盖三大模块:数据库连接管理(支持 DAS 可视化连接、内网高安全连接、公网弹性 IP 连接,推荐优先使用 DAS 和内网)、数据导入导出(按场景匹配工具:元数据用gs_dump/gs_restore、小批量数据用copy、文本格式用gsql元命令、分布式大批量用GDS,GDS 通过多 DN 并行导入导出突破 CN 瓶颈)、备份恢复(基于 OBS 存储,支持全量备份(默认每周全量)和差量备份(默认每 30 分钟一次),自动备份默认开启且保留 7 天,手动备份需用户触发,恢复支持实例级 / 库级 / 表级,同时提供备份日志定位故障的方法),助力运维人员高效完成连接、数据迁移及数据安全保障。
1.2 思维导图(mindmap)

1.3 详细总结
一、数据库连接管理
1. 核心连接方式对比
|
连接方式 |
连接地址 |
使用场景 |
关键特性 |
推荐度 |
|
DAS 连接 |
无需 IP |
可视化管理(执行 SQL、运维) |
易用、安全、智能,默认开通权限 |
★★★★★ |
|
内网连接 |
内网 IP |
应用与实例同 VPC/ECS |
安全性高(无公网暴露),性能优(低延迟) |
★★★★★ |
|
公网连接 |
弹性公网 IP |
无法通过内网访问的跨网场景 |
安全性低(公网暴露),需绑定弹性 IP |
★★☆☆☆(建议迁移至内网) |
2. 连接流程详解
DAS 连接流程:
购买 GaussDB 实例(确认规格、网络、账号配置);
登录华为云控制台→进入 DAS 服务→直接选择实例连接(默认开通权限)。
内网连接流程:
购买实例(确保 ECS 与实例同 VPC);
安全组配置:
同安全组:默认互通,无需额外配置;
不同安全组:分别在 ECS 和实例的安全组中添加 “允许对方 IP + 端口” 规则;
通过客户端(如 gsql)使用内网 IP 连接,支持普通连接(gsql -h 内网IP -p 端口 -U 用户 -d 库)或 SSL 加密连接。
公网连接流程:
购买实例后,在实例 “网络配置” 中绑定弹性公网 IP;
设置安全组:允许公网主机 IP 访问实例端口;
通过客户端使用弹性公网 IP 连接,建议仅临时使用,长期需迁移至内网。
二、数据导入导出
1. 场景与工具匹配表
|
业务场景 |
推荐工具 |
核心优势 |
适用数据量 |
|
|
导出 / 恢复表 / 库元数据(仅结构) |
gs_dump/gs_restore |
精准导出对象定义,支持跨库恢复 |
无限制(重点在结构) |
|
|
小批量数据(万级以内)导入 / 导出 |
copy |
语法简单,支持查询结果直接导出 |
≤10 万行 |
|
|
文本格式 SQL 脚本执行(建表语句) |
gsql元命令 |
支持脚本批量执行,结果定向输出 |
脚本文件≤100MB |
|
|
分布式场景大批量数据(TB 级) |
GDS |
多 DN 并行处理,突破 CN 瓶颈,性能提升 5-10 倍 |
≥100 万行(推荐 TB 级) |
|
2. 核心工具使用详解
(1)gs_dump/gs_restore(元数据工具)
|
工具 |
功能 |
关键参数 |
示例 |
|
|
gs_dump |
导出表 / 库结构 / 数据 |
-U:用户名
-W:密码
-p:CN 端口
-s:仅导出结构
-t:指定表
-f:输出文件
-F:格式(p = 文本,c = 自定义归档) |
导出单表结构:
gs_dump postgres -U u1 -W Huawei@123 -p 16000 -s -t t1 -f /data/t1.sql -F c |
|
|
gs_restore |
恢复导出文件 |
-d:目标数据库
-p:CN 端口 |
恢复至 db1 库:
gs_restore -d db1 -p 16000 /data/t1.sql |
|
(2)copy(小批量数据工具)
|
功能 |
语法 |
示例 |
|
|
|
文本导入表 |
copy 表名 from '文件路径' delimiter '分隔符'; |
copy t1 from '/data/t1.txt' delimiter '^'; |
|
|
|
表数据导出 |
copy 表名 to '文件路径' delimiter '分隔符'; |
copy t1 to '/data/t1_out.txt' delimiter '^'; |
|
|
|
查询结果导出 |
copy (查询语句) to '文件路径' delimiter '分隔符'; |
copy (select * from t1 where a2=1) to '/data/t1_filter.txt' delimiter '^'; |
|
|
(3)GDS(分布式大批量工具)
步骤 1:启动 GDS 服务bash 运行 # -d:数据目录,-p:服务IP:端口,-H:允许访问的IP段,-l:日志文件,-t:并发线程数
gds -d /input_data/ -p 10.186.251.85:8808 -H 0.0.0.0/0 -l /log/gds_log.txt -D -t 2
步骤 2:创建外表(关联 GDS 数据文件)sql -- 导入外表(指定文件、格式、分隔符)
create foreign table t1_foreign(a1 varchar2(10), a2 int)
SERVER gsmpp_server OPTIONS (
location 'gsfs://10.186.251.85:8808/t1.txt',
format 'text', encoding 'utf8', delimiter '^', null '',
per node reject limit '100' with error_t1_foreign
);
步骤 3:执行导入 / 导出sql -- 导入:从外表写入目标表
insert into t1 select * from t1_foreign;
-- 导出:从目标表写入导出外表
insert into t1_foreign_output select * from t1;
3. GDS 导入最佳实践
数据倾斜校验:对千万行以上的表,先导入 1% 数据,执行select table_skewness('表名')检查倾斜,调整分布列后再全量导入;
拆分并行优化:
将大文件拆分为多个小文件(每个≤10GB),使用多 GDS 服务并行导入;
同一 GDS 服务通过-t参数设置并发线程(推荐 2-4 线程);
资源配置要求:
网络:必须使用万兆网(千兆网易断连);
磁盘 IO:GDS 数据目录磁盘 IO 需 >400MB/s(单 GDS 单核处理上限);
部署密度:1 个 Raid 组部署 1-2 个 GDS,避免 IO 瓶颈。
三、备份恢复
1. 备份核心概述
备份必要性:
防误操作:GaussDB 高可用同步删除备机数据,需依赖备份恢复;
高可靠存储:备份文件存储于 OBS,提供12 个 9的可靠性(数据持久性)。
备份分类表(按不同维度)| 分类维度 | 类型 | 核心说明 || --- | --- | --- || 数据组织形式 | 物理备份 | 保留数据库原始格式,备份快、占空间小 || | 逻辑备份 | 通用格式(如 CSV),支持跨库 / 跨平台恢复 || 备份对象范围 | 集群级备份 | 备份集群所有对象,用于容灾 || | 对象级备份 | 备份单表 / 多表,用于单点备份和审计 || 数据完整性 | 全量备份 | 备份所有数据 + barrier 点日志,可单独恢复 || | 差量备份 | 仅备份增量页面 + barrier 点日志,需配合全量恢复 || | 日志归档 | 备份事务日志,支持时间点(PITR)恢复 |
2. 备份策略与操作
(1)自动备份(默认开启)
默认策略配置:
|
配置项 |
默认值 |
可调整范围 |
|
|
|
保留天数 |
7 天 |
1-730 天 |
|
|
|
全量备份时间段 |
随机 1 小时(如 01:00-02:00) |
00:00-23:00(1 小时区间) |
|
|
|
全量备份周期 |
每天 |
可选择特定星期(如周一 / 周三) |
|
|
|
差量备份周期 |
每 30 分钟 |
5-60 分钟 |
|
|
|
|
|
|
|
|
修改流程: 登录华为云控制台→实例管理→选择实例→左侧 “备份恢复”→“修改备份策略”→调整参数后保存。
(2)手动备份(用户触发)
操作场景:重要业务节点(如版本升级前、大促前)的全量备份;
操作步骤:
控制台→实例管理→选择实例→左侧 “备份恢复”;
点击 “创建备份”→输入备份名称和描述→点击 “确定”;
特性:手动备份永久保留,需用户手动删除,不占用自动备份配额。
3. 恢复操作与故障处理
(1)恢复操作
恢复场景:将实例数据恢复到备份创建时的状态,支持恢复至 “新实例” 或 “已有实例”;
恢复限制:恢复至已有实例时,需满足 “同引擎、同节点拓扑、同大版本、存储空间≥原实例”;
操作步骤: 控制台→实例管理→选择实例→左侧 “备份管理”→找到目标备份→点击 “恢复”→选择恢复目标(新 / 已有实例)→确认配置后提交。
(2)备份故障定位流程
步骤 1:获取备份节点:登录 Console→实例 “备份恢复”→找到对应备份任务→获取下发节点实例号;
步骤 2:查找转发节点:登录下发节点→查看/home/Ruby/log/request_agent.log→搜索关键词 “Send backup request”→获取备份转发节点 IP(通常为第一个 CN);
步骤 3:查看主节点日志:登录转发节点→查看$GAUSSLOG/roach/controller目录下对应时间的日志→查找首次报错(关键词:[main] python GaussRoach enter为备份开始标识);
步骤 4:定位具体节点故障:若日志报[pollSubprocess ret code abnormal]→查看$GAUSSLOG/roach/agent目录日志→找到报错节点 IP→登录该节点查看 agent 日志,定位故障原因。
(3)常见故障及处理
|
故障现象 |
原因 |
处理方案 |
|
|
|
备份失败,提示 “集群状态 unavailable” |
集群节点故障(如 DN 下线) |
先修复集群至正常状态(如重启节点),再重新备份 |
|
|
|
备份中突然失败 |
备份过程中发生进程重启、主备切换 |
待集群稳定后,手动触发备份,避免业务高峰期操作 |
|
|
|
大版本升级中备份失败 |
升级过程中锁定备份资源 |
升级观察窗口内(升级完成后)再执行备份 |
|
|
|
备份与扩容 / 缩容并发执行失败 |
资源竞争(备份与扩容均占用 IO/CPU) |
避免并发操作,先完成备份再执行扩容 / 缩容 |
|
|
四、关键缩略语
|
缩略语 |
英文全称 |
中文释义 |
|
|
|
OBS |
Object Storage Service |
对象存储服务(备份文件存储介质) |
|
|
|
PITR |
Point-In-Time Recovery |
按时间点恢复(基于日志归档) |
|
|
|
GDS |
Gauss Data Service |
高斯数据服务(分布式数据导入导出工具) |
|
|
|
DAS |
Data Admin Service |
数据管理服务(可视化数据库管理工具) |
|
|
|
CN |
Coordinator Node |
协调节点(备份转发节点) |
|
|
|
DN |
Data Node |
数据节点(备份数据存储节点) |
|
|
1.4 关键问题
问题 1:在 GaussDB 运维中,如何根据业务场景选择合适的数据库连接方式?需说明各方式的适用场景、优缺点及推荐优先级。
答案:选择连接方式需结合 “网络环境、安全性、性能需求” 三要素,具体决策如下:
优先选择 DAS 连接:
适用场景:所有需要可视化管理的场景(如执行 SQL、查看表结构、运维监控);
优点:无需配置 IP,默认开通权限,提供 SQL 执行、智能运维等功能,操作简单;
缺点:无明显缺点,仅依赖华为云控制台。
其次选择内网连接:
适用场景:应用部署在华为云 ECS,且 ECS 与 GaussDB 实例同 VPC、同区域;
优点:无公网暴露,安全性高;网络延迟低,性能优(支持高并发读写);
缺点:跨 VPC 场景无法使用。
仅临时使用公网连接:
适用场景:应用未迁移至华为云,或跨 VPC 且无法通过内网访问的临时场景;
优点:突破网络限制,可跨地域访问;
缺点:需绑定弹性公网 IP,存在公网攻击风险;网络延迟高,性能差;
建议:长期使用需将应用迁移至与实例同 VPC 的 ECS,切换为内网连接。
推荐优先级:DAS 连接 ≥ 内网连接 > 公网连接(仅临时)。
问题 2:GDS 作为 GaussDB 分布式大批量数据导入工具,其核心原理是什么?在导入 TB 级数据时,需注意哪些关键配置和优化手段以避免性能瓶颈?
答案:
一、GDS 核心原理
传统导入依赖 CN 下发任务,存在 CN 单点瓶颈;GDS 通过 “多 DN 并行处理” 突破瓶颈,原理如下:
任务规划:CN 仅负责任务下发(如数据分片规则),不参与数据传输;
数据切分:GDS 服务将源数据文件切分为多个分片,按 DN 数量均匀分配;
并行导入:各 DN 接收分片后,解析数据并按分布列计算 Hash 值→若数据属于自身则本地存储,属于其他 DN 则通过内网传输;
错误处理:支持配置单 DN 允许的错误行数(per node reject limit),错误数据写入错误表,便于后续分析。
二、TB 级数据导入的关键配置与优化
网络配置:
必须使用万兆网(10Gbps),千兆网无法承载高速数据传输,易出现断连;
GDS 服务器与 GaussDB 集群需处于同一内网,避免跨公网传输。
存储配置:
GDS 数据目录需挂载高性能磁盘(如 SSD 阵列),确保磁盘 IO 吞吐量>400MB/s(GDS 单核处理能力上限);
1 个 Raid 组仅部署 1-2 个 GDS 服务,避免单 Raid IO 过载。
数据预处理:
将大文件拆分为多个小文件(每个文件大小建议 10-20GB),避免单文件导入时的 IO 瓶颈;
导入前先导入 1% 数据,执行select table_skewness('目标表名')检查数据倾斜,若 DN 数据量差异>10%,需调整分布列后再全量导入。
并发优化:
启动 GDS 服务时,通过-t参数设置并发线程数(推荐 2-4 线程,需匹配 CPU 核心数);
若数据量超 5TB,部署多个 GDS 服务(如 2-4 个),每个 GDS 处理部分文件,实现并行导入。
问题 3:GaussDB 的自动备份策略默认配置是什么?如何根据 “2TB 数据总量、每小时 2GB 增量” 的业务场景优化备份策略?需说明优化思路和具体配置。
答案:
一、自动备份默认配置
GaussDB 实例创建时默认开启自动备份,默认参数如下:
|
配置项 |
默认值 |
作用 |
|
|
|
保留天数 |
7 天 |
自动备份文件保留 7 天,到期自动删除 |
|
|
|
全量备份周期 |
每天 1 次 |
每天在随机 1 小时区间(如 01:00-02:00)执行全量备份 |
|
|
|
全量备份时间段 |
随机 1 小时 |
避免所有实例集中在同一时间备份,抢占资源 |
|
|
|
差量备份周期 |
每 30 分钟 1 次 |
备份上一次备份后的增量数据,减少数据丢失风险 |
|
|
二、“2TB 总量 + 2GB / 小时增量” 场景的优化策略
优化思路:平衡 “备份耗时、存储成本、数据安全性”—— 全量备份周期不宜过短(避免占用过多 IO / 存储),差量备份周期需匹配增量数据量(确保丢失数据≤可接受范围)。
三、具体优化配置
全量备份优化:
周期:从 “每天 1 次” 调整为 “每周 1 次”(2TB 全量备份耗时约 4-6 小时,每周 1 次可减少 IO 占用,降低存储成本);
时间段:固定在业务低峰期(如 00:00-06:00),避免影响业务读写性能;
保留天数:从 7 天调整为 “14 天”(每周 1 次全量,14 天保留 2 个全量备份,提高容灾能力)。
差量备份优化:
周期:保持 “每 30 分钟 1 次”(每小时 2GB 增量,30 分钟增量约 1GB,差量备份耗时短,可接受);
说明:若业务允许丢失 1 小时数据,可调整为 “每 60 分钟 1 次”,进一步减少备份频率。
额外配置:
开启 “日志归档”(可选):若需支持时间点恢复(PITR),开启事务日志归档,备份日志文件(每小时日志量约 500MB,存储成本低);
手动备份补充:在全量备份间隔期间(如每周三),手动触发 1 次全量备份,应对突发故障(手动备份永久保留,不占用自动备份配额)。
优化后效果:每周仅 1 次全量备份(2TB),每日 24 次差量备份(每次约 1GB),每周存储占用≈2TB + 24×7×1GB≈2TB+168GB=2.168TB,兼顾性能、成本与数据安全性。
- 点赞
- 收藏
- 关注作者
评论(0)