`

GREENPLUM介绍之数据库管理(七)- 配置数据库高可用性之master镜像(转)

 
阅读更多

GREENPLUM介绍之数据库管理(七)- 配置数据库高可用性之master镜像

 

    master镜像是通过把primary master对应的standby master放置到不同的物理主机实现的。正常情况下只有primary master接受用户连接请求,standby master通过gpsyncagent进程(运行在standby master上)利用事务日志保持与primary master的同步。由于master上不存放任何用户数据,存放在其中的表不会频繁更新,因此同步是实时的。standby master所在主机除了复制进程外,没有正式master服务运行。当primary出现故障,standby master日志复制进程停止,DBA可以激活standby master,使它切换成primary master,保证原primary master故障时最后提交的事务可以正常提交,并且使用相同的端口接入用户新的连接请求。

   

    启用standby master的流程非常简单,既可以在初始化时启用standby master(gpinitsystem),也可以对存在的系统添加standby master(gpinitstandby)。无论哪种方式,首先要准备standby的主机,包括操作系统,用户等效性的建立,以及GP软件的安装。

    如果初始化时,添加standby master,仅需要在gpinitsystem命令上使用-s参数指定standby用的主机名即可。也可以使用gpinitstandby工具去添加standby master。DBA需要从处于工作状态的primary master节点上调用这个工具,使用-s参数,后面跟上standby的主机名。比如

    gpinitstandby -s mdw2

    如果遇到primary standby出现故障,由于到目前为止,EMC还没有提供自己的cluster,因此,如果不使用第三方的cluster的情况下,DBA需要手工激活standby master进行master failover,这个过程通过调用gpactivatestandby命令实现

    $ gpactivatestandby -d /gpdata

/gpdata应该是standby master的数据目录。一旦完成激活,standby master的身份转化成primary master。如果在激活的时候,想配置一个新的standby master可以通过-c选项实现。

    $ gpactivatestandby -d /gpdata -c new_standby_hostname

在该工具调用完成之后,可以用gpstate检查状态$ gpstate -f,新的primary segment应该是active的状态,如果有新加standby master,standby master状态时passive。

    Master instance = Active

    Master instance standby = Passive

在完成,新primary master激活之后,应该在其上运行analyze命令。比如

$ psql dbname -c 'ANALYZE;'

    如果没有在激活时,添加新的standby master,事后也可以通过gpinitstandby的调用添加新的standby master.        

    在系统工作的过程中,standby master节点也可能出现数据同步故障,比如网络问题,导致gpsyncagent出现同步故障,用户可能无法及时感知。所以DBA应该定期检查gp_master_mirroring中的信息,如果发现standby master是不同步的,应该进一步检查detail_state和error_message列中的信息,判断问题产生的原因,并进行解决。完成问题的纠正后,通过调用gpinitstandby可以重新同步standby master。

    $ gpinitstandby -s standby_master_hostname -n 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics