在Greenplum数据库中启用和删除Master和segment镜像mirror

0    128    2

Tags:

👉 本文共约8709个字,系统预计阅读时间或需33分钟。

简介

可直接看最后的总结内容。。。。。

可以在建立Greenplum数据库系统时使用gpinitsystem配置系统使用镜像,或者之后用gpaddmirrors以及gpinitstandby启用镜像。

这个主题假定现有系统初始化时没有镜像,现在要向其中加入镜像。

启用Segment镜像

镜像Segment允许数据库查询在主Segment不可用时故障转移到备用Segment。为了配置镜像,Greenplum数据库 系统必须具有足够的节点以保证镜像Segment和对应的主Segment不在同一台主机上。默认情况下,镜像会被配置在 主Segment所在的主机阵列上。也可以为镜像Segment选择一组完全不同的主机,这样它们就不会分享任何主 Segment的机器。

Important: 在线数据复制处理期间,Greenplum数据库应该处于一种静止状态,不应运行负载和 其他查询。

要增加Segment镜像到一个现有系统(和主Segment相同的主机阵列)

  1. 在所有的Segment主机上为镜像数据分配数据存储区域。数据存储区域必须与主Segment 的文件系统位置不同。

  2. 使用gpssh-exkeys确保Segment主机能通过SSH和SCP免密码连接到彼此。

  3. 运行gpaddmirrors工具在Greenplum数据库系统中启用镜像。 例如,在主Segment端口号基础上加10000来计算得到镜像Segment的端口号:

    其中-p指定要加在主 Segment端口号上的数字。使用默认的组镜像配置来增加镜像。

要增加Segment镜像到一个现有系统(和主Segment不同的主机阵列)

  1. 确保在所有主机上都安装有Greenplum数据库软件。

  2. 在所有的Segment主机上为镜像数据分配数据存储区域。

  3. 使用gpssh-exkeys确保Segment主机能通过SSH和SCP免密码连接到彼此。

  4. 创建一个配置文件,其中列出要在其上创建镜像的主机名称、端口号和数据目录。要创建 一个示例配置文件作为起点,可运行:

    镜像配置文件的格式为:

    其中row_id是文件中的行号, contentID是segment实例的内容ID, address是segment主机的主机名或IP地址,port是用于通信的端口号, data_dir是segment实例的数据目录。

    例如这是一个配置文件,其中有两个Segment主机,每个主机上有两个Segment:

  5. 运行gpaddmirrors工具在Greenplum数据库系统中启用镜像:

    其中-i指定所创建的镜像配置文件。

启用Master镜像

可以用gpinitsystem来配置一个带有后备Master的新Greenplum数据库系统, 或者以后用gpinitstandby来启用后备Master。这个主题假定现有系统初始化时没有 后备Master,现在要向其中加入一个后备Master。

有关工具gpinitsystemgpinitstandby的详细信息,请见Greenplum数据库工具指南.

要向一个现有系统增加一个standby master

  1. 确保standby Master主机已经被安装且配置好Greenplum数据库: gpadmin系统用户已创建、Greenplum数据库二进制文件已安装、 环境变量已设置、SSH密钥已交换并且数据目录和表空间已创建。

  2. 在当前活动的primary master主机上运行gpinitstandby 工具向Greenplum数据库系统增加一个standby master主机。例如:

    这里-s指定后备Master主机的名称。

要把操作切换到standby master上,请见恢复故障的Master

检查Master镜像进程状态(可选)

可以通过运行gpstate工具并带有-f选项来显示standby master 主机的详细信息。

standby master的状态应该是passive,WAL sender状态应该是streaming。

有关gpstate工具的详细信息,请见Greenplum数据库工具指南。

删除segment镜像mirror示例(不用这个,用总结中的,,慎用慎用。。。。)

  1. ⾸先检测系统的状态信息
    如果集群的状态不正常,则需要进⾏系统的问题定位和处理。否则可以执⾏以下步骤,来进⾏集群删除镜像操作:的数据⽬录的 pg_log ⽬录下的⽇志都可以删除。删除操作需要慎重!!!

  2. 备份 Master 主机的数据⽬录。

  3. 启动集群,进⾏数据库⼀致性检查 gpcheckcat

  4. 运⾏删除镜像的脚本,将删除脚本放⼊ remove_mirro.sh 中,并使⽤以下语句调整脚本的属性 chmod 777 remove_mirror.sh
    使⽤ gpadmin ⽤户运⾏,hostfile 作为参数传⼊。hostfile 中列出集群中所有主机的主机名称。示例如下:

  5. 启动数据库,进⾏数据库⼀致性检查

  6. 删除镜像计算节点的数据⽬录。

    ⾄此删除集群镜像就结束了。

删除脚本如下(执行要慎重呀,我上次把库搞坏了。。。。)

其实过程就是:

使用命令select gp_remove_segment_mirror(1::int2);或删除视图gp_segment_configuration执行完成后,再使用gpstate会报错:

gpstate:lhrgp40:gpadmin-[CRITICAL]:-gpstate failed. (Reason='Invalid GpArray: Master: lhrgp40:/opt/greenplum/data/master/gpseg-1:content=-1:dbid=1:role=p:preferred_role=p:mode=n:status=u
Standby: Not Configured
Segment Pairs: (Primary: lhrgp41:/opt/greenplum/data/primary/gpseg0:content=0:dbid=2:role=p:preferred_role=p:mode=s:status=u, Mirror: None)
(Primary: lhrgp42:/opt/greenplum/data/primary/gpseg1:content=1:dbid=3:role=p:preferred_role=p:mode=s:status=u, Mirror: None)') exiting...

目前没找到对应的办法,所以非必要不删除mirror。

gpaddmirrors

将镜像Segment添加到最初没有配置镜像的Greenplum数据库系统。

概要

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
在Greenplum数据库中启用和删除Master和segment镜像mirror后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部