FYF
» HerBert
Toggle navigation
FYF
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
HCCDP
实验题
About Me
归档
标签
6、GaussDB运维与故障处理
无
2025-10-04 22:43:03
2
0
0
admin
# GaussDB 运维与故障处理 - 考试核心要点汇总 --- # 1. 实例管理 ## 一、 概述 * **工具**: GaussDB的集群管理和运维主要通过`gs_om`工具来完成。 ## 二、 集群启停 * **启动集群**: `gs_om -t start`。 * **停止集群**: `gs_om -t stop`。 * **停止流程**: `gs_om`通过创建`cluster_manual_start`和`etcd_manual_start`文件,通知各节点的`om_monitor`和`cm_agent`停止拉起进程,然后`cm_agent`会先停止数据库实例,再停止自身。 * **查看集群状态**: `gs_om -t status` 或 `cm_ctl query -Cv`。 * **正常状态**: `Cluster state`应为`Normal`,`Redistributing`应为`No`,`Balanced`应为`Yes`。 * **实例状态**: 主DN实例状态为`Primary`,备DN为`Standby`。CN和GTM的状态应为`Normal`。 ## 三、 集群配置 * **配置修改**: 使用`gs_guc`工具对参数进行查询、设置和重载。 * **语法**: `gs_guc [set|reload] -Z <node_type> -N <node_name|all> -I <instance_name|all> -c "parameter=value"`。 * `-Z`: 指定节点类型,如`coordinator`, `datanode`, `gtm`。 * `-N`: 指定节点名称或`all`。 * `-I`: 指定实例名称或`all`。 * **重要参数类别**: * **资源负载类**: 如`max_connections`, `max_prepared_transactions`, `shared_buffers`。 * **查询优化类**: 如`enable_nestloop`。 * **告警检测类**: 如`log_duration`。 ## 四、 集群扩容 * **分布式扩容**: 支持在线扩容,扩容期间业务不中断。 * **原理**: 通过段页式存储和动态日志多流技术,将数据以bucket物理文件的方式在节点间高效迁移,对业务影响<5%。 * **流程**: 1. 准备新节点环境和配置文件。 2. 执行`gs_expansion -t add-instance`添加新实例。 3. 执行`gs_expansion -t redist`进行数据重分布。 4. 执行`gs_expansion -t clean`清理扩容产生的临时文件。 * **集中式扩容 (Scale-Up)**: * **在线扩容**: 增加CPU或内存。 * **离线扩容**: 停止业务,使用`gs_om -t stop && gs_om -t start`使新规格生效。 ## 五、 集群缩容 * **分布式缩容**: 支持在线缩容,但有一定限制和风险。 * **流程**: 1. 执行`gs_shrink -t precheck`进行缩容前检查。 2. 执行`gs_shrink -t de-shard`进行数据重分布。 3. 执行`gs_shrink -t delete-node`删除节点。 * **重要**: 缩容会减少集群副本数,可能降低可靠性;缩容时集群性能会下降;磁盘空间不足可能导致缩容失败。 --- # 2. 备份与恢复 ## 一、 备份恢复概述 * **备份恢复工具**: * **gs_probackup**: 命令行工具,提供全量、增量、恢复、校验等功能。 * **Roach工具**: 封装了gs_probackup,简化了HCS云化场景下的操作。 * **备份类型**: * **全量备份 (Full Backup)**: 备份整个数据库集群的所有数据文件。 * **增量备份 (Incremental Backup)**: 仅备份自上次备份以来发生变化的数据块。 * **备份模式**: * **归档模式 (ARCHIVE)**: 备份WAL日志文件,支持恢复到任意时间点 (PITR)。 * **非归档模式 (NON-ARCHIVE)**: 不备份WAL日志,只能恢复到备份的那个时间点。 ## 二、 备份 * **创建备份目录**: `gs_probackup init -B <backup-path>`。 * **执行全量备份**: `gs_probackup backup -B <path> --backup-mode=full`。 * **执行增量备份**: `gs_probackup backup -B <path> --backup-mode=incremental`。 * **注意**: 增量备份依赖于一个有效的全量备份。 ## 三、 恢复 * **恢复流程**: 1. 停止目标集群。 2. 清空数据目录。 3. 执行恢复命令: `gs_probackup restore -B <path> -D <data-path> -i <backup-id>`。 4. 启动集群。 * **恢复到指定时间点 (PITR)**: * 恢复时添加`--target-time`或`--target-xid`参数。 * **前提**: 必须是归档模式的备份。 ## 四、 其他管理 * **查看备份**: `gs_probackup show -B <path>`。 * **删除备份**: `gs_probackup delete -B <path> -i <backup-id>`。 * **备份校验**: `gs_probackup validate -B <path>`,检查备份文件的完整性和一致性。 --- # 3. 容灾方案 ## 一、 容灾指标 * **RPO (Recovery Point Objective)**: 恢复点目标,代表最大可容忍的数据丢失量。 * **RTO (Recovery Time Objective)**: 恢复时间目标,代表业务中断后恢复服务所需的最长时间。 ## 二、 同城容灾 * **技术**: 基于存储复制的**ADR (Application Data Replication)**技术。 * **原理**: 利用华为Dorado存储的`HyperMetro`(双活)和`HyperReplication`(异步复制)能力。 * **架构**: * **同城双活**: 生产中心和同城灾备中心构成一个双活集群,两个中心的存储阵列通过HyperMetro实现数据实时同步,达到**RPO=0**。 * **仲裁**: 通过部署在第三地的仲裁站点来防止双活数据中心之间发生脑裂。 * **优势**: RPO=0,RTO分钟级,对主机性能无影响,故障自动切换。 ## 三、 异地容灾 * **技术**: 基于数据库日志的**流式复制 (Streaming Replication)**。 * **原理**: 生产集群的主DN将WAL日志实时发送到异地灾备集群的备DN,备DN进行日志回放。 * **架构**: * **主备集群**: 生产中心和异地灾备中心各部署一套独立的GaussDB集群。 * **数据流**: 主集群的CN或DN将日志流式传输到灾备集群的CN或DN。 * **优势**: 部署简单经济,不依赖中间存储,灾备集群可读(读写分离)。 * **RPO/RTO**: RPO<10s,RTO<10min。 ## 四、 切换演练 * **容灾切换 (Failover)**: 生产中心发生灾难时,将业务切换到灾备中心。 * **容灾演练 (Switchover)**: 计划内的主备切换,用于验证容灾方案的有效性。 * **命令**: 使用`gs_om`工具进行切换和回切操作,如 `gs_om -t switchover` 和 `gs_om -t switchback`。 --- # 4. 数据库升级 ## 一、 升级方式 * **补丁升级**: 安装小的功能增强或问题修复,通常不涉及数据格式变化,风险较低。 * **版本升级**: 大版本或跨版本升级,可能涉及数据格式变化,需要更长的停机时间。 ## 二、 升级方法 * **就地升级 (In-place Upgrade)**: * **原理**: 直接在原数据库集群上停止旧版本进程,替换二进制文件,再启动新版本进程。 * **优点**: 速度快,无需额外存储空间。 * **缺点**: **需要停机**,无法回滚(除非有备份)。 * **流程**: 停止业务 -> 备份数据 -> 停止集群 -> 安装升级包 -> `gs_om -t upgrade` -> 启动集群 -> 业务验证。 * **灰度升级 (Gray Upgrade)**: * **原理**: 通过在新节点上建立一个备机,利用数据库的主备复制机制,先升级备机,再进行主备切换,实现业务的短暂中断或无中断升级。 * **优点**: 停机时间短(秒级),**可回滚**(回切到原主机即可)。 * **缺点**: 流程复杂,需要额外资源。 * **流程**: 搭建新备机 -> `gs_upgradectl -t build` -> 主备切换 -> `gs_upgradectl -t upgrade` 升级原主机 -> `gs_upgradectl -t commit` 完成升级。 --- # 5. 故障诊断 ## 一、 故障诊断流程 1. **现象收集**: 收集告警、日志、用户反馈等信息。 2. **根因分析**: 结合系统视图、日志、WDR报告等工具分析问题根源。 3. **制定恢复方案**: 根据根因制定解决方案。 4. **方案实施与验证**: 执行方案并验证问题是否解决。 5. **总结与预防**: 总结经验,制定预防措施。 ## 二、 关键日志 * **运行日志 (`.log`)**: 记录数据库运行过程中的事件、错误和警告。位于`$GAUSSLOG/pg_log`下。 * **操作日志 (`.aud`)**: 记录数据库的审计信息。位于`$GAUSSLOG/pg_audit`下。 ## 三、 关键系统视图 * **`dbe_perf.statement_history`**: 记录已执行SQL语句的性能统计信息,是**慢SQL诊断**的核心视图。 * **`pg_stat_activity`**: 显示当前所有活动会话的状态。 * **`pg_locks`**: 显示当前数据库中持有的所有锁信息。 * **`pg_thread_wait_status`**: 显示线程的等待事件,是诊断**性能瓶颈**的关键视图。 ## 四、 WDR (Workload Diagnosis Report) * **作用**: 在两个时间点(快照)之间,收集数据库的性能统计信息并生成诊断报告,是**数据库健康检查和性能分析**的利器。 * **组成**: 由`snapshots`(快照)和`WDR reports`(报告)组成。 * **分析内容**: 报告包含负载概要、SQL统计、等待事件、内存使用、I/O统计等多个部分。 * **使用**: 1. 创建快照: `select create_wdr_snapshot();` 2. 生成报告: `select generate_wdr_report(<begin_snap_id>, <end_snap_id>);` ## 五、 常见故障场景 * **连接失败**: 检查`gs_hba.conf`配置、网络、`max_connections`参数、用户权限等。 * **数据库夯死/CPU 100%**: * **根因**: 通常由慢SQL(如全表扫描、复杂JOIN)、锁等待、资源竞争等引起。 * **诊断**: 使用`top`命令定位高CPU进程,通过`pg_stat_activity`和`pg_thread_wait_status`视图关联到具体的SQL和等待事件。 * **磁盘空间满**: * **根因**: 数据增长、临时文件、未及时清理的日志或归档、数据膨胀。 * **诊断**: 使用`df -h`检查磁盘使用,查询`pg_class`视图找到占用空间大的表,分析`VACUUM`情况。
上一篇:
6、ADG常见故障
下一篇:
6、windos中 rman全备和归档分开
0
赞
2 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网