PG集群(PostgreSql环境)搭建
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环境)搭建的更多相关文章
- centos 8 集群Linux环境搭建
一.集群Linux环境搭建 1. 注意事项 1.1 windows系统确认所有的关于VmWare的服务都已经启动 打开任务管理器->服务,查看五个VM选项是否打开. 1.2 确认好VmWare生 ...
- 部署k8s集群之环境搭建和etcd单节点安装
环境搭建以及etcd 单节点安装过程 安装之前的环境搭建 在进行k8s安装之前先把虚拟机准备好,这里准备的是三台虚拟机 主机名 ip地址 角色 master 172.16.163.131 master ...
- hadoop学习笔记(六):hadoop全分布式集群的环境搭建
本文原创,如需转载,请注明作者以及原文链接! 一.前期准备: 1.jdk安装 不要用centos7自带的openJDK2.hostname 配置 配置位置:/etc/s ...
- Dream------spark--spark集群的环境搭建
1.下载安装scala http://www.scala-lang.org/download/2.11.6.html 2.解压下载后的文件,配置环境变量:编辑/etc/profile文件,添加如下 ...
- Hadoop入门(五) Hadoop2.7.5集群分布式环境搭建
本文接上文内容继续: server01 192.168.8.118 jdk.www.fengshen157.com/ hadoop NameNode.DFSZKFailoverController(z ...
- 性能测试:k8s集群监控环境搭建(kube-prometheus)
选择kube-prometheus版本 k8s集群版本是1.22.x 5个节点 说明:如果你电脑配置低,也可以1个master节点,2个node节点 3个节点 Kube-Prometheus地址:ht ...
- MQ集群测试环境搭建(多节点负载均衡,共享一个kahaDB文件(nas方式))
1. os ubuntu12.04 基础环境准备 干掉不好用的vim重新装 sudo apt-get remove vim-common sudo apt-get install vim 如果需要使用 ...
- vagrant+docker搭建consul集群开发环境
HashiCorp 公司推出的Consul是一款分布式高可用服务治理与服务配置的工具.关于其配置与使用可以参考这篇文章 consul 简介与配置说明. 一般,我们会在多台主机上安装并启动 consul ...
- 如何基于Jupyter notebook搭建Spark集群开发环境
摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...
随机推荐
- mybaits源码分析--binding模块(五)
一.binding模块 接下来我们看看在org.apache.ibatis.binding包下提供的Binding模块 ,binding其实在执行sqlSession.getMapper(UserMa ...
- Python之telnetlib模块
telnetlib是python标准库中的一员,我们可以使用该模块以telnet的方式与服务器交互.请观察下面示例了解它的用法: import telnetlib def run_telnet(hos ...
- SpringBoot快速集成SpringBootAdmin管控台监控服务
SpringBootAdmin是一个针对 Spring Boot 的 Actuator 接口进行 UI 美化封装的监控工具,它可以在列表中浏览所有被监控 spring-boot 项目的基本信息.详细的 ...
- VSCode——滚动鼠标控制字体大小
第一步:找到设置 文件-->首选项-->设置 第二步:打开settings.json文件 第三步:在settings.json文件中添加 "editor.mouseWheelZo ...
- jQuery扩展方法 (插件机制)
jQuery.extend(object) 扩展jQuery对象本身. 用来在jQuery命名空间上增加新函数. 在jQuery命名空间上增加两个函数: <script> jQuery.e ...
- JS_DOM操作之绑定事件
1 - 静态绑定:直接把事件写在标签元素中 <div id="div" onclick="foo(this)">click</div> ...
- Python - 面向对象编程 - 实战(5)
前言 主要是针对静态方法.类方法.实例方法.类属性.实例属性的混合实战 需求 设计一个 Game 类 属性 定义一个类属性 top_score 记录游戏的历史最高分,这个属性很明显只跟游戏有关,跟实例 ...
- Docker - 解决 docker push 上传镜像报:denied: requested access to the resource is denied 的问题
问题背景 在 Linux 已登录自己的 Docker hub 账号 上传本地镜像但是报错了 docker push tomcat 解决方案 docker tag tomcat poloyy/tomca ...
- SpringBoot-异步定时-邮件任务
目录 背景 异步任务 定时任务 邮件任务 背景 在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件, 后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功, 所以我们 ...
- MySQL实战45讲(16--20)-笔记
目录 16 | "order by"是怎么工作的? 全字段排序 rowid 排序 17 | 如何正确地显示随机消息? 内存临时表 磁盘临时表 随机排序方法 18 | 为什么这些SQ ...