centos PG集群搭建

一、安装PG

1、安装之前首先查看软件是否已经安装

rpm -qa | grep postgresql

#若存在,需要卸载使用 yum remove postgresql

2、安装postgresql和postgresql-server

能够访问外网

# 获取源
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm # 安装
sudo yum install -y postgresql12-server

不能访问外网

# 如果不能访问外网,yum是用不了的,卸载原有的pg也只能通过rpm -e 包名 挨个进行删除

# 离线安装
rpm -Uvh --force --nodeps *

3、环境变量

创建目录,给与权限

cd /data/
mkdir pgdata
chown -R postgres:postgres ./pgdata

修改环境变量

vi /usr/lib/systemd/system/postgresql-12.service

# 修改 Environment
Environment=PGDATA=/data/pgdata/ #PGDATA一般是数据盘 # 重载
systemctl daemon-reload

4、启动数据库

# 初始化数据库
/usr/pgsql-12/bin/postgresql-12-setup initdb # 启动
systemctl start postgresql-12

5、创建用户

su - postgres
psql
# 用于pgpool
create role pgpool with login password 'postgres';
# 用于主从
create role repl login replication encrypted password 'postgres'; # 修改postgres密码
alter user postgres with password 'postgres';

二、配置主从

主节点配置

1、pg_hba.conf

# 修改data(/data/pgdata)下面的配置
vi /data/pgdata/pg_hba.conf # 追加
host all all 0.0.0.0/0 md5
host replication repl 本机ip/32 trust
host replication repl 节点1 ip/32 trust #从节点1
...
host replication repl 节点n ip/32 trust #从节点n host all all 本机ip 最后一位替换为0/24 md5

2、postgresql.conf

# 修改data(/data/pgdata)下面的配置
vi /data/pgdata/postgresql.conf # 修改内容
listen_addresses = '*' #开启后子节点才能访问
archive_mode = on
max_connections = 21000
archive_command = 'cp "%p" "/var/lib/pgsql/archivedir/%f"'
max_wal_senders = 10
max_replication_slots = 10
wal_level = replica
hot_standby = on
wal_log_hints = on

从节点配置

1、拉取主库配置

#删除从库data目录下文件
rm ‐rf data/* # 拉取主库配置,主库记得开5432端口
pg_basebackup -h 主节点ip -U repl -D /data/pgdata -X stream -P # 开通端口
iptables -I INPUT -p tcp --dport 5432 -j ACCEPT

2、修改配置文件

# postgresql.conf修改内容
primary_conninfo = 'host=主节点ip port=5432 user=repl(主节点对应账号) password=密码'
recovery_target_timeline = latest
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s
hot_standby_feedback = on # 12以上版本配置上有些变化
# 1.将recovery.conf文件里的配置合并到主配置文件postgresql.conf中
# 2.设置启用备库参数standby_mode,12之后废弃了这个参数,切换到备库建立空文件standby.signal进行触发。 # standby.signal修改内容
standby_mode = on

3、重启服务

#重启
systemctl restart postgresql-12 #也可以stop再start
systemctl stop postgresql-12
systemctl start postgresql-12

三、验证

# 进入主库
su - postgres
# 进入sql
psql # 查询同步状态,完成的话显示n行
select client_addr,usename,backend_start,application_name,sync_state,sync_priority FROM pg_stat_replication; # 添加数据库
CREATE DATABASE test; # 进入从库查看,发现新的库test
# 执行新建操作,警告only-read

四、其他

# 备份数据库
pg_dump dbname > outfile
# 导入数据库
psql dbname < infile
# 可用于测试主从是否完成
# 添加数据库
CREATE DATABASE test;
# 删除数据库
DROP DATABASE test;
# 查看已安装的软件包
rpm -qa | grep postgresql
# 离线删除软件包
rpm -e 包名

PG集群(PostgreSql环境)搭建的更多相关文章

  1. centos 8 集群Linux环境搭建

    一.集群Linux环境搭建 1. 注意事项 1.1 windows系统确认所有的关于VmWare的服务都已经启动 打开任务管理器->服务,查看五个VM选项是否打开. 1.2 确认好VmWare生 ...

  2. 部署k8s集群之环境搭建和etcd单节点安装

    环境搭建以及etcd 单节点安装过程 安装之前的环境搭建 在进行k8s安装之前先把虚拟机准备好,这里准备的是三台虚拟机 主机名 ip地址 角色 master 172.16.163.131 master ...

  3. hadoop学习笔记(六):hadoop全分布式集群的环境搭建

    本文原创,如需转载,请注明作者以及原文链接! 一.前期准备: 1.jdk安装        不要用centos7自带的openJDK2.hostname    配置       配置位置:/etc/s ...

  4. Dream------spark--spark集群的环境搭建

    1.下载安装scala http://www.scala-lang.org/download/2.11.6.html   2.解压下载后的文件,配置环境变量:编辑/etc/profile文件,添加如下 ...

  5. Hadoop入门(五) Hadoop2.7.5集群分布式环境搭建

    本文接上文内容继续: server01 192.168.8.118 jdk.www.fengshen157.com/ hadoop NameNode.DFSZKFailoverController(z ...

  6. 性能测试:k8s集群监控环境搭建(kube-prometheus)

    选择kube-prometheus版本 k8s集群版本是1.22.x 5个节点 说明:如果你电脑配置低,也可以1个master节点,2个node节点 3个节点 Kube-Prometheus地址:ht ...

  7. MQ集群测试环境搭建(多节点负载均衡,共享一个kahaDB文件(nas方式))

    1. os ubuntu12.04 基础环境准备 干掉不好用的vim重新装 sudo apt-get remove vim-common sudo apt-get install vim 如果需要使用 ...

  8. vagrant+docker搭建consul集群开发环境

    HashiCorp 公司推出的Consul是一款分布式高可用服务治理与服务配置的工具.关于其配置与使用可以参考这篇文章 consul 简介与配置说明. 一般,我们会在多台主机上安装并启动 consul ...

  9. 如何基于Jupyter notebook搭建Spark集群开发环境

    摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...

随机推荐

  1. linux centos7 模拟垃圾回收站功能以及 crontab 定时任务的设置

    2021-08-04 1. 安装 环境:CentOS Linux release 7.5.1804 (Core) # 将 saferm.sh 拷贝到 /bin 目录下面 git clone git:/ ...

  2. Packing问题

    问题描述:如何把任意数量任意尺寸矩形集无重复的放到一个面积最小的封闭矩形中. 算法思想:(为了便于描述,把要找的封闭矩形记为a,封闭矩形的集合记为as,把矩形集合记为rs,n为rs中矩形的个数,把可以 ...

  3. LNMP zabbix 4.4 安装

    硬件配置需求 环境 平台 CPU/内存 数据库 硬盘 监控主机数 小型 CentOS 2CPU/1GB MySQL.InnoDB 普通 100 中型 CentOS 2CPU/2GB MySQL.Inn ...

  4. 性能测试必备命令(1)- free

    性能测试必备的 Linux 命令系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1819490.html 介绍 显示系统的内存使用情况 语 ...

  5. IKEv2协议关键知识点总结整理

    文章目录 @[toc] 1. IKEv2基本原理 2. IKEv2协议重点注意事项 2.1 情景一:==IKEv2协商密钥逻辑== ①密钥协商流程 ②函数调用关系 ③流程简述 2.2 情景二:==使用 ...

  6. node.js一头雾水

    开始学习node.js,一头雾水,谁可以告诉我怎么学......欢迎评论留言怎么学node.js的,谢谢 node,node,node,给自己加油 放一张自己设计的日历图鼓励一下:):):),加油.. ...

  7. js 显示日期时间,时间过一秒加1

    html: <div id="data"><font>2017年10月17日 15:11:11</font></span> js: ...

  8. 作业帮-PHP技术一面整理

    项目经验介绍 RPC 调用的协议 用amf 和 base64编码 我想问的是通信协议:调用rpc接口时的过程是什么样?比如业务调用PHP接口的时候,用的是什么协议? (没理解)(https://www ...

  9. PHP的HTTP验证

    在日常开发中,我们进行用户登录的时候,大部分情况下都会使用 session 来保存用户登录信息,并以此为依据判断用户是否已登录.但其实 HTTP 也提供了这种登录验证机制,我们今天就来学习关于 HTT ...

  10. jquery动态生成dom(比如append)导致js事件无效

    如果无效用这个方法: on() 方法在被选元素及子元素上添加一个或多个事件处理程序. <div id="zkdiv">  <input type="bu ...