1. 程式人生 > >實踐部署 repmgr+pg9.6構建高可用性叢集

實踐部署 repmgr+pg9.6構建高可用性叢集

環境:vlnx107001.firstshare.cn      primaryvlnx107002.firstshare.cn      slavecentos7postresql9.6repmgr4.0.5開啟防火牆firewall-cmd --zone=public --add-port=5432/tcp --permanent    重新載入firewall-cmd --reload檢視firewall-cmd --zone=public --query-port=5432/tcp、pg9.6 安裝 1、安裝儲存庫rpm包2、安裝客戶端軟體包yum install postgresql963、安裝伺服器軟體包yum install postgresql96-server

4、初始化資料庫啟用自動啟動/usr/pgsql-9.6/bin/postgresql96-setup initdbsystemctl enable postgresql-9.6
systemctl start postgresql-9.6安裝完畢後 預設資料目錄為 :/var/lib/pgsql/9.6/data/bin二進位制檔案目錄:/usr/pgsql-9.6/bin
或者直接RPM下載如果您不能或不想使用基於yum的安裝方法,則yum儲存庫中的所有RPM都可用於
直接下載和手動安裝。
[[email protected] zhaowzh]# rpm -i postgresql96-libs-9.6.8-1PGDG.rhel7.x86_64.rpm[[email protected] zhaowzh]# rpm -i postgresql96-9.6.8-1PGDG.rhel7.x86_64.rpm[[email protected] zhaowzh]# rpm -i postgresql96-contrib-9.6.8-1PGDG.rhel7.x86_64.rpm[[email protected] zhaowzh]# rpm -i postgresql96-server-9.6.8-1PGDG.rhel7.x86_64.rpm
二、安裝repmgr[[email protected] zhaowzh]# rpm -i repmgr96-4.0.5-1.rhel7.x86_64.rpm[[email protected] zhaowzh]# rpm -i repmgr96-debuginfo-4.0.5-1.rhel7.x86_64.rpm 三、構建 ssh 免密互通(以 vlnx107001上操作為例)[[email protected] ~]$ ssh-keygen -t rsa不要指定密碼,即 空密碼即可

將金鑰傳遞到 slave伺服器上並驗證[[email protected] ~]$ ssh-copy-id -i .ssh/id_rsa.pub 
[email protected]

四、編輯 pg_hba.conf 並重新載入配置local   repmgr          repmgr                                  trusthost    repmgr          repmgr          127.0.0.1/32            trusthost    repmgr          repmgr          172.31.107.2/32         trusthost    repmgr          repmgr          172.31.107.1/32         trusthost    postgres        repmgr          172.31.107.2/32         trustlocal   replication     repmgr                                  trusthost    replication     repmgr          127.0.0.1/32            trusthost    replication     repmgr          172.31.107.2/32         trusthost    replication     repmgr          172.31.107.1/32         trust
[[email protected] data]$  pg_ctl -D $PGDATA reload五、建立 repmgr賬號用來管理 叢集維護等操作為repmgr元資料建立專用的PostgreSQL超級使用者帳戶和資料庫[[email protected] ~]$ createuser --login --superuser repmgr[[email protected] ~]$ createdb repmgr -O repmgr驗證是否互通[[email protected] ~]$ psql -h vlnx107001.firstshare.cn -U repmgr -d postgres -c "select version()"[[email protected] postgresql]$ psql -h  vlnx107001.firstshare.cn -U repmgr -d repmgr -c "select version()"
六、編輯 repmgr.conf 配置檔案[[email protected] ~]# vim /etc/repmgr/9.6/repmgr.conf#-----------------------------------------------------------------------------#zhaowenzhong#----------------------------------------------------------------------------log_file='/var/log/repmgr/repmgr.log'pg_bindir=/usr/pgsql-9.6/binpromote_command='/usr/pgsql-9.6/bin/repmgr standby promote -f /etc/repmgr/9.6/repmgr.conf'follow_command='/usr/pgsql-9.6/bin/repmgr standby follow -f /etc/repmgr/9.6/repmgr.conf'cluster=vpgs107001node_id=107001node_name=vlnx107001conninfo='host=172.31.107.1 dbname=repmgr user=repmgr'data_directory='/var/lib/pgsql/9.6/data/'service_start_command = 'sudo systemctl start postgresql-9.6'service_stop_command = 'sudo systemctl stop postgresql-9.6'service_restart_command = 'sudo systemctl restart postgresql-9.6'service_reload_command = 'sudo systemctl reload postgresql-9.6'ssh_options=-o "StrictHostKeyChecking no"
七、註冊主服務要啟用repmgr以支援複製群集,主節點必須註冊repmgr。這將安裝repmgr 擴充套件和元資料物件,併為主伺服器新增元資料記錄:[[email protected] ~]$ repmgr -f /etc/repmgr/9.6/repmgr.conf primary register

驗證叢集的狀態:[[email protected] ~]$ repmgr -f /etc/repmgr/9.6/repmgr.conf cluster show

repmgr元資料表中


複製群集中的每個伺服器都有自己的記錄。如果repmgrd 正在使用,則節點的狀態或角色更改時會更新欄位upstream_node_id,active和 type。啟動監控[[email protected] ~]$ repmgrd -f /etc/repmgr/9.6l/repmgr.conf --verbose --monitoring-history > /var/log/repmgr/repmgr.log 2>&1 &八、克隆備用伺服器vlnx107002 上安裝 repmgr 省略 (同上)配置 repmgr.conf#----------------------------------------------------------------------------#zhaowenzhong#----------------------------------------------------------------------------log_file='/var/log/repmgr/repmgr.log'pg_bindir=/usr/pgsql-9.6/binpromote_command='/usr/pgsql-9.6/bin/repmgr standby promote -f /etc/repmgr/9.6/repmgr.conf'follow_command='/usr/pgsql-9.6/bin/repmgr standby follow -f /etc/repmgr/9.6/repmgr.conf'cluster=vpgs107001node_id=107002node_name=vlnx107002conninfo='host=172.31.107.2 dbname=repmgr user=repmgr'data_directory='/var/lib/pgsql/9.6/data/'service_start_command = 'sudo systemctl start postgresql-9.6'service_stop_command = 'sudo systemctl stop postgresql-9.6'service_restart_command = 'sudo systemctl restart postgresql-9.6'service_reload_command = 'sudo systemctl reload postgresql-9.6'ssh_options=-o "StrictHostKeyChecking no"

使用--dry-run選項檢查可以克隆的待機狀態:[[email protected] ~]$ repmgr -h vlnx107001.firstshare.cn -U repmgr -d repmgr -f /etc/repmgr/9.6/repmgr.conf -F standby clone --dry-run
開始克隆[[email protected] ~]$ repmgr -h vlnx107001.firstshare.cn -U repmgr -d repmgr -f /etc/repmgr/9.6/repmgr.conf  standby clone

克隆從主PostgreSQL的資料目錄中的檔案節點 使用PostgreSQL的pg_basebackup效用。 將會自動建立一個recovery.conf檔案,其中包含從此主伺服器開始流式傳輸的正確引數。注意: 預設情況下,主資料目錄中的任何配置檔案都將被複制到備用資料庫。通常這些將是postgresql.conf, postgresql.auto.conf,pg_hba.conf和 pg_ident.conf。這些可能需要在待機啟動之前進行修改開啟slave[[email protected] data]$ /usr/pgsql-9.6/bin/pg_ctl -D $PGDATA -l /var/lib/pgsql/9.6/data/pg_log/logfile start在備用伺服器節點上啟動監控程序[[email protected] ~]$ repmgrd -f /etc/repmgr/9.6l/repmgr.conf --verbose --monitoring-history > /var/log/repmgr/repmgr.log 2>&1 &
九、驗證是否資料同步登入 primaryrepmgr=# SELECT * FROM pg_stat_replication;
註冊備用伺服器:[[email protected] pg_log]$ repmgr -f /etc/repmgr/9.6/repmgr.conf standby register通過在待機狀態下執行repmgr cluster show來檢查節點是否已註冊:[[email protected] pg_log]$ repmgr -f /etc/repmgr/9.6/repmgr.conf cluster show

相關推薦

實踐部署 repmgr+pg9.6構建可用叢集

環境:vlnx107001.firstshare.cn      primaryvlnx107002.firstshare.cn      slavecentos7postresql9.6repmgr4.0.5開啟防火牆firewall-cmd --zone=public -

使用Keepalived構建可用Web叢集

Keepalived的作用是檢測伺服器的狀態,如果有一臺web伺服器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的伺服器從系統中剔除,同時使用其他伺服器代替該伺服器的工作,當伺服器工作正常後Keepalived自動將伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只

構建可用ZooKeeper叢集

ZooKeeper 是 Apache 的一個頂級專案,為分散式應用提供高效、高可用的分散式協調服務,提供了諸如資料釋出/訂閱、負載均衡、命名服務、分散式協調/通知和分散式鎖等分散式基礎服務。由於 ZooKeeper 便捷的使用方式、卓越的效能和良好的穩定性,被廣泛地應用於

dubbo+zookeeper構建可用分散式叢集

我們討論過Nginx+tomcat組成的叢集,這已經是非常靈活的叢集技術,但是當我們的系統遇到更大的瓶頸,全部應用的單點伺服器已經不能滿足我們的需求,這時,我們要考慮另外一種,我們熟悉的內容,就

.net core下簡單構建可用服務叢集

一說到叢集服務相信對普通開發者來說肯定想到很複雜的事情,如zeekeeper ,反向代理服務閘道器等一系列的搭建和配置等等;總得來說需要有一定經驗和規劃的團隊才能應用起來。在這文章裡你能看到在.net core下的另一種叢集構建方案,通過Beetlex即可非常便捷地構建高可用的叢集服務。 簡述

三臺PC伺服器部署Hadoop HA(Hadoop 可用架構)

寫在前邊的話:        之前是在自己電腦上部署的hadoop叢集,但並未涉及到HA配置,這次將叢集遷移到PC伺服器,但是問題來了,只有三臺,但是我還想配置HA,PC伺服器是CentOS6.5,原來想著在上邊部署VM,從而部署HA叢集,但經測試,未果,遂棄之,就想到了在三

微服務Spring Cloud實戰—Eureka Server的簡介和可用叢集

Eureka簡介 什麼是Eureka? Eureka是Netflix開源的服務發現元件,本身是一個基於REST的服務。它包含Server和Client兩部分。Spring Cloud將它整合在子專案Spring Cloud Netflix中,從而實現服務的註冊與發現 (注:Eurek

RabbitMQ可用叢集映象實施方案

在我們使用rabbitmq作為訊息服務時,在服務負載不是很大的情況下,一般我們只需要一個rabbitmq節點便能為我們提供服務,可這難免會發生單點故障,要解決這個問題,我們便需要配置rabbitmq的叢集和映象,以下便是使用兩臺伺服器進行rabbitmq叢集和映

Keepalived可用叢集及原理介紹

keepalived起初是專為LVS開發的,現在主要功能有兩個,分別是健康檢查和監控接替。 Keepalived 故障切換轉移原理介紹 在兩個負載均衡排程器上安裝Keepalived以實現高可用的目的。 兩個排程器之間通過VRRP協議來保證高可用性,

部署k8s ssl集群實踐6:配置可用kube-apiserver組件ha+keepalived

ops oba alived service 文章 system 兩個 ace 什麽 參考文檔:https://github.com/opsnull/follow-me-install-kubernetes-cluster感謝作者的無私分享。集群環境已搭建成功跑起來。文章是

Redis實踐(二)可用叢集+哨兵部署

  進入後,輸入shutdown   注意這裡需要新增-h引數,如果不新增此引數,會報告如下異常:   Could not connect to Redis at 127.0.0.1:6379: Connection refused   原因就是在conf檔案中,我們配置 bind 引數   info  命令

可用 kubernetes 叢集部署實踐

前言 Kubernetes(k8s) 憑藉著其優良的架構,靈活的擴充套件能力,豐富的應用編排模型,成為了容器編排領域的事實標準

corosync和pacemaker使用pcs構建可用集群

corosync pacemaker crm pcspcs構建高可用集群(基於crm管理)一、實驗環境系統版本:centos7實驗機器: pcs1:192.168.163.174 pcs2:192.168.163.175軟件源:阿裏雲二、安裝過程配置集群的前提:1、時間同步(將時間同步寫入計劃任務

Azure環境中Nginx可用部署架構設計

基於 google ogl soft 可用性 pan googl 環境 keep 前幾篇文章介紹了Nginx的應用、動態路由、配置。在實際生產環境部署時,我們需要同時考慮Nginx的高可用性和部署架構。 Nginx自身不支持集群以保證自身的高可用性,商業版本的Nginx+

drbd+mariadb+corosync+pacemaker構建可用,實現負載均衡

drbd mysql 高可用DRBD DRBD是由內核模塊和相關腳本而構成,用以構建高可用性的集群 drbd 工作原理:DRBD是一種塊設備,可以被用於高可用(HA)之中.它類似於一個網絡RAID-1功能。當你將數據寫入本地 文件系統時,數據還將會被發送到網絡中另一臺主機上。以相同的形式記錄在

SaltStack實例:構建可用架構

saltstack、構建、高可用 本章主要介紹通過saltstack構建系統高可用架構,以滿足業務需求。通過Haproxy實現負載均衡調度後端Nginx+PHP服務器,Keepalived實現系統高可用功能,Memcached存儲session會話,後端數據庫采用Mysql並且實現主從復制以及讀寫分

部署kubernetes1.8.4+contiv可用集群

emd 啟動腳本 systemd bond0 conf int oca backup 直接 原理和架構圖參考上一篇,這裏只記錄操作步驟。 etcd version: 3.2.11 kube version: 1.8.4 docker version: 17.03.2-ce

6.場景4:使用VRRP(L3HA)和Open vSwitch提供可用

.com 故障 失敗 因此 轉移 缺陷 vswitch vxlan 傳統 此場景描述了使用ML2插件和Open vSwitch(OVS)實現OpenStack網絡服務的高可用性實現。 該高可用性實施方案增加了以下情景:帶有虛擬路由器冗余協議(VRRP)的Open v

Centos 6.7可用web集群corosync+pacemaker實現方案

應用 pen security ready 錯誤信息 standard suse 資源 好的 實驗環境:1、本實驗共有兩個測試節點:172.16.0.12 , 172.16.0.132、集群服務為apache的httpd服務3、提供web服務的VIP為 172.16.0.9

Redis Sentinel安裝與部署,實現redis的可用

config pom else turn int 修改 align 表示 boot.s 前言   對於生產環境,高可用是避免不了要面對的問題,無論什麽環境、服務,只要用於生產,就需要滿足高可用;此文針對的是redis的高可用。   接下來會有系列文章,該系列是對spring