centos PG集群搭建

一、安装PG

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

  1. rpm -qa | grep postgresql
  2. #若存在,需要卸载使用 yum remove postgresql

2、安装postgresql和postgresql-server

能够访问外网

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

不能访问外网

  1. # 如果不能访问外网,yum是用不了的,卸载原有的pg也只能通过rpm -e 包名 挨个进行删除
  2. # 离线安装
  3. rpm -Uvh --force --nodeps *

3、环境变量

创建目录,给与权限

  1. cd /data/
  2. mkdir pgdata
  3. chown -R postgres:postgres ./pgdata

修改环境变量

  1. vi /usr/lib/systemd/system/postgresql-12.service
  2. # 修改 Environment
  3. Environment=PGDATA=/data/pgdata/ #PGDATA一般是数据盘
  4. # 重载
  5. systemctl daemon-reload

4、启动数据库

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

5、创建用户

  1. su - postgres
  2. psql
  3. # 用于pgpool
  4. create role pgpool with login password 'postgres';
  5. # 用于主从
  6. create role repl login replication encrypted password 'postgres';
  7. # 修改postgres密码
  8. alter user postgres with password 'postgres';

二、配置主从

主节点配置

1、pg_hba.conf

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

2、postgresql.conf

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

从节点配置

1、拉取主库配置

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

2、修改配置文件

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

3、重启服务

  1. #重启
  2. systemctl restart postgresql-12
  3. #也可以stop再start
  4. systemctl stop postgresql-12
  5. systemctl start postgresql-12

三、验证

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

四、其他

  1. # 备份数据库
  2. pg_dump dbname > outfile
  3. # 导入数据库
  4. psql dbname < infile
  1. # 可用于测试主从是否完成
  2. # 添加数据库
  3. CREATE DATABASE test;
  4. # 删除数据库
  5. DROP DATABASE test;
  1. # 查看已安装的软件包
  2. rpm -qa | grep postgresql
  3. # 离线删除软件包
  4. 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. 理解ASP.NET Core - [03] Dependency Injection

    注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 依赖注入 什么是依赖注入 简单说,就是将对象的创建和销毁工作交给DI容器来进行,调用方只需要接 ...

  2. kubernetes 使用 PV 和 PVC 管理数据存储

    文章链接 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失--容器以干净的状态(镜像最初的状态)重 ...

  3. Systemd Journald占用资源过多

    journald占用过多磁盘空间 方法一 检查当前journal使用磁盘量 journalctl --disk-usage 清理方法可以采用按照日期清理,或者按照允许保留的容量清理,只保存2天的日志, ...

  4. 洛谷P3104 Counting Friends G 题解

    题目 [USACO14MAR]Counting Friends G 题解 这道题我们可以将 \((n+1)\) 个边依次去掉,然后分别判断去掉后是否能满足.注意到一点, \(n\) 个奶牛的朋友之和必 ...

  5. 20210807 Smooth,Six,Walker

    考场 开题,感觉 T1 很像 dky 讲过的一道中北大学 ACM 题,T3 一看就是随机化,具体不知道怎么做. T1 sb 题,直接取当前最小的光滑数,把它乘一个质因子放入候选集.类似<蚯蚓&g ...

  6. Apache网页优化

    目录: 一.Apache网页优化概述 二.网页压缩 三.网页缓存 四.隐藏版本信息 五.Apache防盗链 一.Apache网页优化概述 在企业中,部署Apache后只采用默认的配置参数,会引发网站很 ...

  7. Java日期时间API系列42-----一种高效的中文日期格式化和解析方法

    中文日期(2021年09月11日 和 二〇二一年九月十一日 )在生活中经常用到,2021年09月11日很好处理直接使用模板:yyyy年MM月dd日:二〇二一年九月十一日比较不好处理,需要每个数字进行转 ...

  8. ysoserial payloads/JRMPClient

    ysoserial payloads/JRMPClient 环境:JDK8u102 payloads/JRMPClient可以配合exploit/JRMPListener模块来使用 1.在自己服务器上 ...

  9. CodeForce-792B Counting-out Rhyme(模拟)

    Counting-out Rhyme CodeForces - 792B 题意: n 个孩子在玩一个游戏. 孩子们站成一圈,按照顺时针顺序分别被标号为 1 到 n.开始游戏时,第一个孩子成为领导. 游 ...

  10. js判断移动端跳转

    <script type="text/javascript">if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) | ...