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'
repmgr -f /etc/repmgr.conf cluster show
在注册完主节点后,可以通过上面的命令来进行验证是否成功注册
在standy 从库也安装 repmgr 并且设置 repmgr.conf 到 /etc/目录下
相关的内容
我们需要去验证我们马上要进行的clone 是否能够成功
如果之间有问题,会在打印的信息报错,无法有以下几种
1你的主从库网络连接问题
2 账号的问题,无法通过你给的账号进行联通
3 你的从库的PG 启动并且在数据目录里面有数据
下面就直接进行命令的操作,可以蛋刀数据整个的一体化操作都完成了,数据的拷贝, standy 的注册等。
启动从库
我们在主从库之间验证相关的复制是否已经工作
主库
从库
下面将注册信息存储在复制集中
并且主从中通过命令都可以查到相关的注册信息
在做完这一切后,我们可以演练一下,如何手动的来切换,主从库
再次运行命令来验证是否切换成功
可以看到主从切换成功了。
我们再次进入到主机进行验证,你可以通过主机名来看到切换是成功了
当然你还可以在切换回来和刚才的操作一样
通过这一轮简单的操作,repmgr 的主机主从切换是如此简单,当然他的功能还不止于此,自动在故障的时候,进行切换他也很在行,我可以认为他是POSTGRESQL 界中的 MHA 。
在总结一下repmgr 的优点
1 安装简单
2 功能强大
3 有较清晰的文档
4 背后有PG 业界知名公司做后盾
5 支持到目前最新版本的 PG 11
关于PostgreSQL高可用集群 repmgr 的问题怎么解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
本文标题:PostgreSQL高可用集群repmgr的问题怎么解决
文章地址:http://myzitong.com/article/ghccpi.html