pgpool-II PostgreSQL 负载均衡中间件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


一、pgpool-II是什么?

pgpool-II 是运行于 PostgreSQL 数据库服务器和客户端之间的一个中间件,提供的功能包括:连接池、复制、负载均衡、客户端限制和并行查询等。

二、环境

软件版本要求
postgresql14.7
pgpool-II4.4.2
CentOS7能访问互联网

安装postgresql 14.7

wget https://ftp.postgresql.org/pub/source/v14.7/postgresql-14.7.tar.bz2 --no-check-certificate #下载源码包

yum install readline-devel  #安装依赖库

tar xjvf postgresql*.bz2 #解压至一个目录

cd postgresql-14.7

./configure --prefix=/opt/pgsql #拟安装至/opt/pgsql

make world

make install-world

adduser postgres #增加新用户,系统提示要给定新用户密码(

mkdir /opt/pgsql/data #创建数据库目录

chown -R postgres:postgres /opt/pgsql/data

su - postgres #使用postgres帐号操作

/opt/pgsql/bin/initdb -D /opt/pgsql/data #初始化数据库

/opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile start #启动数据库(在用户主目录)

/opt/pgsql/bin/createdb genericdb #假定数据库名为gerericdb)

/opt/pgsql/bin/psql genericdb # (进入数据库内部)

将访问端口开放给本机外的IP

配置文件目录:/opt/pgsql/data/
修改pg_hba.conf文件中关于ipv4的127.0.0.1/32 md5 改为0.0.0.0/0 trust
或者直接追加一条配置:

host    all             all             0.0.0.0/0               md5

修改postgresql.conf文件中关于listen_address中’localhost’为’*’

将密码编码改为用md5格式

alter system set password_encryption = 'md5';

select pg_reload_conf();

修改了配置后,需要reload并且重启方可生效:

postgres=# select pg_reload_conf();

/opt/pgsql/bin/pg_ctl -D /opt/pgsql/data stop

/opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile start

设置postgres账户的密码

ALTER USER postgres WITH PASSWORD '123aA@';

安装pgpool

查找pgsql的socket文件目录(后面配置pgpool会用到)

/opt/pgsql/bin/psql -c “SHOW unix_socket_directories;”

安装pgpool

切换到root账号

wget https://www.pgpool.net/yum/rpms/4.4/redhat/rhel-7-x86_64/pgpool-II-pg14-4.4.2-1pgdg.rhel7.x86_64.rpm

rpn -ivh pgpool-II-pg14-4.4.2-1pgdg.rhel7.x86_64.rpm 或者 yum install pgpool-II-pg14-4.4.2-1pgdg.rhel7.x86_64.rpm

/etc/pgpool-II

配置pgpool.conf

配置pool_passwd

pg_md5 -u postgres -p # 查看postgres账户的密码md5编码

或者到数据库里查询密码:

postgres=# select passwd from pg_shadow where pg_shadow.usename = 'postgres'; 
               passwd                
-------------------------------------
 md5cc66260c9d14df84057fe629086ffffaa
(1 row)

写入到/etc/pgpool-II/pool_passwd文件,格式如下:

postgres:md5cc66260c9d14df84057fe62908fffffaa

配置/etc/pgpool-II/pgpool.conf

  35 listen_addresses = '*'
  
  43 unix_socket_directories = '/tmp'
  
  75 pcp_socket_dir = '/tmp

  88 # - Backend Connection Settings -
  
  90 backend_hostname0 = '192.168.1.20'
  92 backend_port0 = 5432
  94 backend_weight0 = 1
  96 backend_data_directory0 = '/data'
  98 backend_flag0 = 'ALLOW_TO_FAILOVER'
 102 backend_application_name0 = 'server0'

 104 backend_hostname1 = '192.168.1.21'
 105 backend_port1 = 5432
 106 backend_weight1 = 1
 107 backend_data_directory1 = '/data'
 108 backend_flag1 = 'ALLOW_TO_FAILOVER'
 109 backend_application_name1 = 'server1'
 110 
 111 # - Authentication -
 112 
 113 enable_pool_hba = on
 114                                    # Use pool_hba.conf for client authentication
 115 pool_passwd = 'pool_passwd'
 116                                    # File name of pool_passwd for md5 authentication.
 117                                    # "" disables pool_passwd.
 118                                    # (change requires restart)

启动pgpool

pgpool -n -d > /tmp/pgpool.log 2>&1 &

pgpool关机

pgpool stop

通过pgpool连接数据库

/opt/pgsql/bin/psql -p 9999 -U postgres -W

postgres=# show pool_nodes;
 node_id |  hostname   | port | status | pg_status | lb_weight |  role   | pg_role | select_cnt | load_balance_node | replication_delay | replication_state | replication_sync_state | las
t_status_change  
---------+-------------+------+--------+-----------+-----------+---------+---------+------------+-------------------+-------------------+-------------------+------------------------+----
-----------------
 0       | 192.168.1.20 | 5432 | up     | unknown   | 0.500000  | standby | unknown | 2          | true              | 0                 |                   |                        | 202
3-03-31 22:43:27
 1       | 192.168.1.21 | 5432 | unused | unknown   | 0.500000  | standby | unknown | 0          | false             | 0                 |                   |                        | 202
3-03-31 22:43:27
(2 rows)

总结

提示:这里对文章进行总结:
TODO continue;;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pgpool-ii的配置可以通过源码安装或者使用yum安装来完成。如果选择源码安装,可以按照以下步骤进行配置: 1. 解压源码包:使用命令`tar -xvf pgpool-II-4.2.2.tar.gz`解压源码包。 2. 进入解压后的目录:使用命令`cd pgpool-II-4.2.2`进入解压后的目录。 3. 配置安装路径:使用命令`./configure --prefix=/usr/package/pgpool-II-4.2.2`配置安装路径。 4. 编译和安装:使用命令`make && make install`进行编译和安装。 如果选择使用yum安装,可以按照以下步骤进行配置: 1. 安装yum源:使用命令`yum install -y https://www.pgpool.net/yum/rpms/4.2/redhat/rhel-7-x86_64/pgpool-II-release-4.2-1.noarch.rpm`安装pgpool的yum源。 2. 安装pgpool:使用命令`yum install -y pgpool-II-pg11-devel.x86_64`安装pgpool。 3. 启用pgpool服务:使用命令`systemctl enable pgpool.service`启用pgpool服务。 无论是源码安装还是yum安装,配置文件都可以在`/usr/package/pgpool-II-4.2.2/etc`目录下找到。可以将`pgpool.conf.sample-stream`复制为`pgpool.conf`进行配置。 需要注意的是,从Pgpool-II 4.2版本开始,所有的配置都将通过`/etc/pgpool/`目录下的`pgpool_node_id`文件来区分节点。 另外,如果需要进行postgresql的配置流同步,可以先安装postgresql,然后根据具体需求进行配置。 希望以上信息对您有所帮助。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [pgpool-II的安装及配置读写分离的高可用pg集群](https://blog.csdn.net/qq_35997793/article/details/114028254)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值