PostgreSQL13基于流复制搭建后备服务器的方法


Posted in PostgreSQL onJanuary 18, 2022

pg的高可用、负载均衡和复制特性矩阵如下

PostgreSQL13基于流复制搭建后备服务器的方法

后备服务器作为主服务器的数据备份,可以保障数据不丢,而且在主服务器发生故障后可以提升为主服务器继续提供服务。

实际操作

1、参数配置

首先配置主机的postgresql.conf

vim /usr/local/pgsql/data/postgresql.conf

listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 10
max_replication_slots = 10
hot_standby = on # 主要用来备库配置,主库配置无影响
wal_keep_size = 1GB  #pg13后配置,之前是wal_keep_segments
wal_log_hints = on  #pg_rewind必须参数
full_page_writes = on

然后配置主机的pg_hba.conf

vim /usr/local/pgsql/data/pg_hba.conf
host    replication     all      0.0.0.0/0     trust #新增

2、使用pg_basebackup创建备机数据库

pg_basebackup -D ../data1 -U postgres  -Fp -X stream -R  -P -v -p54321 -h 127.0.0.1

解释一下常用参数

pg_basebackup被用于获得一个正在运行的PostgreSQL数据库集簇的基础备份。

-D directory

将输出写到哪个目录。如果必要,pg_basebackup将创建该目录及任何父目录。

-Fp

把输出写成平面文件,使用和当前数据目录和表空间相同的布局。

-Xstream

在备份被创建时通过流复制传送预写式日志。这将开启一个到服务器的第二连接并且在运行备份时并行开始流传输预写式日志。

-R

--write-recovery-conf

在输出目录中(或者当使用 tar 格式时在基础归档文件中)建立 standby.signal 并附加连接设置到postgresql.auto.conf 来简化设置一个后备服务器。postgresql.auto.conf文件将记录连接设置(如果有)以及pg_basebackup所使用的复制槽,这样流复制后面就会使用相同的设置。

-P

--progress

启用进度报告。

-v

--verbose

启用冗长模式,可以理解为输出备份过程数据。

3、启动备机数据库服务器

echo "port=54322" >> /usr/local/pgsql/data1/postgresql.conf
pg_ctl -D /usr/local/pgsql/data1 start

4、检查

登录主机查看流复制关系

psql -Upostgres -dpostgres -p54321
select * from pg_stat_replication;

主机插入数据

./psql -Upostgres -dpostgres -p54321
create table t1 (id int ,name varchar);
insert into t1 values (1,'cli');

备机查询数据,数据同步成功

psql -Upostgres -dpostgres -p54322
select * from t1;

PostgreSQL13基于流复制搭建后备服务器的方法

至此,一个简单的后备服务器就搭建好了。

但行好事,莫问前程

到此这篇关于PostgreSQL13基于流复制搭建后备服务器的文章就介绍到这了,更多相关PostgreSQL13搭建后备服务器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PostgreSQL 相关文章推荐
postgresql使用filter进行多维度聚合的解决方法
Jul 16 PostgreSQL
PostgreSQL解析URL的方法
Aug 02 PostgreSQL
PostgreSQL自动更新时间戳实例代码
Nov 27 PostgreSQL
PostgreSQL事务回卷实战案例详析
Mar 25 PostgreSQL
PostgreSQL并行计算算法及参数强制并行度设置方法
Apr 07 PostgreSQL
PostgreSQL数据库创建并使用视图以及子查询
Apr 11 PostgreSQL
postgreSQL数据库基础知识介绍
Apr 12 PostgreSQL
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 PostgreSQL
postgresql之greenplum字符串去重拼接方式
May 08 PostgreSQL
基于PostgreSQL/openGauss 的分布式数据库解决方案
PostgreSQL自动更新时间戳实例代码
Nov 27 #PostgreSQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 #PostgreSQL
postgresql 删除重复数据案例详解
Aug 02 #PostgreSQL
PostgreSQL解析URL的方法
Aug 02 #PostgreSQL
postgresql使用filter进行多维度聚合的解决方法
Jul 16 #PostgreSQL
浅谈PostgreSQL表分区的三种方式
You might like
PHP中file_get_contents高?用法实例
2014/09/24 PHP
8个必备的PHP功能开发
2015/10/02 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
jQuery实现的简单拖动层示例
2017/02/22 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
jQuery实现本地存储
2020/12/22 jQuery
Python列表(list)常用操作方法小结
2015/02/02 Python
python解析基于xml格式的日志文件
2017/02/25 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
python实现画圆功能
2018/01/25 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
上海世博会口号
2014/06/19 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
区域销售大会开幕词
2016/03/04 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
Redis特殊数据类型bitmap位图
2022/06/01 Redis