资讯专栏INFORMATION COLUMN

Greenplum表故障处理--Primary和mirror

IT那活儿 / 2680人阅读
Greenplum表故障处理--Primary和mirror

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

primary和mirror的主备同步机制

greenplum是基于postgreSQL进行开发的,主备是通过流复制实现,但segment节点的primary和mirror之间的数据同步是基于文件级别的同步实现的。
primary和mirror同步的内容主要有两部分:文件和数据。
之所以primary和mirror要同步文件,是因为primary和mirror之间可以自动failover,只有两者保持同步才能相互替代,如果只把数据同步过去,pg_control、pg_clog、pg_subtrans 没有同步,那么从primary切换到mirror就会出现问题。
master和slave却不用担心这些问题,Append Only 表的数据只会存在 Segment,所以wal日志足够保持master和slave同步(只要是流复制,pg_control、pg_clog、pg_subtrans 这些文件slave会自动更新,无需从master同步)。
1)数据同步
当master向primary下发执行计划后,primary开始执行,如果是dml操作,那么primary会产生XLOG及更新page。会在SlruPhysicalWritePage函数中(写数据页)产生FileRepOperationOpen、FileRepOperationWrite、FileRepOperationFlush、FileRepOperationClose等指令消息(消息中包含具体要更新的文件page及内容),通过primary sender进程向mirror发送message,然后mirror的mirror consumer等进程解析消息,执行变更。
xlog通过XLogWrite函数(写xlog)执行同样的操作,把xlog更新同步过去。
2)文件同步

primary的recovery进程会循环把primary的 pg_control、pg_clog、pg_subtrans 等文件覆盖到mirror。同时检查xlog是否一致,如果不一致以primary为主,对mirror进行覆盖。除把primary部分文件同步到mirror之外recovery进程还会将mirror上面的临时文件删掉。

创建一个ao表并插入数据

通过pg_class系统表查找该表所属的数据块。
Primary所对应的数据块的位置。
1. 到对应mirror下模拟mirror损坏的情况
修改mirror下16872.1这个数据块,可以看到md5sum校验值已经不同。
这时查看表格发现可以正常查询。
2. 模拟primary损坏的情况
同理修改primary下16872.1这个数据块,会发现查询报错。
可以通过报错信息提示查看数据块所在的实例:
gpstate -c | grep seg0查找实例对应的primary主机和mirror主机。
Ms5sum校验文件:
md5sum /home/gpadmin/gpdata/gpdatam1/gpseg0/base/16412/16872.1
md5sum /home/gpadmin/gpdata/gpdatap1/gpseg0/base/16412/16872.1
Mirror传输覆盖到primary。
scp /home/gpadmin/gpdata/gpdatam1/gpseg0/base/16412/16872.1 
192.168.**.***:/home/gpadmin/gpdata/gpdatap1/gpseg0/base/16412/16872.1
之后该表可以正常查询。


本文作者:陆 游(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

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

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

相关文章

  • 数据仓库架构的变迁

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

    Raaabbit 评论0 收藏0
  • centos7.3下 greenplum-db 安装、配置文档

    摘要:下安装配置文档一系统要求系统版本要求根据官方文档支持以下几种系统文件系统要求数据存储目录为文件系统二下安装服务器列表主节点数据节点数据节点主节点切换备用节点修改系统配置项关闭关闭防火墙修改内核配置参数并执行使之生 centos7.3下 greenplum-db 安装、配置文档 一.系统要求 1.系统版本要求:根据官方文档: greenplumd-b支持以下几种linux系统: ...

    neuSnail 评论0 收藏0
  • 探索Greenplum的实践,了解新一代大数据处理利器

    摘要:上有主节点和从节点两部分,两者主要的功能是生成查询计划并派发,以及协调并行计算,同时在上保存着,这个全局目录存着一组数据库系统本身所具有的元数据的系统表。 前言:近年来,互联网的快速发展积累了海量大数据,而在这些大数据的处理上,不同技术栈所具备的性能也有所不同,如何快速有效地处理这些庞大的数据仓,成为很多运营者为之苦恼的问题!随着Greenplum的异军突起,以往大数据仓库所面临的很多...

    supernavy 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

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