资讯专栏INFORMATION COLUMN

Greenplum数据库备机替换流程及问题

IT那活儿 / 1120人阅读
Greenplum数据库备机替换流程及问题
如何需要备机


在greenplum数据库运维过程中,会出现各种问题,上次分享的是因为磁盘问题导致数据库的数据文件损坏,造成一些数据不能查询,假如在上次的情况下,是主机的磁盘彻底损坏,造成数据库的实例宕机,数据无法恢复,且主机换盘需要很长时间才能完成,但是又不能耽误第二天的业务正常使用,那该怎么做呢,下面就来介绍下greenplum数据库的备机替换流程,通过备机替换把有问题的主机踢出去,把正常的主机加到集群中,来完成集群的正常使用,根据集群数据量大小、集群规模大小及集群中业务表的使用情况,备机替换大概需要3到6小时之内完成,下面详细介绍下备机替换流程及替换过程中遇到的问题。

替换流程


1、环境准备


1.1、修改主机名:

备机:  sdw4192.168.100.106

问题主机:sdw3192.168.100.105

把备机的主机名修改成替换下来的主机名(源主机),保持主机名一致,然后修改/etc/hosts文件,修改需要替换主机的IP地址,操作如下:


检查集群状态,查看问题主机,确定要替换下来的主机名:

检查确认sdw3主机为问题主机。


然后登录备机修改主机名:

hostnamesdw3

vi/etc/sysconfig/network

NETWORKING=yes

HOSTNAME=sdw3


1.2、修改集群所有主机的/etc/hosts文件

原文件信息:

[root@mdw~]# cat /etc/hosts

127.0.0.1   localhost

#Greenplum   hosts start

192.168.100.101   mdw

192.168.100.102   smdw

192.168.100.103   sdw1

192.168.100.104   sdw2

192.168.100.105   sdw3


修改成如下

[root@mdw~]# cat /etc/hosts

127.0.0.1   localhost

#Greenplum   hosts start

192.168.100.101   mdw

192.168.100.102   smdw

192.168.100.103   sdw1

192.168.100.104   sdw2

192.168.100.106   sdw3


分发/etc/hosts文件到所有集群主机

source/usr/local/greenplum-db/greenplum_path.sh


集群做互信

[root@mdw~]# gpssh-exkeys -f /tmp/all_hosts


分发

gpscp-f /tmp/all_hosts /etc/hosts =:/etc/hosts


验证是否分发成功

[root@mdw~]# gpssh -f /tmp/all_hosts

[root@mdw~]# gpssh -f /tmp/all_hosts

=>cat /etc/hosts|grep  sdw3

[sdw3]192.168.100.106    sdw3

[smdw]192.168.100.106    sdw3

[mdw] 192.168.100.106    sdw3

[sdw2]192.168.100.106    sdw3

[sdw1]192.168.100.106    sdw3


1.3、检查主机参数

cat/etc/sysctl.conf

cat/etc/security/limits.conf

cat/etc/security/limits.d/90-nproc.conf


不一致迁移(若有不一致,将生产节点的参数文件scp到当前待替换节点)

scp192.168.100.106:/etc/sysctl.conf /etc/sysctl.conf

scp1192.168.100.106:/etc/security/limits.conf  /etc/security/limits.conf

scp192.168.100.106:/etc/security/limits.d/90-nproc.conf/etc/security/limits.d/90-nproc.conf

ulimit-a


使参数生效

/sbin/sysctl-p


1.4、检查备机数据库软件包

如果备机中已存在greenplum数据库对应的软件包,且版本一致,则不需要操作,如没有对应的软件包,则从集群其他主机把软件包拷贝到备机的相应目录下,并赋对应权限,操作如下:

ls -lrt /usr/local

scp -r192.168.100.104:/usr/local/greenplum* /usr/local/

chown -R gpadmin:gpadmin greenplum*

rm -rf greenplum-dbgreenplum-cc-web(将未软连接的文件删除)

ln -s greenplum-db-5.23.0 greenplum-db


1.5、查看防火墙状态

Redhat 6 版本

serviceiptables status

serviceiptables stop

Redhat 7版本

systemctlstatus firewalld

systemctlstop  firewalld


1.6、备机创建对应文件夹

备机创建和源主机相同的文件夹目录

具体目录根据集群目录而定

chown-R gpadmin:gpadmin /data*  

mkdir/data{1,2}/{primary,mirror}

mkdir/data{1,2}/{primary,mirror}/{gpfs,default}


2、开始替换


2.1、禁止普通用户连接

此处有两种方式:


1、修改pg_hba.conf

vi$MASTER_DATA_DIRECTORY/pg_hba.conf

reject                  =====》禁止用户连接

gpstop-u                =====》使配置生效


2、重启数据库到限制模式

停止数据库:

gpstop-a -M fast

启动数据库:

gpstart-aR


2.2、进行数据全量恢复

gprecoverseg-F

开始数据同步,通过gpstate-e查看同步进度


数据同步完成


2.3、数据库角色切换

开始进行primary和mirror实例的角色切换

gprecoverseg-r

查看进度如下:


角色切换完成

集群状态正常


2.4、放开用户连接

此处有两种方式


1、修改pg_hba.conf

vi$MASTER_DATA_DIRECTORY/pg_hba.conf

#reject                  =====》解除禁止用户连接

gpstop-u                =====》使配置生效


2、重启数据库到限制模式

停止数据库:

gpstop-a -M fast

启动数据库:

gpstart-a


以上就是整个备机替换的操作流程,仔细观察的话,会发现环境准备是备机替换的重要部分,环境准备如果有问题的话,在替换过程中就会出现各种报错及问题,在替换过程中如果出现问题,请不要着急,把环境准备这块仔细检查一遍,然后再看问题,就会发现问题已经解决了。

问题案例集锦


3.1、集群主机的/etc/hosts没有全部修改

在修改集群的/etc/hosts文件时,由于集群没有做ssh互信,导致在修改时出现一些主机的遗漏,而遗漏的主机恰好和备机在一个数据环内,则会出现该主机对应备机上的实例无法恢复的情况。


3.2、备机主机参数不一致

这个问题在做备机替换的过程中不会出现问题,但是在替换完成过后使用中会出现问题,例如集群的用户连接数设置为unlimited,但是备机的则是有限制的,在使用过程中就会出现segment主机连接数问题,导致实例宕机或者应用连接上不去等。


3.3、防火墙没有关闭

防火墙没有关闭,这个问题会出现在数据同步过程中,集群同步出错。


3.4、备机对应文件没有创建

如果备机对应的数据库实例文件夹没有创建,则会在同步过程中报文件夹不存在,数据无法同步问题,所以在环境准备的时候,一定要把对应的文件夹创建好。


以上就是我们在生产中遇到的一些常见问题,往往因为这些看似很小的问题,却造成了很大的问题,浪费很多时间,所以细节决定成败,磨刀不误砍柴工,在做任何事情的时候,准备工作做充分,后续就会事半功倍。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130159.html

相关文章

  • 数据仓库架构的变迁

    摘要:前面我们简单阐述了分布式数据库的架构,并通过一条简单的查询语句解释了分布式的执行计划。 引言 第八届中国架构师大会(SACC2016)10月27号到29号在北京万达索菲特大饭店成功举办。大会以架构创新之路为主题,云集了国内外顶尖专家,共同探讨云计算和大数据等技术背景下,如何通过架构创新及各种IT新技术来带动企业转型增效。作为一家专注于云端数据仓库的初创公司,酷克数据受邀在SACC201...

    Raaabbit 评论0 收藏0
  • 考拉定时任务框架kSchedule

    摘要:考拉订单流推送申报单推送物流信息等供应链相关业务已接入分片任务,极大提高了业务吞吐量降低压力,提升了通关效率。支撑双十一黑五双十二等大促,高峰期统一暂停非关键定时任务,让出系统资源,提高业务系统稳定性。 此文已由作者杨凯明授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 1.背景 目前项目中使用的定时任务框架存在下面这些问题 没有统一的定时任务管理平台 目前项目...

    AlexTuan 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<