好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

PGPool-ll+PG流复制-HA配置.docx

20页
  • 卖家[上传人]:碎****木
  • 文档编号:248100722
  • 上传时间:2022-01-31
  • 文档格式:DOCX
  • 文档大小:106.68KB
  • / 20 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • PostgreSQL HA 配置基于 PG 的流复制再加上 pgpool 软件实现双机热备,类似于 Oracle DG 的 FSF 功能本案例是在配置好流复制的基础上进行的,详细描述了配置过程,主备切换,性能测试,主备维护等拓扑结构:pg 主备节点实现流复制热备,pgpool1,pgpool2 作为中间件,将主备 pg 节点加入集群,实现读写分离,负载均衡和 HA 故障自动切换两 pgpool 节点可以使用一个虚拟 ip 节点作为应用程序访问的地址,两节点之间通过watchdog 进行监控,当 pgpool1 宕机时,pgpool2 会自动接管虚拟 ip 继续对外提供不间断服务软件:pgpool-II-3.7.13各版本下载地址:— 主机规划角色主机名IP 地址端口MasterPg1192.168.18.2111922数据库信息backend:0Pg1192.168.18.2119999Pgpool 信息SlavePg2192.168.18.2121922backend:1Pg2192.168.18.2129999Vip(虚拟 IP)192.168.18.215对外提供服务二 配置主机信任关系在 pg1 机器上都生成 ssh 密钥和公钥如下: ssh-keygen-t rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys.pg1chmod 600 ~/.ssh/authorized_keys.pg1在 pg2 机器上都生成 ssh 密钥和公钥如下: ssh-keygen-t rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys.pg2chmod 600 ~/.ssh/authorized_keys.pg2把 pg1 的公钥 cp 到 pg2 上,并且改名:scp .ssh/authorized_keys.pg1 pg2:/home/postgres/.ssh/authorized_keys把 pg2 的公钥 cp 到 pg1 上,并且改名:scp .ssh/authorized_keys.pg2 pg1:/home/postgres/.ssh/authorized_keys把 pg1 的公钥写入到自己主机的 authorized_keys文件中,自己主机信任自己:cat .ssh/authorized_keys.pg1 >> .ssh/authorized_keys把 pg2 的公钥写入到自己主机的 authorized_keys文件中,自己主机信任自己:cat .ssh/authorized_keys.pg2 >> .ssh/authorized_keys验证信任关系配置是否成功,注意远程和本机都要以远程方式验证,如果不需要密码,说明配置成功。

      pg1 主机ssh postgres@pg2 uptimessh postgres@pg1 uptime #第一次需要密码#pg2 主机ssh postgres@pg2 uptime #第一次需要密码ssh postgres@pg1 uptime三 安装 pgpoolmkdir /usr/local/pgpool (root)chown postgres:postgres /usr/local/pgpool (root)3.1 、安装 pgpoolcd /soft/pgpool-II-3.7.13./configure --prefix=/usr/local/pgpool --with-pgsql=/usr/local/pg12.2/ makemake installcd /soft/pgpool-II-3.7.13/src/sql makemake install cd sqlpsql -f insert_lock.sql3.2 、安装 pgpool 相关函数,可选,建议安装3.3 、配置 postgres 用户环境变量(pg1,pg2)vi .bash_profileexport PGPOOL_HOME=/usr/local/pgpool export PATH=$PATH:$PGPOOL_HOME/bin四、配置 pgpool4.1、配置 pg1 主机上的 pool_hba.confcd /usr/local/pgpool/etc/cp pool_hba.conf.sample pool_hba.confvi pool_hba.conf –添加如下内容pool_hba.conf 是对登录用户进行验证的,要和 pg1 的 pg_hba.conf 保持一致。

      hostreplicationreplpg2trusthostreplicationrepl192.168.18.0/24trusthostallall192.168.18.0/24trust4.2、配置 pg2 主机上的 pool_hba.conf,添加如下内容:hostreplicationreplpg1trusthostreplicationrepl192.168.18.0/24trusthostallall192.168.18.0/24trust4.3 、配置 pcp.conf(pg1,pg2)cd /usr/local/pgpool/etccp pcp.conf.sample pcp.conf# 使用 pg_md5 生成配置的用户名密码pg_md5 postgrese8a48653851e28c69d0506508fb27fc5#编辑 pcp.conf 文件,文件里面有样本内容postgres:e8a48653851e28c69d0506508fb27fc5pcp.conf 配置用于 pgpool 自己登陆管理使用的,一些操作 pgpool 的工具会要求提供密码等,比如节点的添加和删除等,配置如下:4.4 、在 pgpool 中添加 pg 数据库的用户名和密码(pg1,pg2):#需要先创建一个 pgpool.conf,否则在产生 pool_passwd 文件时会报错:cp pgpool.conf.sample-master-slave pgpool.confpg_md5 -p -m -u postgres pool_passwd#输入数据库登录用户 postgres 密码,生成 pool_passwd 文件4.5 、配置 pgpool.conf配置该文件是最核心的内容,HA 是否能够正常运行,跟此文件的配置息息相关。

      该配置文件分为不同模块,所以我们配置的时候要根据不同模块进行分类,否则配置的时候容易出错我们可以根据前面 4.4 步骤产生的配置文件进行编辑4.5.1 、主机pg1 pgpool.conf 配置,由于参数繁多,只列出需要修改或者关注的内容,有些值是默认的:#------------------------------------------------------------------------------ # CONNECTIONS#------------------------------------------------------------------------------# - pgpool Connection Settings - listen_addresses = '*'port = 9999# - pgpool Communication Manager Connection Settings - pcp_listen_addresses = '*'pcp_port = 9898# - Backend Connection Settings – 此配置非常重要,不容易理解backend_hostname0 = 'pg1' #以后 bankend0 就代表了 pg1 在集群中的表述backend_port0 = 1922 #连接 pg 数据库的端口backend_weight0 = 1backend_data_directory0 = '/usr/local/pg12.2/data' #pg 数据库路径backend_flag0 = 'ALLOW_TO_FAILOVER'backend_hostname1 = 'pg2' #bankend1 代表 pg2 backend_port1 = 1922backend_weight1 = 1backend_data_directory1 = '/usr/local/pg12.2/data' backend_flag1 = 'ALLOW_TO_FAILOVER'# - Authentication - enable_pool_hba = onpool_passwd = 'pool_passwd' #此处的 poo_passwd 就是上面产生的文件#------------------------------------------------------------------------------ # FILE LOCATIONS#------------------------------------------------------------------------------pid_file_name = '/usr/local/pgpool/pgpool.pid'#------------------------------------------------------------------------------ # LOAD BALANCING MODE 启用负载均衡#------------------------------------------------------------------------------load_balance_mode = on#------------------------------------------------------------------------------# MASTER/SLAVE MODE#------------------------------------------------------------------------------master_slave_mode = on master_slave_sub_mode = 'stream'# - Streaming – 流复制检查sr_check_period = 10sr_check_user = 'repl' #postgres replication 用户的名字sr_check_period = 0s。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.