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

歡迎訪問 生活随笔!

生活随笔

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

数据库

PostgreSQL 之 Pgpool概述

發布時間:2023/12/31 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PostgreSQL 之 Pgpool概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?作者:瀚高PG實驗室 (Highgo PG Lab)

Pgpool-II簡介

1.相當于中間件,位于應用程序和PG服務端之間;

2.提供連接池、負載均衡、自動故障切換等功能,負載均衡只針對讀操作,寫操作只發生在主節點上;

3.Pgpool-II自身也可以配置為主從結構,避免單點故障,對外提供虛擬IP地址,當主節點故障后,從節點提升為新的主節點并接管虛擬IP;

Pgpool-II體系結構

?

Pgpool的下載地址

Downloads - pgpool Wiki

Pgpool-II四種模式(O 意味著“可用”, X 意味著“不可用)

?

Pgpool-II主要配置文件

配置文件

用途

pcp.conf ????

用于管理、查看節點信息,如加入新節點。該文件主要是存儲用戶名及md5形式的密碼 ????????????

pgpool.conf ?

用于設置pgpool的模式,主次數據庫的相關信息等 ???????????????????????????????

pool_hba.conf

用于認證用戶登錄方式,如客戶端IP限制等,類似于postgresql的pg_hba.conf文件 ??????????????

pool_passwd ?

用于保存相應客戶端登錄帳號名及md5密碼 ??????????????????????????????????????????????

Pgpool-II主要的腳本文件

以下腳本文件都會在pgpool.conf配置文件中指定路徑

1)failover腳本 -->failover.sh ?#完成主備庫角色的切換 ,主要有兩種方式,推薦使用方式 pg_ctl promote命令。

2)Online Recovery腳本-->basebackup.sh 和 pgpool_remote_start

basebackup.sh 主要是以在線備份恢復的方式重新構建備庫
pgpool_remote_start 執行數據庫啟動命令

Pgpool的安裝參考

Installation of Pgpool-II

啟動和關閉pgpool

1)啟動命令

pgpool ????????????##直接啟動,不輸出調試信息

pgpool啟動在后臺,開啟debug模式,debug日志輸出到/tmp/pgpool.log。

pgpool -n -d > /tmp/pgpool.log 2>&1 &

2) 關閉命令

pgpool [-m {s[mart]|f[ast]|i[mmediate]}] stop

stop有三個模式:"smart", "fast", "immediate"

smart ??????等待客戶端斷開后關閉

fast ???????不等待客戶端斷開,立刻關閉

immediate ??等同于fast模式

注意:

pgpool的啟動和關閉順序,啟動時先主后備,關閉時先備后主。

如果pgpool沒有正常關閉,下次啟動可能會異常。

通過Pgpool訪問數據庫示例

啟動pgpool后,使用端口9999和VIP地址連接數據庫

psql -h 192.168.137.200 -p 9999 -d testdb

psql (9.5.7)

Type "help" for help.

psql -p 9999 d testdb -c “show pool_nodes;”

?node_id | hostname | port | status | lb_weight | ?role ??| select_cnt | load_balance_node | replication_delay

---------+----------+------+--------+-----------+---------+------------+-------------------+-------------------

?0 ??????| db1 ?????| 1921 | up ????| 0.500000 ?| primary | 0 ?????????| false ????????????| 0

?1 ??????| db2 ?????| 1921 | up ????| 0.500000 ?| standby | 0 ?????????| true ?????????????| 0

Pgpool-II的其他管理命令

1)show命令

show pool_nodes; ??#顯示所有已配置節點的列表,以pgpool鏈接數據庫后執行

show pool_status; ???#顯示Pgpool-II配置參數的當前值

show pool_version; ??#顯示Pgpool-II版本信息

show pool_processes; ?#顯示所有Pgpool-II進程的列表

show pool_pools; ???????#顯示Pgpool-II連接池列表

2)pcp管理命令列表

命令名稱

作用

pcp_attach_node

為pgpool-II關聯一個節點

pcp_detach_node

從pgpool-II脫離一個節點

pcp_node_count

顯示數據庫節點的總數

pcp_node_info

顯示指定的節點信息

pcp_pool_status

顯示pgpool.conf中定義的參數值

pcp_proc_count

顯示Pgpool-II子進程ID的列表

pcp_proc_info

顯示Pgpool-II子進程ID的信息。

pcp_promote_node

指定新節點作為Pgpool-II的主節點

pcp_recovery_node

在線恢復一個節點

pcp_stop_pgpool

停止pgpool-II

pcp_watchdog_info

顯示Pgpool-II的watchdog狀態

pcp命令示例:

pcp_node_count ????#顯示數據庫節點的總數

pcp_node_info [-h db1 -U postgres] 0 ??#顯示指定的節點信息

pcp_watchdog_info -h db1 -U postgres ??#顯示Pgpool-II的watchdog狀態

pcp_pool_status -h db1 -U postgres |more ?#顯示pgpool.conf中定義的參數值

pcp_detach_node -n 1 #將指定的節點1從Pgpool-II中分離出來

pcp_attach_node -n 1 ?#將指定節點附加到Pgpool-II

測試數據庫failover故障轉移(目標是業務訪問的連續性不受影響!)

1)模擬備機故障

?a.手動關掉備節點數據庫

?b.手動關閉備節點服務器

2)模擬主機故障

?a.手動關掉主節點數據庫

?b.手動關閉主節點服務器

3)使用pcp_recovery_node恢復節點1

pcp_recovery_node -n 0 -d > /tmp/reco.log ???#在正常主節點執行恢復備節點

總結

以上是生活随笔為你收集整理的PostgreSQL 之 Pgpool概述的全部內容,希望文章能夠幫你解決所遇到的問題。

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