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

歡迎訪問 生活随笔!

生活随笔

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

数据库

切换数据库_硬核数据库postgres使用pgpool完成主备自动切换,快来盘它

發布時間:2025/3/19 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 切换数据库_硬核数据库postgres使用pgpool完成主备自动切换,快来盘它 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小吳總的雞湯

postgres作為年度最佳數據庫在國內得不到大范圍使用真的太可惜了!干巴巴的,麻麻賴賴的,一點都不圓潤,怎么辦?盤他!

書接上回,為了解決postgres的高可用部署問題,需解決以下幾個主要問題

1.主節點和從節點的讀寫分離2.主節點和從節點的自動主從切換3.主節點和從節點的負載均衡

pgpool因為同時具備連接池,負載平衡,主從節點讀寫分離,可自動主從切換的特性,被官方推薦為postgres的官方高可用方案,我們在這里推薦使用主備模式。

pgpool各模式對比圖

接下來我們將在之前的從服務器進行pgpool的單節點部署。

192.168.1.102(從)

從節點下載及安裝pgpool(192.168.1.102)

tar xzvf pgpool-II-4.0.4.tar.gz -C /usr/local/./configure --with-pgsql=/usr/pgsql-9.6/ --prefix=/usr/local/pgpool2#如果出現error: libpq is not installed or libpq is old則執行下句yum install postgresql-devel#編譯及安裝make && make install#復制配置文件模版cd /usr/local/pgpool2/etccp pgpool.conf.sample pgpool.confcp pool_hba.conf.sample pool_hba.confcp pcp.conf.sample pcp.confmkdir /usr/local/pgpool2/run

配置節點間的免密登錄(192.168.1.101/102)

#在每個節點執行su postgresssh-keygen -t rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys#復制公鑰到從節點(192.168.1.101)scp ~/.ssh/authorized_keys postgres@192.168.1.102:~/.ssh/#測試免密登錄ssh postgres@192.168.1.102#復制公鑰到主節點(192.168.1.102)scp ~/.ssh/authorized_keys postgres@192.168.1.101:~/.ssh/#測試免密登錄ssh postgres@192.168.1.101

配置pcp.conf(192.168.1.102)

cd /usr/local/pgpool2./bin/pg_md5 123456#復制生成的md5值到pcp文件vi pcp.confpostgres:e10adc3949ba59abbe56e057f20f883e

生成pool_passwd密碼認證文件(192.168.1.102)

#使用pg_md5命令生成認證文件/usr/local/pgpool2/bin/pg_md5 -m -u postgres password#查看生成的文件cat etc/pool_passwdpostgres:md5a3556571e93b0d20722ba62be61e8c2d

設置允許遠程訪問(192.168.1.102)

vi pool_hba.conf追加host all all 0.0.0.0/0 md5

配置主備模式的主要修改點(192.168.1.102)

vi pgpool.conf#允許遠程訪問listen_addresses = '*'#訪問端口port = 9999#主節點配置backend_hostname0 = '192.168.1.101'backend_port0 = 5432backend_weight0 = 1backend_data_directory0 = '/var/lib/pgsql/9.6/data/'backend_flag0 = 'ALLOW_TO_FAILOVER'#從節點配置backend_hostname1 = '192.168.1.102'backend_port1 = 5432backend_weight1 = 1backend_data_directory1 = '/var/lib/pgsql/9.6/data/'backend_flag1 = 'ALLOW_TO_FAILOVER'#開啟訪問控制enable_pool_hba = onpool_passwd = 'pool_passwd'# 設置連接池的連接數num_init_children = 32# 連接池最大數量,實際允許訪問的最大連接數為num_init_children*max_poolmax_pool = 4# pid文件路徑pid_file_name = '/usr/local/pgpool2/run/pgpool.pid'#開啟負載均衡load_balance_mode = on#開啟主備模式master_slave_mode = on#使用流復制模式master_slave_sub_mode = 'stream'#流復制校驗設置sr_check_period = 10sr_check_user = 'replica'sr_check_password = 'replica'sr_check_database = 'postgres'delay_threshold = 0#健康檢查校驗設置health_check_period = 0health_check_timeout = 20health_check_user = 'replica'health_check_password = 'replica'health_check_database = 'postgres'health_check_max_retries = 0health_check_retry_delay = 1connect_timeout = 10000#主節點宕機時主備切換failover_command = '/usr/local/pgpool2/run/failover_stream.sh %H'

啟動pgpool及主備驗證(192.168.1.102)

cd /usr/local/pgpool2/#啟動pgpool開啟debug模式并將日志打印到pgpool.log,生產上不建議./bin/pgpool -n -d > pgpool.log 2>&1 啟動pgpool并將日志打印到pgpool.log,正常模式./bin/pgpool -n > pgpool.log 2>&1 停止pgpool./bin/pgpool -m f stop#查看節點狀況,驗證是否一主(primary)和一從(standby)以及狀態是否uppsql -p 9999show pool_nodes;

節點狀況

測試主備切換

#當前主節點(192.168.1.101)停止數據庫,模擬宕機systemctl stop postgresql-9.6#在此查看節點狀態,發現原來的從節點變成了primary主節點,原來的主節點狀態為downshow pool_nodes

發生了備節點切換為主節點

#修改recovery.confcd /var/lib/pgsql/9.6/data/vi recovery.confstandby_mode = 'on'primary_conninfo = 'host=192.168.1.102 port=5432 user=replica password=replica'trigger_file = 'trigger_file0'recovery_target_timeline = 'latest'#防止主節點積壓,緩存未處理的日志restore_command = 'cp %p ../archive/%f'#再次啟動原主節點(192.168.1.101)systemctl start postgresql-9.6#使用pcp命令動態添加節點(192.168.1.101)為從節點cd /usr/local/pgpool2/./bin/pcp_attach_node 0#再次查看狀態,原主備節點發生了交換psql -p 9999show pool_nodes;

主備發生了切換

達人的回顧總結

在上一篇文章中我們已經實現了postgres的主備集群搭建,有需要的可以進行快速回顧。下一篇我們將涉及pgpool本身集群的搭建

硬核數據庫postgres的主備集群搭建,快來盤它

總結

以上是生活随笔為你收集整理的切换数据库_硬核数据库postgres使用pgpool完成主备自动切换,快来盘它的全部內容,希望文章能夠幫你解決所遇到的問題。

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