PostgreSQL高可用集群repmgr的问题怎么解决

这篇文章将为大家详细讲解有关PostgreSQL高可用集群 repmgr 的问题怎么解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联是一家集网站建设,城中企业网站建设,城中品牌网站建设,网站定制,城中网站建设报价,网络营销,网络优化,城中网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

PostgreSQL 的高可用的方案,基本上不是原生的,大多是依靠第三方的公司来进行开发的,挂名的有那么几种 Patroni, PGPOOL-II, Repmgr  , 等等几种。PGPOOL-II 在安装适用中遇到很多问题,按理说一家日本公司做的东西应该靠谱,可惜问题太多,所以不能被作为 HA 的方式使用。

一个HA 的方式应该是简单的,高效的,并且抗X 的。 (我没有提分布式,只说HA)

  Repmgr 作为几大PG支持的公司 2ndQuadrant,产品也是比较靠谱的。目前repmgr 4.4的版本已经支持了 PG11 。文字中的PG 版本都是基于目前PG 11的版本。

安装的过程其实没有什么说的就是编译安装,但是我在安装的时候遇到了一些事情,如果有遇到的同行可以快速解决问题。

1 你POSTGRESQL 编译安装后,是否设置了系统变量,如果不设置系统变量就会遇到不少问题

2 不设置系统变量,你的BIN目录下的 PSQL PG_CONFIG 等文件是你编译的文件。

如果你在编译repmgr 时遇到版本不对等问题,多半你的从这里查起。

以下文字均建立在

1 您已经会独立安装POSTGRESQL 并无故障的基础上

2 您理解并可以进行流复制的设置和部分问题的故障排查

下面会有两台机器,

IP 分别为 192.168.198.110

              192.168.198.111

在此基础上,PG 的部分配置在主库上是必须进行配置的

max_wal_senders = 10

max_replication_slots = 10  

wal_level = replica 

hot_standby = on

archive_mode = on 

archive_command = 'test ! -f /pgdata/archive/%f && cp %p /pgdata/archive/%f'

如果您不知道上面的都是什么,这里大致的介绍一下,PG的复制其中有流式复制和逻辑复制两种,我们采用的是流式复制。

以上的配置中前四个都是与流式复制有关的配置信息,后面两个是LOG 的 archive的设置。

后面需要设置的就是 repmgr 的操作数据库的用户和相关repmgr 存储元数据的数据库。

创建repmgr用户 ,以及创建repmgr 数据库

create user repmgr superuser login;

 alter user  repmgr with password 'repmgr';

create database repmgr;

alter database repmgr owner to repmgr;

ALTER USER repmgr SET search_path TO repmgr, "$user", public;

在设置完这些,还需要进行 pg_hba.conf的设置

local   repmgr     repmgr                                        trust

host    repmgr     repmgr             127.0.0.1/32        trust

host    repmgr     repmgr             ::1/128                 trust

host    repmgr     repmgr             192.168.198.0/24 trust

对下载的rpemgr 进行编译,需要提前设置好相关的数据库的变量,如不清楚可以翻阅之前的关于POSTGRESQL 安装的一篇文字,大约在2个月前。

repmgr -f /etc/repmgr.conf primary register

repmgr.conf中必须包含的内容

node_id=1                        

node_name='192.168.198.110'                conninfo='host=192.168.198.110 user=repmgr dbname=repmgr connect_timeout=2'

data_directory='/pgdata/data'

PostgreSQL高可用集群 repmgr 的问题怎么解决

repmgr -f /etc/repmgr.conf cluster show

在注册完主节点后,可以通过上面的命令来进行验证是否成功注册

PostgreSQL高可用集群 repmgr 的问题怎么解决

在standy 从库也安装 repmgr 并且设置 repmgr.conf 到 /etc/目录下

相关的内容

PostgreSQL高可用集群 repmgr 的问题怎么解决

我们需要去验证我们马上要进行的clone 是否能够成功

PostgreSQL高可用集群 repmgr 的问题怎么解决

如果之间有问题,会在打印的信息报错,无法有以下几种

1你的主从库网络连接问题

2 账号的问题,无法通过你给的账号进行联通

3 你的从库的PG 启动并且在数据目录里面有数据

下面就直接进行命令的操作,可以蛋刀数据整个的一体化操作都完成了,数据的拷贝, standy 的注册等。

PostgreSQL高可用集群 repmgr 的问题怎么解决

启动从库

我们在主从库之间验证相关的复制是否已经工作

主库

PostgreSQL高可用集群 repmgr 的问题怎么解决

从库

PostgreSQL高可用集群 repmgr 的问题怎么解决

下面将注册信息存储在复制集中

PostgreSQL高可用集群 repmgr 的问题怎么解决

并且主从中通过命令都可以查到相关的注册信息

在做完这一切后,我们可以演练一下,如何手动的来切换,主从库

PostgreSQL高可用集群 repmgr 的问题怎么解决

再次运行命令来验证是否切换成功

PostgreSQL高可用集群 repmgr 的问题怎么解决

可以看到主从切换成功了。

我们再次进入到主机进行验证,你可以通过主机名来看到切换是成功了

PostgreSQL高可用集群 repmgr 的问题怎么解决

PostgreSQL高可用集群 repmgr 的问题怎么解决

当然你还可以在切换回来和刚才的操作一样

PostgreSQL高可用集群 repmgr 的问题怎么解决

通过这一轮简单的操作,repmgr 的主机主从切换是如此简单,当然他的功能还不止于此,自动在故障的时候,进行切换他也很在行,我可以认为他是POSTGRESQL 界中的 MHA 。 

在总结一下repmgr 的优点

1 安装简单

2 功能强大

3 有较清晰的文档

4 背后有PG 业界知名公司做后盾

5 支持到目前最新版本的 PG 11

关于PostgreSQL高可用集群 repmgr 的问题怎么解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站名称:PostgreSQL高可用集群repmgr的问题怎么解决
浏览路径:http://ybzwz.com/article/ghccpi.html