玩转Greenplum集群主备机替换

简介:

 

1驱动因素

 

Greenplum集群内部segment host因硬件(主板、硬盘、电源等)故障或是其他原因导致计算节点主机不可用情况下,以备用主机替代原segment host,快速恢复GP集群至正常状态,避免集群异常期间镜像节点主机因承载压力增加而产生新问题。


 

2具体方案与实施流程

 

2.1方案概述


  1. 为保证完全兼容及GP集群整体性能,备用主机需与原主机在硬件配置、操作系统、文件系统、网卡及网卡模式、存储硬盘大小、IP及主机名称、主机参数等层面保持一致。

  2. 安装GPDB软件,版本与原集群保持一致,数据库参数设置与原segment host保持一致。

  3. 创建及配置gpadmin用户。

  4. 根据原segment host逻辑文件系统位置分布,在备用主机上以gpadmin逐级创建相应文件系统目录,各级目录位置和名称保持一致。

  5. 重新建立各节点间的ssh通信认证。

  6. 加备用主机进GP集群。

  7. 恢复备用主机上实例及同步数据。

  8. 验证集群状态。


2.2注意事项


A. 提前通知主机侧,修改备机内外IP、主机名与待替换节点主机保持一致,开放master主机与备机之间的安全加固,实现master与备机通过ssh直接访问,申请备机root口令使用权限。


B. 应用侧告知已停应用,即可通知主机侧断开待替换主机网络,使其脱离集群;并重启备机网卡,使已修改的IP与主机名等参数生效,让master可识别。


2.3实施流程


2.3.1备机上按照原节点主机创建文件空间及数据磁盘上各级数据目录


2.3.2更新数据字典统计收集


由于备机替换操作不定期遇到,期间数据库不间断运行导致部分系统表膨胀或是统计信息未及时更新,需执行vacuum analyze脚本,以便提高恢复实例同步数据过程中对系统表的检索速度。


A. 重启库,限制应用连接


启库命令:gpstart –R(该模式将使数据库进入Restricted模式,将只允许超级管理员可以连接数据库),请记住当数据库数据恢复正常后,请再次重启下数据库,使用常规命令(gpstart -a),重新起库,亦可以通过修改pg_hba.conf配置文件来限制用户登录。


B. 查询当前膨胀的系统表


通过视图gp_toolkit.gp_bloat_diag,查询当前膨胀的表,然后对单表执行vcauum full操作。例:



当上述步骤完成后,同时需要对系统表执行vacuum analyze操作,因为数据同步过程中,catalog膨胀,表记录多,会造成同步速率较慢,因此需要在同步数据之前,完成vacuum操作。


C. 执行vacuum脚本


脚本位置: master主机上:/home/gpadmin/shsnc/wangk

执行方式:sh ./vacuum

等待脚本执行结束。


2.3.3重新建立集群内部的ssh通信认证


为便于表达命令,假设原segment host在集群中主机名为sdw33


A. 在Master主机上使用root用户vi /root/.ssh/known_hosts ,删除文件中已存在的有关sdw33的认证,保存退出。


B. 重新建立master与sdw33通信认证



C. 执行 gpssh-exkeys命令,all_hosts_new为包含集群内所有主机的配置文件。



D. 切换用户,以gpadmin重复上述步骤(1)(2)(3)。



注意点:


i. 编辑原始文件前,请先备份原始文件,以免发生误修改不能回退。

ii. 原始known_hosts文件中,包含主机名sdw33和其IP对应的认证信息都需要删除。

iii. 实际操作中,因提前申请备机root权限及口令,可不对整个集群以root重新建互信,只需在master和备机之间重新建立一次。


2.3.4加备用主机进GP集群


A. 编辑一个tmp文件,只包含原segment host在集群中的主机名



B. 执行 gpseginstall命令



注意点:中途需要输入一次备机gpadmin用户的主机登陆口令

 

2.3.5恢复备用主机上实例及同步数据


A. 切换至gpadmin用户



B. 执行gprecoverseg -p sdw33

......省略输出信息


注意:在批量recover出现速度异常慢等情况时,考虑分批次恢复备机实例,方式如下:


执行gprecoverseg -o /tmp/rec1命令,获得需要执行的恢复的节点信息,修改/tmp/rec1文件信息,只保留4个(可根据实际需要进行更改)需要恢复的节点,然后执行gprecoverseg -i /tmp/rec2命令。先从primary节点开始恢复,然后在恢复mirror节点。(由于在数据恢复过程中,catalog 表记录多,网络传输速度,磁盘切块读写等会造成系统性能瓶颈,所以每次只恢复4个,有助于提高恢复速率) 例:



当节点恢复一半以上后可以执行gprecoverseg -B 命令,恢复剩余的节点数据。例:当还有7个节点还没有恢复,可以执行gprecoverseg –B 7命令。



C. 执行gpstate命令检查所有实例是否都成功UP



D. 耐心等待后台进程完成数据重同步,期间可以用gpstate –m/-e/-s等检查同步状态与完成进度;具体同步耗时根据数据量大小不等;


E. 待sdw33上所有实例完成数据同步,执行 gprecoverseg –r 命令,恢复异常期间primary和mirror角色互换至原始状态;


注意点:必须以所有实例全部处于同步状态为执行前提!

 

2.3.6验证集群状态


A. 执行gpstate –e命令



B. 执行gpstate命令



作者介绍:张玉朋


  • 新炬网络高级技术专家;

  • 5年以上电信行业运维经验;

  • 擅长oracle架构规划,故障诊断、性能优化、shell编程等,对大型IT系统的oracle数据库运维有丰富的经验;

  • 曾主导某省移动核心CRM、BOSS升级项目。


本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2016-01-07

目录
相关文章
|
5月前
|
人工智能 运维 Serverless
一键部署 Qwen3! 0 代码,2 种方式全新体验
Qwen3 正式发布并开源 8 款混合推理模型,包括两款 MoE 模型(Qwen3-235B-A22B 和 Qwen3-30B-A3B)及六个 Dense 模型。这些模型支持 119 种语言,在代码、数学等测试中表现优异,并提供思考与非思考两种模式。依托阿里云函数计算 FC 算力,FunctionAI 平台支持模型服务和应用模板部署,适用于多种场景。用户可通过 Serverless 架构快速构建高弹性、智能化应用,显著降低开发成本,提升效率。试用链接及详细文档已提供,欢迎体验。
|
9月前
|
JSON 关系型数据库 PostgreSQL
PostgreSQL 9种索引的原理和应用场景
PostgreSQL 支持九种主要索引类型,包括 B-Tree、Hash、GiST、SP-GiST、GIN、BRIN、Bitmap、Partial 和 Unique 索引。每种索引适用于不同场景,如 B-Tree 适合范围查询和排序,Hash 仅用于等值查询,GiST 支持全文搜索和几何数据查询,GIN 适用于多值列和 JSON 数据,BRIN 适合非常大的表,Bitmap 适用于低基数列,Partial 只对部分数据创建索引,Unique 确保列值唯一。
|
关系型数据库 MySQL 数据库
【Databend】多表联结,你不会还没有掌握吧!
【Databend】多表联结,你不会还没有掌握吧!
205 2
技术经验分享:Cascader级联选择器Element的使用和总结
技术经验分享:Cascader级联选择器Element的使用和总结
230 0
|
存储 Unix C语言
C语言进程(第三章,exec函数族,execl,execlp,execle,execv,execvp,execve)
C语言进程(第三章,exec函数族,execl,execlp,execle,execv,execvp,execve)
629 0
|
关系型数据库 数据库 SQL
Greenplum 的一次紧急恢复
Greenplum的一次非常规恢复方法
2823 0
|
存储 数据采集 监控
adb
adb
1651 0
|
存储 SQL 分布式计算
GreenPlum小结
GreenPlum小结
484 0
|
安全 Linux
在企业里linux你用什么关机?shudown?halt?poweroff?init 0? 你是否不知道他们的区别,而娘下大错?
在企业里linux你用什么关机?shudown?halt?poweroff?init 0? 你是否不知道他们的区别,而娘下大错?
437 0
|
SQL 关系型数据库 MySQL
MYSQL主从同步详细教程
MYSQL主从同步详细教程
1208 0
MYSQL主从同步详细教程