Postgresql
pgpool 負載平衡將所有查詢僅發送到 master
我的兩台 postgresql 伺服器配置為流式複制,執行良好。
Pgpool 配置為主從模式/負載平衡模式。
pgpool.conf:
listen_addresses = '*' port = 9999 backend_hostname0 = 'master-postgres-ip' backend_port0 = port-no backend_weight0 = 1 backend_data_directory0 = 'data-dir' backend_hostname1 = 'slave-postgres-ip' backend_port1 = port-no backend_weight1 = 1 backend_data_directory1 = 'data-dir' load_balance_mode = on master_slave_mode = on master_slave_sub_mode='stream'
我預計所有的寫查詢都將轉到主查詢,而讀查詢將分佈在兩者之間。但是,所有的查詢都只會掌握。但是,如果我停止 master,查詢將成為奴隸。
有人可以告訴我可能出了什麼問題嗎?
pgpool 在啟動時給出以下日誌:
2015-11-03 17:25:56: pid 21284: LOG: find_primary_node: checking backend no 0 2015-11-03 17:25:56: pid 21284: LOG: find_primary_node: checking backend no 1 2015-11-03 17:25:56: pid 21284: DEBUG: SSL is requested but SSL support is not available 2015-11-03 17:25:56: pid 21284: DEBUG: authenticate kind = 3 2015-11-03 17:25:56: pid 21284: ERROR: failed to authenticate 2015-11-03 17:25:56: pid 21284: DETAIL: invalid authentication message response type, Expecting 'R' and received 'E' 2015-11-03 17:25:56: pid 21284: DEBUG: find_primary_node: no primary node found
最初,我設置
sr_check_period
為pgpool.conf
0(零)以禁用 SR 檢查。我想避免這種檢查並總是平衡負載。但這導致了問題。在我給這個屬性一個非零值之後,負載平衡開始工作。
backend_hostname1 = 'master-postgres-ip'
- >這應該指向你的奴隸,而不是主人。