日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

PostgreSQL(三)pgpool管理PostgreSQL集群下主机宕机后的主从切换

發布時間:2025/3/19 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PostgreSQL(三)pgpool管理PostgreSQL集群下主机宕机后的主从切换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在前兩篇文章的基礎上

PostgreSQL(一)PostgreSQL一主二從集群部署

PostgreSQL(二)PostgreSQL一主二從集群之上部署雙節點pgpool-II

本文介紹了,當故障發生時的處理辦法。?

對于status中數字的含義:1:節點啟動,還沒有被連接?2:節點啟動,已經被連接?3:節點down掉了

?1模擬主節點服務故障

在主機上執行,停止postgreql的命令,模擬PostgreSQL進程出現故障。而pgpool的服務未受影響。

systemctl stop postgresql

再次查詢,結果如圖所示。節點0 的role被切換為standby節點1的role被切換為primary。再看狀態,節點0狀態down掉了。

2.手動將節點2加入集群中

在實際應用過程中,節點0掛掉之后主節點自動切換到節點1,此時只有節點1正常工作,用戶對此并無感知,通過配置的VIP連接數據庫,此時仍在繼續讀寫數據。

節點2在雖然在pgpool中的顯示是連接狀態,但是,它卻并不在集群當中。

在節點1中寫數據,自然無法同步。

此時人工操作,將節點2加入集群中。

第一步、將數據同步過來。并做好配置。

-bash-4.2$ rm -rf /var/lib/pgsql/data/*

-bash-4.2$ pg_basebackup -h 192.168.149.237 -U repl -D /var/lib/pgsql/data -X stream -P

-bash-4.2$vi /var/lib/pgsql/data/recovery.conf

standby_mode = on

primary_conninfo = 'host=192.168.149.237 port=5432 user=repl password=fanxiaoguang@0'

recovery_target_timeline = 'latest'

trigger_file = '/tmp/trigger_file0'

第二步、重啟,之后發現,從節點已經生效了。

數據庫的內容已經同步進來。

如果節點2狀態出現down的情況。那么可以手動改變一下狀態。

在node238節點執行命令

pcp_attach_node?? 10 localhost 9898 postgres postgres 2

其中參數10表示一個時間,不重要。localhost就是要手動加入的節點,postgres postgres分別代表用戶名和密碼,2代表節點ID。

重新登陸后,節點狀態發生改變。

3手動將節點0加入集群中

假設節點0的故障已經修好了。此時,應只是將節點0當作一個普通standby庫來看待。配置方法與節點2配置方法相同。

在節點0上將自身加入集群中,重連后,整個集群恢復如初。執行命令

pcp_attach_node?? 10 localhost 9898 postgres postgres 0

而此時,節點0不再是主節點了,是一個只讀的數據庫了。

?

總結

以上是生活随笔為你收集整理的PostgreSQL(三)pgpool管理PostgreSQL集群下主机宕机后的主从切换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。