love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

MogDB 如何手工增加从库

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: MogDB 如何手工增加从库

首先这里不是我们官方的标准建议操作,对于MogDB集群而言,如果读压力过大,需要增加Standby从库进行读分流;那么建议使用gs_expansion来进行操作。我这里主要是为了自己练习、玩耍,这样更加熟悉MogDB的一些机制,因此不走寻常路,大家请勿模仿~~~

目前的架构如下:

这里为需要增加一台作为上述集群的Standby。

1、修改各个节点的/etc/hosts

2、修改新加节点机器的相关参数配置

/etc/selinux/config

/etc/sysctl.conf

systemctl disable firewalld.service

systemctl stop firewalld.service

3、创建用户和相关软件目录

–略

4、将mogdb2节点的MogDB软件拷贝到新加节点

–略

5、主库节点修改参数replconn2

6、修改postgresql.conf/pg_hba.con

注意所有节点的pg_hba.conf需要修改

7、新加节点进行数据库初始化同步

 

8、同步完成之后检查集群的状态

在检查过程中发现遇到了如下的一系列问题:

上述问题实际上是属于防火墙问题. 另外一个问题是集群虽然看上去能正常同步,但是无法显示节点信息;这里我通过strace跟踪gs_om -t status –detail 发现会读一个config配置文件。最后发现可以通过如下命令来重建这个集群配置文件。

最开始尝试手工编辑这个二进制文件(以前修复Oracle数据库的时候经常这么干),这里并没有成功。还是老实通过命令来生成吧。

在重建配置文件之前,需要在主库安装软件时的xml文件中增加新加节点的信息:

接下来重建并分发到所有节点:

此时查看集群状态发现能看到新加节点的信息了,但是状态不对:

同时如果此时去新加节点查询集群状态发现也无法识别之前节点的信息:

通过 在primary主库进行停集群发现,同样无法操作新家的standby从库:

单独将上面的脚本拿到standby执行,发现能够正常执行。这是什么问题呢?联想到在standby上也无法正常操作其他环境,因此为怀疑大概率是omm用户的互信问题,因为我压根没有配置新加standby主机环境omm用户和之前集群节点的互信关系。

实际上通过gs_om来进行集群管理和操作,那么是必须依赖互信的。手工配置互信也ok,这里通过preinstall脚本来完成更简单:

上面操作都完毕之后,最后再重启集群发现一切正常:

可以进一步查看standby的同步情况:

自此整个集群新加standby的纯手工操作算是告一段落了。单纯的自娱自乐!如果是MogDB生产环境,不建议这样操作!

 

Leave a Reply

You must be logged in to post a comment.