在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
 
【参考文献】--《Greenplum4.2.2管理员指南》

greenplum如何激活,同步,删除standby和恢复原始master的更多相关文章

  1. GreenPlum 大数据平台--segment 失效问题恢复

    1,问题检查 [gpadmin@greenplum01 conf]$ psql -c "select * from gp_segment_configuration where status ...

  2. mysql主从同步异常原因及恢复

    mysql主从同步异常原因及恢复 前言 mysql数据库做主从复制,不仅可以为数据库的数据做实时备份,保证数据的完整性,还能做为读写分离,提升数据库的整体性能.但是,mysql主从复制经常会因为某些原 ...

  3. atitit.提升备份文件复制速度(3) ----建立同步删除脚本

    atitit.提升备份文件复制速度(3) ----建立同步删除脚本 1. 建立同步删除脚本两个方法.. 1 2. 1从回收站info2文件... 1 3. 清理结束在后snap比较 1 4. Npp  ...

  4. ecshop后台"云提醒未激活 点击激活" 补丁删除方法

    ecshop后台"云提醒未激活 点击激活" 补丁删除方法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2015-01-15   ecshop后台提 ...

  5. SVN删除文件和恢复文件

    SVN删除文件 一.本地删除SVN删除文件中的本地删除,指的是在客户端delete了一个文件,但还没有commit,使用revert来撤销删除. 二.服务器删除1.通过本地删除后提交服务器a)Upda ...

  6. 关于Bootstrap fileinput 上传新文件,移除时触发服务器同步删除的配置

    在Bootstrap fileinput中移除预览文件时可以通过配置initialPreviewConfig: [ { url:'deletefile',key:fileid } ] 来同步删除服务器 ...

  7. SQL Server中使用msdb数据库的存储过程sp_delete_backuphistory和sp_delete_database_backuphistory来删除备份和恢复历史数据

    根据微软文档对sp_delete_backuphistory存储过程的介绍,SQL Server在每次备份和恢复数据库后,会向msdb系统数据库的备份和恢复历史表写入数据,如果SQL Server经常 ...

  8. U盘做启动盘后,恢复原始容量

    借助u盘进行系统安装时,可能会对u盘进行分区.u盘分区后,再连接至电脑,就有很大程度的可能是一部分区域不能显示.u盘原本的大小被占据,显示的大小是比之前少了的,并且这些少掉了的内存也无法再使用.只有对 ...

  9. Greenplum 激活standby 和恢复 master 原有角色

    当Greenplum segment的primary出现问题时,FTS会监测到,GP会自动激活mirror.但是对于GP的master节点,虽然有standby,但是GP并不会自动来完成master和 ...

随机推荐

  1. 最流行的PHP 代码规范

    “PHP是最好的编程语言” ;-) 那么PHPer习惯使用什么样的代码规范呢?sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果,让我们一起来看看吧. 缩进 空格(7 ...

  2. cocos2dx 3.x(捕鱼达人炮台角度换算)

    // // GameScence.hpp // NotesDamo // // Created by apple on 16/10/23. // // #ifndef GameScence_hpp # ...

  3. Entity FrameWork初始化数据库的四种策略

    程序猿就是苦逼,每天还得分出一些时间去写博文.天真的很热,今天就随便写一点啦! 1.EF初始化数据库的四中策略 EF可以根据项目中的模型自动创建数据库.下面我们就分类看看Entity Framewor ...

  4. Java基础之写文件——使用多个视图缓冲区(PrimesToFile2)

    控制台程序.本例将对应于每个素数的数据以三个连续数据项的形式写入: 1.以二进制值表示的字符串长度值(最好是整型,但本例使用double类型): 2.素数值的字符串表示”Prime=nnn“,其中数字 ...

  5. PostgreSQL Replication之第九章 与pgpool一起工作(6)

    9.6 运行pgpool和流复制 pgpool也可以和除了语句级别的复制之外的流复制一起使用.一个完美的方案是使用PostgreSQL的板载复制和仅仅使用pgpool的负载均衡与连接池. 实际上,这样 ...

  6. codeforces.com/problemset/problem/213/C

    虽然一开始就觉得从右下角左上角直接dp2次是不行的,后面还是这么写了WA了 两次最大的并不一定是最大的,这个虽然一眼就能看出,第一次可能会影响第二次让第二次太小. 这是原因. 5 4 32 1 18 ...

  7. [Linux]可用于管道操作的命令

    管道命令——| command1 | command2 | command3 注:管道命令必须能够接受来自前一个命令的数据成为standard input继续处理. cut 将一段信息的某一段切出来, ...

  8. java一般要点

    1.String是引用类型. 2.char, short, byte在进行运算的时候会自动转换成int类型数据., 3.数据A 异或同一个数两次,得到的还是A 4.java的for循环,可以在前面加一 ...

  9. MySQL 中NULL和空值的区别 (转载 http://blog.sina.com.cn/s/blog_3f2a82610102v4dn.html)

    平时我们在使用MySQL的时候,对于MySQL中的NULL值和空值区别不能很好的理解.注意到NULL值是未知的,且占用空间,不走索引,DBA建议建表的时候最好设置字段是NOT NULL 来避免这种低效 ...

  10. Unity中加入Android项目的Build步骤

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 简介: 有的项目需要在Android中加入Unity功能,例如ANDROID应用中嵌入Un ...