最近结合pgpool-II进行postgreSQL高可用的部署,过程非常煎熬,作为新手,公司也没有前辈熟悉postgreSQL,只能自己摸索。好在已经搞明白了,把困扰我很长时间的两个问题分享一下。
1. show pool_nodes
第一个问题就是 show pool_nodes
的使用,照着教程建好后,在哪里执行这个指令呢?我在postgresSQL服务器上怎么执行这个指令都显示 ERROR: unrecognized configuration parameter "pool_nodes"
,一度怀疑人生。翻阅了很多资料才明白,pgpool作为postgresSQL和客户端之间的中间件,安装pgpool的这台服务器也需要安装postgresSQL服务才能使用,这个指令是在pgpool的服务器上执行的。(我的postgresSQL和pgpool是分开部署的)
2. node_id 0 status down
第二个问题非常奇怪,我的pgpool配置一切正常,后端postgresSQL服务也都正常,但是pgpool启动后,总是显示node_id 0的status是down,如上图。我把master和slave互换,也是一样,如下图。
这让我又一次怀疑人生了。翻阅了很多资料,未果,最后仔细查看日志,发现是pgpool_status
这个文件捣的鬼,这个文件怎么来的,咱也不知道,咱也不敢问,反正就让我的node0一直down。手动修改为up后,重启pgpool,或者删掉这个文件后,再启动pgpool就好了。(怀疑是之前安装执行后残留的文件)
最后得出的结论是,看日志真的很重要,真的很重要,很重要。。还请懂postgreSQL的大神解惑。