下载安装Pgpool-II
-
按照需要的版本安装Pgpool-II,可采用yum直接安装,也可取压缩包解压安装。这里不做详细叙述,可参考网上教程安装。
以下采用yum安装方式,将pgpool安装在主节点(master):
#yum install -y http://www.pgpool.net/yum/rpms/3.6/redhat/rhel-7-x86_64/pgpool-II-release-3.6-1.noarch.rpm
#yum -y install pgpool-II-pg96 pgpool-II-pg96-debuginfo pgpool-II-pg96-devel pgpool-II-pg96-extensions
#systemctl enable pgpool.service
#开启自动启动 -
给相关路径添加数据库用户(如postgres)权限。
#chown -R postgres.postgres /etc/pgpool-II
#chown -R postgres.postgres /var/run/pgpool/
配置Pgpool-II
-
配置pool_hba.conf。
cp /etc/pgpool-II/pool_hba.conf{,.bak}
vi /etc/pgpool-II/pool_hba.conf
增加如下内容:
host all all 0.0.0.0/0 md5
配置pool_hba.conf
-
配置pcp.conf。数据库中运行如下命令,然后添加至pcp.conf文件中。
postgres=# select rolname,rolpassword from pg_authid;
查询密码文件
配置pcp.conf
-
配置pgpool.conf。此配置文件按照自己的需要进行配置,这里只做简单步骤介绍。所填参数只是模拟环境的参数,请按需填写。
# CONNECTIONS listen_addresses = '*' port = 54321 #pgpool连接端口,确保端口没有被占用 socket_dir = '/var/run/pgpool' pcp_listen_addresses = '*' pcp_port = 9898 pcp_socket_dir = '/var/run/pgpool' # - Backend Connection Settings - backend_hostname0 = 'master' # master为主节点ip或者hostname backend_port0 = 5432 #5432为主实例实际端口号 backend_weight0 = 1 backend_data_directory0 = '/res' #/res为主实例实际数据路径 backend_flag0 = 'ALLOW_TO_FAILOVER' backend_hostname1 = 'slave' # slave为从节点ip或者hostname backend_port1 = 5432 #5432为从实例实际端口号 backend_weight1 = 1 backend_data_directory1 = '/res' #/res为从实例实际数据路径 backend_flag1 = 'ALLOW_TO_FAILOVER' # - Authentication - enable_pool_hba = on pool_passwd = 'pool_passwd' # FILE LOCATIONS pid_file_name = '/var/run/pgpool/pgpool.pid' logdir = '/var/run/pgpool ' replication_mode = off load_balance_mode = on master_slave_mode = on master_slave_sub_mode = 'stream' sr_check_period = 5 sr_check_user = 'srcheck' #请根据实际用户填写 sr_check_password = '123456' #请根据实际密码填写 sr_check_database = 'postgres' # HEALTH CHECK 健康检查 health_check_period = 10 health_check_timeout = 20 health_check_user = 'srcheck' #请根据实际用户填写 health_check_password = '123456' #请根据实际密码填写 health_check_database = 'postgres' # FAILOVER AND FAILBACK failover_command = '/pg/failover_stream.sh %H' #按照实际需要设置脚本,文中只做简单说明
-
设置failover_stream.sh脚本。
vim /pg/failover_stream.sh chmod 777 /pg/failover_stream.sh chmod u+s /sbin/ifconfig chmod u+s /usr/sbin pgpool -n -d -D > /var/run/pgpool/pgpool.log 2>&1 & ## 启动 pgpool -m fast stop ## 关闭
脚本内容:
#! /bin/sh # Failover command for streaming replication. # Arguments: $1: new master hostname. new_master=$1 #设置成实际的备节点ip或者hostname trigger_command="$PGHOME/bin/pg_ctl promote -D $PGDATA" # Prompte standby database. /usr/bin/ssh -T $new_master $trigger_command exit 0;
其中$PGHOME为数据库安装路径,$PGDATA为数据路径,按实际需要填写即可。
-
在数据库用户(如postgres)用户下运行如下命令后可登陆查看集群状态:
pgpool -n -d -D > /var/run/pgpool /pgpool.log 2>&1 &
-
查看集群状态。
[postgres@master]$ psql -p 54321 -h mater -U srcheck -d postgres
postgres=# show pool_nodes;
查看集群状态