postgresql11 主从配置详解

news2025/7/20 17:14:38

以下内容是针对pgsql11来做的。请看好版本再去考虑是否往下看

准备两台服务器,地址如下: 

主:192.168.0.1pgsql11
从:192.168.0.2pgsql11

 一、主库配置

1、创建具有复制权限的用户replica 密码为000000

CREATE ROLE replica login replication encrypted password 'xxxxxx';

2、修改postgresql.conf

首先创建归档目录:mkdir -p /var/lib/pgsql/11/data/archive。我这边是放到了我数据存储的相关目录。注意:归档目录必须要对postgres用户授权。否则启动会报错。

把postgresql.conf有关信息改成以下内容

listen_addresses = '*'            # what IP address(es) to listen on;
port = 5432                # (change requires restart)
max_connections = 1000            # (change requires restart)
shared_buffers = 128MB            # min 128kB
dynamic_shared_memory_type = posix    # the default is the first option
wal_level = replica        # minimal, replica, or logical
archive_mode = on        # enables archiving; off, on, or always
archive_command = 'cp %p  /var/lib/pgsql/11/data/archive/%f'     

# command to use to archive a logfile segment
wal_sender_timeout = 60s    # in milliseconds; 0 disables
hot_standby = on            # "on" allows queries during recovery
max_standby_streaming_delay = 30s    # max delay before canceling queries
wal_receiver_status_interval = 10s    # send replies at least this often
hot_standby_feedback = on        # send info from standby to prevent
log_directory = 'log'    # directory where log files are written
 

3、修改pg_hba.conf

把以下内容放到host最后一行。切记一定要放到最后,不然不进行复制工作。如图所示:

host replication replica 192.168.0.2/32 trust 

 4、重启主库

systemctl reload pgsql.service

这边顺带絮叨下,systemctl配置pgsql启动。

利用root权限进到目录 cd /etc/systemd/system

然后通过vi pgsql.service创建个新文件。把以下内容放到pgsql.service中。注意改下相关路径

[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
Environment=PGPORT=5432
Environment=PGDATA=/var/lib/pgsql/11/data/
OOMScoreAdjust=-1000
ExecStart=/usr/pgsql-11/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300
ExecStop=/usr/pgsql-11/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/usr/pgsql-11/bin/pg_ctl reload -D ${PGDATA} -s
TimeoutSec=300
[Install]
WantedBy=multi-user.target
 

然后执行以下命令启用服务控制守护

systemctl daemon-reload 

配置开机启动 

systemctl enable pgsq.service

二、配置从库

1、验证下主库是否配置成功

[root@localhost data]# psql -h 192.168.0.1 -U postgres

psql (11.18)

Type "help" for help.

postgres=#

2、停止从库

systemctl stop pgsql.service

3、清空data数据存储

把data下的数据全清除。因为第四步要拉取主库的信息

rm -rf /var/lib/pgsql/11/data/*

4、从主库拉取数据

192.168.0.1:主库ip

pg_basebackup -h 192.168.0.1 -U replica -D /var/lib/pgsql/11/data/ -X stream -P

5、从库配置postgresql.conf

第四步拉取后的postgresql.conf文件,其实和主库中的postgresql.conf是一致的。检查下没问题就可以了

把postgresql.conf相关内容改成如下。注意归档文件的创建。

mkdir -p /var/lib/pgsql/11/data/archive/

listen_addresses = '*'            # what IP address(es) to listen on;
port = 5432                # (change requires restart)
max_connections = 1000            # (change requires restart)
shared_buffers = 128MB            # min 128kB
dynamic_shared_memory_type = posix    # the default is the first option
wal_level = replica        # minimal, replica, or logical
archive_mode = on        # enables archiving; off, on, or always
archive_command = 'cp %p /var/lib/pgsql/11/data/archive/%f'        # command to use to archive a logfile segment
wal_sender_timeout = 60s    # in milliseconds; 0 disables
hot_standby = on            # "on" allows queries during recovery
max_standby_streaming_delay = 30s    # max delay before canceling queries
wal_receiver_status_interval = 10s    # send replies at least this often
hot_standby_feedback = on        # send info from standby to prevent
log_directory = 'log'    # directory where log files are written


5、在data目录下修改或创建recovery.conf文件。如果不存在就自己创建

# 调整参数:
recovery_target_timeline = 'latest'   #同步到最新数据
standby_mode = on          #指明从库身份
trigger_file = 'failover.now'
primary_conninfo = 'host=192.168.0.1 port=5432 user=replica password=xxxxxx'   #连接到主库信息


6、启动从库

systemctl start pgsql.service

然后再主库中执行

select client_addr,sync_state from pg_stat_replication;如果有从库节点信息。表示已经创建成功了。可以实验从主库插入一条数据,不出意外的话。从库会同步到此条数据。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker——数据卷命令

目录 一、数据卷 1.1 便于修改 1.2 数据共享 1.3 安全问题 1.4 数据卷的基本语法 二、 创建数据卷,并查看数据卷在宿主机的目录位置 2.1 创建数据卷 2.2 查看所有数据卷 2.3 查看数据卷详细信息卷 2.4 删除数据卷 三、挂载数据卷 3.1 创建容器并挂载数据卷…

智慧国土解决方案-最新全套文件

智慧国土解决方案-最新全套文件一、建设背景二、建设思路1、紧盯三大领域2、划分三个阶段3、面向三个维度三、建设方案轻应用微服务大平台应用设计四、获取 - 智慧国土全套最新解决方案合集一、建设背景 2019年5月9日,印发《关于建立国土空间规划体系并监督实施的若…

Pandas 数据中的loc与iloc含义以及操作

本节学习并记录pandas 的DataFrame类型的数据是怎么对列或者行进行操作的 1、df.loc: 语法格式是df.loc[<行表达式>, <列表达式>]&#xff0c;如果列不传将返回所有的行&#xff0c;loc操作通过索引和列的条件筛选出数据。 2、df.iloc: 语法格式是df.iloc[<行…

python初级学习

第一章 为什么要学习Python 那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是-件有 趣的事情。 ——Linux 之父 Linus TorvaIds 作为-个实用主义的学习者,最关心的问题-定是「我为什么要选择学 Python, 学会之后我可以用来做什么&#xff1…

基于springboot电动车智能充电服务平台设计与实现的源码+文档

摘 要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括电动车智能充电服务平台的网络应用&#xff0c;在外国电动车智能充电服务平台已经是很普遍的方式&#xff0c;不过国内的电动车智能充电服务平台可能还处于起步阶段。电…

Briefings in bioinformatics2022 | 基于神经网络的分子性质预测通用优化策略

原文标题&#xff1a;A general optimization protocol for molecular property prediction using a deep learning network 代码&#xff1a;GitHub - titanda/Learn-it-all at ready_classification_feature 一、问题提出 虽然个别优化方法都成功地提高了模型的性能&#…

2022年IT服务行业研究报告

第一章 行业概况 IT服务是指在信息技术领域服务商为其用户提供信息咨询、软件升级、硬件维修等全方位的服务。IT服务产品包括&#xff1a;硬件集成、软件集成、通用解决方案、行业解决方案和IT综合服务。 服务过程是指IT需求得以满足的全过程&#xff0c;从IT服务商为用户提供…

小咖啡馆也能撬动大生意

在我们的传统观念里&#xff0c;无论什么行业&#xff0c;似乎店越大、生意也就越大&#xff0c;但事实真的如此吗&#xff1f;未必&#xff01;位于成都的原福咖啡馆整店大小仅10㎡&#xff0c;但在社区却人气非常高。从2018年开业至今&#xff0c;门店排队不断&#xff0c;而…

Pycharm初次创建项目时页面环境变量选择

Pycharm确实是一个非常不错的Python开发IDE&#xff0c;尤其对于初学者而言。 安装完Pycharm&#xff0c;并未创建任何工程项目时的界面&#xff0c;选择新建一个Pure Python项目&#xff0c; 基于上述界面解读 &#xff1a; 1是新建项目路径可以在Location处选择。 2是Proje…

MapReduce

4.1 MapReduce概述 2003年和2004年&#xff0c;Google公司在国际会议上分别发表了两篇关于Google分布式文件系统和MapReduce的论文&#xff0c;公布了Google的GFS和MapReduce的基本原理和主要设计思想。 4.1.1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架&#…

基于GIS的人口统计数据空间化解决方案

​ 人口数据一般以各种级别的行政区域为统计单位&#xff0c;使用表格进行展示。常用的人口分布度量指标是人口密度&#xff0c;即行政区域内单位土地面积上的人口数量&#xff0c;这种以行政辖区为单位进行统计的方法&#xff0c;统计的结果是假定人口均匀分布在整个区域内&a…

Flink的检查点和保存点

在分布式架构中&#xff0c;当某个节点出现故障&#xff0c;其他节点基本不受影响。这时只需要重启应用&#xff0c;恢复之前某个时间点的状态继续处理就可以了。这一切看似简单&#xff0c;可是在实时流处理中&#xff0c;我们不仅需要保证故障后能够重启继续运行&#xff0c;…

2023年系统规划与设计管理师-第二章信息技术知识

1. 软件工程 2. 面向对象 3. 开发模型 4. 开发方法 4.1 敏捷开发方法 4.2 RUP 5. 数据仓库和网络技术 5.1 网络七层结构 5.2 各设备位于哪一次 5.3 各层的协议 5.4 TCP分层 5.5 IPv6 VS IPv4 5.6 IPv4 &#xff1a;A类、B类、C类地址的划分 A类地址的第一组数字为1&#xff5…

【Python+Appium】开展自动化测试(5)appium元素定位常用方法

目录 前言 一&#xff0c;使用uiautomatorview对app页面截图&#xff0c;查看元素属性 二&#xff0c;appium移动端自动化常用的元素定位方法 1&#xff0c;find_element_by_id() 2&#xff0c;find_element_by_class_name() 3&#xff0c;find_element_by_xpath() 三&a…

D-014 温度传感器硬件电路设计

温度传感器硬件电路设计1 简介1.1 温度湿度传感器DHT111.2 温度传感器DS18B202 电路实战3 温度传感器芯片1 简介 温度传感器是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分&#xff0c;品种繁多。常见的温度传感器有&#xff1a; 1.1 温度…

PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]

PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八] 原项目链接&#xff1a;fork一下即可&#xff1a;https://aistudio.baidu.com/aistudio/projectdetail/5096910?contributionType1 相关项目参考&#xff1a;&#xff08;其余图神经网络相关项目见主页&#xff09; …

你理解的 ANR 监控可能一直是错的……

主要说了几种主流的卡顿监控方式&#xff1a; 通过开一个子线程不断去轮询主线程。原理就是不断向主线程发送Message&#xff0c;每隔一段时间检查一次刚刚发送的消息是否被处理&#xff0c;如果没被处理&#xff0c;说明这段时间主线程被卡住了。 通过使用系统方法 setMessag…

ADAU1860调试心得(3)接口说明以及硬件搭建步骤

这个板子是我做的&#xff0c;我做了 3 路模拟输入&#xff0c;1 路模拟输出&#xff0c;我做硬件设计从来就是怎么省事怎么来&#xff0c;所以就直接照着ADI给我的参考设计来的&#xff0c;关键电路坚决不创新&#xff0c;抄就完了。来看看接口的布局情况&#xff1a;三个绿色…

HttpClient别说话,用心看

官网:Apache HttpComponents – Apache HttpComponents 常见使用场景:1.爬虫(python相对做爬虫专业,但是java也可以做) 2.与其他应用进行交互时候 注意下,不同的HttpClient的jar包版本,API和包路径有明显不同 先使用JDK原生API请求网页 将控制台的复制保存为html文件 双击打…

vscode配置自定义代码片段模板

目录1、打开vscode&#xff0c;使用快捷键打开搜索面板2、输入snippets, 点击 代码片段&#xff1a;配置用户代码片段3、模板配置3.1 vue模板配置3.2 全局模板配置1、打开vscode&#xff0c;使用快捷键打开搜索面板 win: Ctrl Shift P mac: command Shift P 2、输入snipp…