postgresql12 pgpool搭建(3)
下载地址
https://www.pgpool.net/yum/rpms/4.1/redhat/rhel-7-x86_64/
pgpool-II-pg12-4.1.4-1pgdg.rhel7.x86_64.rpm
[root@pg2 ~]# vi /etc/yum.repos.d/centos.repo
[centos7]
name=centos7
baseurl=file:///mnt
gpgcheck=0
enabled=1
安装pgpool
yum install libmemcached
rpm –ivh pgpool-II-pg12-4.1.4-1pgdg.rhel7.x86_64.rpm
Hosts信息
192.168.7.101 pg1
192.168.7.102 pg2
192.168.7.103 vip
配置互信
passwd postgres
ssh-keygen –t dsa
ssh-keygen –t rsa
[pg1]
-bash-4.2$ cat id_*.pub > authorized_keys
-bash-4.2$ scp authorized_keys 192.168.7.102:/var/lib/pgsql/.ssh
[pg2]
cat *.pub >> authorized_keys
scp authorized_keys 192.168.7.101:/var/lib/pgsql/.ssh
pgpool配置文件位置
cd /etc/pgpool-II/
复制配置文件模板
-bash-4.2$ cp pcp.conf.sample pcp.conf
-bash-4.2$ cp pgpool.conf.sample pgpool.conf
-bash-4.2$ cp pool_hba.conf.sample pool_hba.conf
-bash-4.2$
Pool_hba.conf
用于信任认证,没有配置的话和pg_hba.conf没配置类似,会无法传输
拷贝pg_hba.conf到pool_hba.conf,要把peer那一行删掉
pcp.conf
自己管理用户密码
--应该是postgres用户的密码,使用pg_md5算出md5用于pgpool使用
-bash-4.2$ pg_md5 postgres
e8a48653851e28c69d0506508fb27fc5
没有ifconfig
Pgpool用了ip add,应该可以不装
yum install net-tools.x86_64
pool_passwd
pg_md5 -p -m -u postgres pool_passwd
pgpool管理用密码,pool_hba.conf那里如果是md5,这个就应该使用,如果是trust,应该就不使用
pgpool.conf
###Connections
对外服务的ip与端口
listen_addresses = '*'
port = 9999
Pgpool自我通信的ip与端口
pcp_listen_addresses = '*'
pcp_port = 9898
###Backend Connection Settings
2个pg节点的设置
backend_hostname0 = 'pg1'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0= '/var/lib/pgsql/12/data'
backend_flag0= 'ALLOW_TO_FAILOVER'
backend_hostname1 = 'pg2'
backend_port1 = 5432
backend_weight1 = 1
backend_data_directory1 = '/var/lib/pgsql/12/data'
backend_flag1 = 'ALLOW_TO_FAILOVER'
###Authentication
授权部分
enable_pool_hba = on
pool_passwd = 'pool_passwd'
###FILE LOCATIONS
pid_file_name = '/var/run/pgpool/pgpool.pid'
###LOAD BALANCING MODE
load_balance_mode = on
###MASTER/SLAVE MODE
master_slave_mode = on
master_slave_sub_mode = 'stream'
sr_check_period = 10
sr_check_user = 'replicator'
sr_check_password = '12345'
sr_check_database = 'postgres'
###HEALTH CHECK GLOBAL PARAMETERS
health_check_period = 10
health_check_timeout = 20
health_check_user = 'postgres'
health_check_password = 'postgres'
health_check_database = 'postgres'
###FAILOVER AND FAILBACK
failover_command = '/etc/pgpool-II-12/failover.sh %d %H /tmp/trigger_file'
###WATCHDOG
use_watchdog = on
wd_hostname = 'pg1'
###Virtual IP control Setting
Ens33是公网的网卡设备
delegate_IP = '192.168.7.103'
if_cmd_path = '/sbin'
if_up_cmd = '/sbin/ip addr add $_IP_$/24 dev ens33 label ens33:0'
if_down_cmd =' /sbin/ip addr del $_IP_$/24 dev ens33'
arping_path = '/usr/sbin'
arping_cmd = '/usr/sbin/arping -U $_IP_$ -w 1 -I ens33'
###heartbeat mode
heartbeat_destination0 = 'pg2'
heartbeat_destination_port0 = 9694
heartbeat_device0 = 'ens33'
###Other pgpool Connection Settings
other_pgpool_hostname0 = 'pg2'
other_pgpool_port0 = 9999
other_wd_port0 = 9000
二节点的pgpool.conf
拷贝1节点pgpool.conf,修改以下
wd_hostname = 'pg2'
other_pgpool_hostname0 = 'pg1'
heartbeat_destination0 = 'pg1'
启动pgpool
给ip命令和arping命令加权限
chmod u+s /sbin/ip chmod u+s /sbin/arping |
两个节点执行
pgpool -n > /var/log/pgpool-II-12/pgpool.log 2>&1 &
登录
psql -h 192.168.7.103 -p 9999
检查
postgres=# show pool_nodes; node_id | hostname | port | status | lb_weight | role | select_cnt | load_balance_node | replication_delay | replication_state | replication_sync_state | last_status_change ---------+----------+------+--------+-----------+---------+------------+-------------------+-------------------+-------------------+------------------------+--------------------- 0 | pg1 | 5432 | up | 0.500000 | primary | 10 | true | 0 | | | 2021-04-01 09:45:41 1 | pg2 | 5432 | up | 0.500000 | standby | 1 | false | 0 | | | 2021-04-01 09:45:41 |
查看当前数据库是否为主
/usr/pgsql-12/bin没写入环境变量
/usr/pgsql-12/bin/pg_controldata |grep cluster
pgbench压测
初始化
创建pgbench数据库
create database pgbench;
test=# create database pgbench test-# ; CREATE DATABASE |
初始化pgbench数据库
pgbench -i pgbench
-bash-4.2$ pgbench -i pgbench dropping old tables... NOTICE: table "pgbench_accounts" does not exist, skipping NOTICE: table "pgbench_branches" does not exist, skipping NOTICE: table "pgbench_history" does not exist, skipping NOTICE: table "pgbench_tellers" does not exist, skipping creating tables... generating data... 100000 of 100000 tuples (100%) done (elapsed 0.19 s, remaining 0.00 s) vacuuming... creating primary keys... done. |
测试
pgbench -h 192.168.7.103 -p 9999 -U postgres -t 100 -c 10 -j 2 -S pgbench
-h -p -U指定连接到pgbench数据库,-c10个连接,每个跑-t100个事务,使用-j2个cpu,全都是-S的只查询,
-bash-4.2$ pgbench -h 192.168.7.103 -p 9999 -U postgres -t 100 -c 10 -j 2 -S pgbench Password: starting vacuum...end. transaction type: scaling factor: 1 query mode: simple number of clients: 10 number of threads: 2 number of transactions per client: 100 number of transactions actually processed: 1000/1000 latency average = 3.577 ms tps = 2795.405613 (including connections establishing) tps = 2965.547989 (excluding connections establishing) |
从 show pool_nodes里可以看到有负载均衡
pgbench=# show pool_nodes; node_id | hostname | port | status | lb_weight | role | select_cnt | load_balance_node | replication_delay | replication_state | replication_sync_state | last_status_change ---------+----------+------+--------+-----------+---------+------------+-------------------+-------------------+-------------------+------------------------+--------------------- 0 | pg1 | 5432 | up | 0.500000 | primary | 3008 | true | 0 | | | 2021-04-01 21:50:14 1 | pg2 | 5432 | up | 0.500000 | standby | 4 | false | 0 | | | 2021-04-01 21:50:14 (2 rows) pgbench=# show pool_nodes; node_id | hostname | port | status | lb_weight | role | select_cnt | load_balance_node | replication_delay | replication_state | replication_sync_state | last_status_change ---------+----------+------+--------+-----------+---------+------------+-------------------+-------------------+-------------------+------------------------+--------------------- 0 | pg1 | 5432 | up | 0.500000 | primary | 3609 | true | 0 | | | 2021-04-01 21:50:14 1 | pg2 | 5432 | up | 0.500000 | standby | 404 | false | 0 | | | 2021-04-01 21:50:14 (2 rows) |
postgresql12 pgpool搭建(3)相关推荐
- 基于Pgpool搭建PostgreSQL11的集群
基于Pgpool-II4.1.0搭建PostgreSQL11集群 Pgpool介绍 pgpool相关介绍不在该文章中,需要者可以参考我的另一篇文章.传送门:pgpool介绍 环境准备 本次使用三台Ce ...
- 使用Pgpool搭建Postgresql集群
操作系统:CentOS7 Postgresql版本:10.10 Pgpool-II版本:4.0.6 端口 9999:对外提供服务 9000:watch_dog 9898:pcp 969 ...
- 基于共享存储的Harbor高可用-Docker部署方案
部署规划 架构图 Redis也可以和Harbor集中部署.这样避免了在不使用Reids集群模式下单节点的故障. 使用此模式,目前测试对于Harbor的登录,镜像信息查看,在计算节点,镜像的推送和下载没 ...
- centos oracle命令,CentOS7命令行方式搭建Oracle11gR2
CentOS7命令行方式搭建Oracle11gR2 CentOS7命令行方式搭建Oracle11gR2 准备工作 vim /etc/selinux/config SELINUX=disabled sy ...
- 切换数据库_硬核数据库postgres使用pgpool完成主备自动切换,快来盘它
小吴总的鸡汤 postgres作为年度最佳数据库在国内得不到大范围使用真的太可惜了!干巴巴的,麻麻赖赖的,一点都不圆润,怎么办?盘他! 书接上回,为了解决postgres的高可用部署问题,需解决以下几 ...
- 搭建一个高可用的镜像仓库,这是我见过最详细、最简单的教程
作者 | 小碗汤 来源 | 我的小碗汤 今天分享一篇搭建一个高可用镜像仓库的教程.详细中夹杂着简单~. Harbor 部署架构图 harbor 使用 helm 部署在 k8s 集群中,通过 ingre ...
- PostgreSQL12主从流复制(一主两从)
PostgreSQL12主从流复制(一主两从) 一.简介 流复制就是备服务器通过tcp流从主服务器中同步相应的数据,主服务器在WAL记录产生时即将它们以流式传送给备服务器,而不必等到WAL文件被填充. ...
- Postgresql12+Pgpool-ii 4.1高可用集群
Postgresql12+Pgpool-ii 4.1高可用集群 注意 原文链接 postgresql12主从复制链接 一.方案 1.1 方案效果 1.1 主机配置 二.安装 2.1 postgresq ...
- 负载均衡服务器性能评估,性能测试:pgpool做负载均衡的性能评估
1.测试环境maggie1:IP:192.168.31.101角色:pgpool_II + 流复制备库maggie2:IP::192.168.31.102角色:流复制主库 2. 环境搭建1. magg ...
最新文章
- Https 公钥、私钥、证书
- pycharm创建scrapy项目教程及遇到的坑
- oracle linux 6.5 安装 virtualbox
- TCP协议实现文件传输
- 跟着邓神 3 天掌握 Go 语言基础(免费)
- Jerry制作的软件工程里Design for Change的培训材料
- 处理器startup.s 常见汇编指令,伪指令解释 .globl _start .section .data .text .align
- CTO下午茶:张弛有度,动静自如
- 201521123009 《Java程序设计》第11周学习总结
- 洛谷 P1032 字串变换
- c语言大作业背单词,c语言必背代码 c语言入门必背单词 c语言必背100代码
- 辽宁电信TY12008-Z_智能机顶盒2.0_S905MB_线刷固件包
- 英文版 office 中的中文字体
- Matlab 图例 位置的不同命令
- 什么是深拷贝与浅拷贝
- 生成对抗网络训练_生成对抗网络
- 【渝粤教育】电大中专中医基础知识 (3)作业 题库
- Shell一句话根据进程名杀死进程
- pytorch 网络可视化(五):netron
- 企业一体化信息管理平台是什么
热门文章
- 2022.1.17学习总结
- YTU 3413: 小姬小姬小姬
- 大学生都在哪里看大学课后习题答案
- 中国大学MOOC货币金融学试题及答案
- error C2065: “pair”: 未声明的标识符
- 浏览器无法打开网页-重置网络命令
- 字符串短横线和驼峰形式的互相转换 Javascript
- 深度ip转换器手机版app_一键清理全能版app下载-一键清理全能版app手机版 v1.0.0...
- 判断IE浏览器的文档模式以及浏览器模式
- 黄奇帆:消费互联网垄断、杀熟等不讲道理的盈利模式行不通