博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Greenplum如何激活、同步、删除Standby恢复原始Master
阅读量:7040 次
发布时间:2019-06-28

本文共 2040 字,大约阅读时间需要 6 分钟。

  hot3.png

       在Master失效时,同步程序会停止,Standby可以被在本机被激活,激活Standby时,同步日志被用来恢复Master最后一次事务成功提交时的状态。在激活Standby时还可以指定一个新的Standby。

1. 激活Standby

现有环境原始primary master:mdw ,standby master:sdw2

postgres=# select string_agg(role||'-'||hostname,'|') from gp_segment_configuration where content='-1';  string_agg  -------------- p-mdw|m-sdw2

如何激活standby;操作如下:

1). 首先,系统必须配置有Standby主机。参看 gpinitstandby 命令。

2). 在sdw2主机上运行gpactivatestandby命令。-d参数指定要被激活的Standby的数据路径:最好配置好环境变量MASTER_DATA_DIRECTORY,PGPORT。

$ gpactivatestandby -d ${MASTER_DATA_DIRECTORY}

注意,一旦激活了Standby,其将成为GPDB集群的Master。如果想在此时配置另外一个主机作为新的Standby,在运行gpactivatestandby时可以使用-c参数。例如:

$ gpactivatestandby -d ${MASTER_DATA_DIRECTORY} -c new_standby_hostname

3). 在激活之后,运行gpstate命令检查状态:

$ gpstate -f

新激活的Master应处于活动(Active)状态,而且如果同时还配置了一个新的Standby主机,应该为被动(Passive)状态(如果没有配置,则为未配置(Not Configured)状态)。接第5步操作

4). 在切换之后,在sdw2主机上运行ANALYZE。例如:

$ psql dbname -c 'ANALYZE;'

5). 作为可选项,如果在激活Standby时没有指定新的Standby,可以在之后使用gpinitstandby命令配置一个新的Standby。在当前活动的Master主机上运行这个命令。例如:

$ gpinitstandby -s new_standby_master_hostname

2. 恢复Master的原有角色

在激活Standby之后,假如Standby的主机与原有的Master主机功能和可靠性等价,可以继续将其作为Primary Master运行除非在激活Standby的时候已经指定了新的Standby,最好初始化一个新的Standby以确保在有Master Mirror的情况下继续运行。在当前的Master上运行gpinitstandby命令配置一个新的Standby。

作为可选项,也许更愿意将Master与Standby恢复到最原始的主机上。这个过程实质上是将Master与Standby交换角色,这仅应该在必须使用最原始主机运行Master的情况再操作。

恢复Master和Standby到原始主机

1). 确保原始主机处于可靠的运行状态。那些导致失败的因素已经被彻底解决。

2). 在当前sdw2主机上执行如下操作,将Standby初始化到原始主机。例如:

$ gpinitstandby -s mdw

3). 在当前的sdw2主机上停止Master进程。例如:

$ gpstop -m

4). 在mdw运行gpactivatestandby命令。例如,-d参数指定要被激活的Standby的数据路径:

$ gpactivatestandby -d $MASTER_DATA_DIRECTORY

5). 在激活之后,运行gpstate命令检查状态:

$ gpstate -f

6). 原始Master状态应为活动(Active),而Standby状态应为未配置(Not Configured)。一旦原始的Master再次作为GPDB的Master在运行,即可在mdw主机上初始化一个Standby。例如:

$ gpinitstandby -s sdw2

3. 同步Standby

要同步Standby并更新到最新的同步,运行下面的gpinitstandby命令(使用-n参数):

$ gpinitstandby -s standby_master_hostname -n

4. 删除standby

如何要新建standby,但是原来已存在standby;需要先删除它(使用-r参数)

$ gpinitstandby -s standby_master_hostname -r

转载于:https://my.oschina.net/javacy/blog/908929

你可能感兴趣的文章
数据库排序规则的问题
查看>>
虚拟局域网VLAN
查看>>
我的友情链接
查看>>
Win7系统开机神速
查看>>
jenkins中Check-out Strategy的各选项测试
查看>>
基于lifekeeper+windows 2000 + sqlserver2000 + 镜像磁盘陈列的双机热备
查看>>
产生随机数,测试快排
查看>>
spring cloud 配置zuul实用
查看>>
玩转Android monkey之多参数实战
查看>>
WebApi与MVC Route 问题整理
查看>>
Exported activity does not require permission
查看>>
zencart批量设置热卖商品 best seller、点击最高最受欢迎产品 most popular
查看>>
怎么把某服务加入到防火墙服务中,直接让防火墙通过其请求
查看>>
常用模块2
查看>>
0.Win8.1,Win10,Windows Server 2012 安装 Net Framework 3.5
查看>>
Silverlight C# 游戏开发:高深莫测却浅显易懂的游戏开发
查看>>
ARC078 D.Fennec VS. Snuke(树上博弈)
查看>>
.Solr构建索引-查询索引
查看>>
centos服务器删除/usr目录怎么办
查看>>
在linux下使用curl访问 多参数url GET参数问题
查看>>