您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)PostgreSQL高可用集群 repmgr 的問題怎么解決,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。
PostgreSQL 的高可用的方案,基本上不是原生的,大多是依靠第三方的公司來進(jìn)行開發(fā)的,掛名的有那么幾種 Patroni, PGPOOL-II, Repmgr , 等等幾種。PGPOOL-II 在安裝適用中遇到很多問題,按理說一家日本公司做的東西應(yīng)該靠譜,可惜問題太多,所以不能被作為 HA 的方式使用。
一個(gè)HA 的方式應(yīng)該是簡單的,高效的,并且抗X 的。 (我沒有提分布式,只說HA)
Repmgr 作為幾大PG支持的公司 2ndQuadrant,產(chǎn)品也是比較靠譜的。目前repmgr 4.4的版本已經(jīng)支持了 PG11 。文字中的PG 版本都是基于目前PG 11的版本。
安裝的過程其實(shí)沒有什么說的就是編譯安裝,但是我在安裝的時(shí)候遇到了一些事情,如果有遇到的同行可以快速解決問題。
1 你POSTGRESQL 編譯安裝后,是否設(shè)置了系統(tǒng)變量,如果不設(shè)置系統(tǒng)變量就會(huì)遇到不少問題
2 不設(shè)置系統(tǒng)變量,你的BIN目錄下的 PSQL PG_CONFIG 等文件是你編譯的文件。
如果你在編譯repmgr 時(shí)遇到版本不對等問題,多半你的從這里查起。
以下文字均建立在
1 您已經(jīng)會(huì)獨(dú)立安裝POSTGRESQL 并無故障的基礎(chǔ)上
2 您理解并可以進(jìn)行流復(fù)制的設(shè)置和部分問題的故障排查
下面會(huì)有兩臺(tái)機(jī)器,
IP 分別為 192.168.198.110
192.168.198.111
在此基礎(chǔ)上,PG 的部分配置在主庫上是必須進(jìn)行配置的
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的復(fù)制其中有流式復(fù)制和邏輯復(fù)制兩種,我們采用的是流式復(fù)制。
以上的配置中前四個(gè)都是與流式復(fù)制有關(guān)的配置信息,后面兩個(gè)是LOG 的 archive的設(shè)置。
后面需要設(shè)置的就是 repmgr 的操作數(shù)據(jù)庫的用戶和相關(guān)repmgr 存儲(chǔ)元數(shù)據(jù)的數(shù)據(jù)庫。
創(chuàng)建repmgr用戶 ,以及創(chuàng)建repmgr 數(shù)據(jù)庫
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;
在設(shè)置完這些,還需要進(jìn)行 pg_hba.conf的設(shè)置
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 進(jìn)行編譯,需要提前設(shè)置好相關(guān)的數(shù)據(jù)庫的變量,如不清楚可以翻閱之前的關(guān)于POSTGRESQL 安裝的一篇文字,大約在2個(gè)月前。
repmgr -f /etc/repmgr.conf primary register
repmgr.conf中必須包含的內(nèi)容
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
在注冊完主節(jié)點(diǎn)后,可以通過上面的命令來進(jìn)行驗(yàn)證是否成功注冊
在standy 從庫也安裝 repmgr 并且設(shè)置 repmgr.conf 到 /etc/目錄下
相關(guān)的內(nèi)容
我們需要去驗(yàn)證我們馬上要進(jìn)行的clone 是否能夠成功
如果之間有問題,會(huì)在打印的信息報(bào)錯(cuò),無法有以下幾種
1你的主從庫網(wǎng)絡(luò)連接問題
2 賬號(hào)的問題,無法通過你給的賬號(hào)進(jìn)行聯(lián)通
3 你的從庫的PG 啟動(dòng)并且在數(shù)據(jù)目錄里面有數(shù)據(jù)
下面就直接進(jìn)行命令的操作,可以蛋刀數(shù)據(jù)整個(gè)的一體化操作都完成了,數(shù)據(jù)的拷貝, standy 的注冊等。
啟動(dòng)從庫
我們在主從庫之間驗(yàn)證相關(guān)的復(fù)制是否已經(jīng)工作
主庫
從庫
下面將注冊信息存儲(chǔ)在復(fù)制集中
并且主從中通過命令都可以查到相關(guān)的注冊信息
在做完這一切后,我們可以演練一下,如何手動(dòng)的來切換,主從庫
再次運(yùn)行命令來驗(yàn)證是否切換成功
可以看到主從切換成功了。
我們再次進(jìn)入到主機(jī)進(jìn)行驗(yàn)證,你可以通過主機(jī)名來看到切換是成功了
當(dāng)然你還可以在切換回來和剛才的操作一樣
通過這一輪簡單的操作,repmgr 的主機(jī)主從切換是如此簡單,當(dāng)然他的功能還不止于此,自動(dòng)在故障的時(shí)候,進(jìn)行切換他也很在行,我可以認(rèn)為他是POSTGRESQL 界中的 MHA 。
在總結(jié)一下repmgr 的優(yōu)點(diǎn)
1 安裝簡單
2 功能強(qiáng)大
3 有較清晰的文檔
4 背后有PG 業(yè)界知名公司做后盾
5 支持到目前最新版本的 PG 11
關(guān)于PostgreSQL高可用集群 repmgr 的問題怎么解決就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。