Greenplum如何开启、同步、删除Standby恢复原始Master

       在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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
greenplum是一款高性能、可扩展的开源分布式数据库管理系统,用于处理大数据量的存储和分析。在数据处理场景中,数据的同步是一个关键的问题。 Greenplum中数据的同步有多种方式,我们可以根据实际需求选择合适的方法。一种常见的数据同步方式是使用ETL工具,如Informatica、Talend等,通过配置数据源和目标,将数据从源系统提取、转换和加载到Greenplum中。这种方式可以根据需求定时或实时同步数据。 除了ETL工具,还可以使用数据库复制技术来实现数据的同步Greenplum支持异步复制和同步复制两种方式。异步复制通过将数据变更记录发送给备份节点,减少了主节点的负载,但有一定的延迟。同步复制则要求主节点等待备份节点确认数据变更,确保数据的一致性和可靠性,但会增加主节点的负载。 此外,还可以使用消息队列来实现数据的异步同步。消息队列作为中介,将源系统中的数据发送到队列中,再由消费者将数据加载到Greenplum中。这种方式可以实现高可用性和容错性。 另外,也可以通过编写自定义的脚本或程序来实现数据的同步。例如,可以使用Python或Java编写脚本,通过API连接到Greenplum和源系统,实现数据的抽取和加载。 总之,根据具体需求和场景,可以选择合适的数据同步方式。无论是使用ETL工具、数据库复制、消息队列还是自定义脚本,都能够满足数据同步的需求,确保数据的准确性和及时性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值