PG系列~問題彙總

一 信號量問題

1 說明

PostgreSQL數據庫是多進程數據庫,進程和進程之間訪問同一個共享內存時,需要各種各樣的“鎖”機制,通常信號量
指的就是進程之間的“鎖”。需要設置kernel.sem=20 13000 20 130(獨立運行PG),參數的4個數據對應:SEMMSL、SEMMNS、
SEMOPM、SEMMNI。
·SEMMSL:信號集的最大信號量數,PostgreSQL要求大於17,取整數20,Oracle要求是250。
·SEMMNS:整個系統範圍內的最大信號量數,所以SEMMNS = SEMMSL *SEMMNI。
·SEMOPM:Semop函數在一次調用中所能操作一個信號量集中最大的信號量數,所以能常與SEMMSL相同。
·SEMMNI:信號量集的最大數目,PostgreSQL數據庫中要求是數據庫進程數/16,假設允許2000個連接,即需要至
少130個信號量集數目。這個進程數不只是用戶服務進程,還需要包括一些管理的服務進程

信號集X單信號集的最大信號量數=整個系統範圍內的最大信號數量

2 查看方法

cat /proc/sys/kernel/sem 

3 說明

個人認爲當前環境信號量設置的時候沒有考慮類似PGSQL這種多進程的運行程序

4 調整

cat /proc/sys/kernel/sem
sysctl -w kernel.sem="250 65000 32 260"
echo "kernel.sem = 250 65000 32 260" >> /etc/sysctl.conf

二  pgpool無法啓動

報錯提示  watchdog child exits with status 768

解決方法  如果無法加入而又要求是主 則關閉其他剩餘pgpool 優先啓動這個節點pgpool 成爲master 其他節點隨後啓動加入即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章