PG数据库异步流复制
PG数据库异步流复制
背景说明
- 最近想进行一个数据库高可用课题的研究.
- 因为之前某种原因,这次选择的是PG数据库.
- 为了简单起见, 暂时采用PG异步流复制的场景.
- 这次仅是为了测试, 不考虑高可用绿色切换的场景.
设置过程
- 本次学习自如下网站:
http://blog.itpub.net/26442936/viewspace-2771065/
- 原作者对数据非常有研究, 这里仅是进行一次简单学习与整理.
设置过程
- 安装PG数据库.
yum localinstall *.rpm
- 需要主要主从库都能够准确安装上数据库.
- 第一个数据库需要执行创建操作
# 本次是 PG13为例进行说明
systemct status postgresql-13
# 查看数据库的信息
#一般启动脚本为 /usr/pgsql-13/bin/ 数据目录为: /var/lib/pgsql/13/data
su - postgres
# 切换用户后进行数据库初始化的操作
cd /usr/pgsql-13/bin
./initdb -D /var/lib/pgsql/13/data
设置过程
- 数据库安装完成之后需要进行流复制的初始化设置.
- 设置的事项应该不需要太多.
#修改 postgresql.conf的设置
#主要有两处
listen_addresses ='*'
wal_level = replica
#修改pg_hba.conf的配置文件
host replication repl the_Slave_server_ip/32 md5
host replication repl the_master_server_ip/32 md5
# 注意 repl 是需要创建一个数据库的用户
# 需要使用pgsql 命令执行下来.
create role repl login replication encrypted password 'yourpassword';
设置过程
- 需要设置.pgpass 的默认配置
vim /postgres/can/rw/.pgpass
#添加内容为:
The_ip_of_master:5432:replication:repl:$yourpassword
# 注意这个文件需要让备份库可以读写.
- 设置完成后需要执行一下重启操作
# 注意是在主库
systemctl restart postgresql-13
设置过程
- 主库备份
pg_basebackup -h The_ip_of_master -U repl -D /var/lib/pgsql/13/databackup -Xs -P -R
# 注意需要使用非127.0.0.1的ip不然容易出问题.
# 这里会复制一下别人的专门说法.
- 参数说明
# /var/lib/pgsql/13/databackup是从库创建一个新目录,用来恢复主库的cluster databases
# -h 主库ip地址
# -U 指定连接主库的用户
# -D 从库复制数据的目录
# -Xs 主库备份时,以流式传输WAL日志内容
# -P 进度报告
# -R 创建一个standby.signal空文件,用于在集群中激活standby server,有这个standby.signal文件即为备库;
另外也可以把主库一些连接信息primary_conninfo写入备库postgresql.auto.conf
设置过程
- 从库的处理
注意需要将上一步 -D 产生的目录 复制到从数据库的特定目录上面
scp -r /var/lib/pgsql/13/databackup postgres@10.110.82.185:/var/lib/pgsql/13
注意文件目录的权限和属主必须保持准确.
注意需要修改启动脚本. 修改 systemd 的service 文件里面的 数据目录
处理步骤与前面相同
systemctl status postgresql-13
vi /usr/lib/systemd/system/postgresql-13.service
修改文件.
添加核心配置文件.
设置过程
- 注意 pg_basebackup 会产生一个文件:
standby.signal
注意包含这个文件的数据目录 在PG数据库启动之后
会提示没有写入权限
如果需要改为主库, 需要移除这个文件
注意这个文件一般是空的, 需要从 postgresql.auto.conf
复制配置文件到此目录才可以实现.
注意需要注意文件的权限,避免文件丢失权限导致无法启动.
设置过程
- 启动从库
systemctl restart postgresql-13
- 验证流复制是否准确
# 主库查询
select * from pg_stat_replication;
# 从库查询
select * from pg_stat_wal_receiver;
简单验证
- 主库插入从库验证
#主库设置:
create table zhaobsh (master varchar(200))
insert into zhaobsh values ('主库自主插入')
#从库查询:
select * from zhaobsh
# 验证能够查询出结果来
PG数据库异步流复制的更多相关文章
- postgresql数据库异步流复制hot standby环境搭建
生命不息,test不止. 最近组里面修改了几个postgresql的bug,要进行回归测试,除了前面提到的WAL的RT测试和Mirroring Controller的RT测试,还要测试下postgre ...
- PgSQL · 特性分析 · PG主备流复制机制
原文地址:http://mysql.taobao.org/monthly/2015/10/04/ PostgreSQL在9.0之后引入了主备流复制机制,通过流复制,备库不断的从主库同步相应的数据,并在 ...
- Postgressql高可用(pgpool+异步流复制)
文档结构: 由于博主之前是Oracle dba,oracle 高可用一般是rac,以及搭建ADG,一个是基于实例的高可用,一个是基于数据的容灾,甚至也有rac+adg的方式.Postgres有同步和异 ...
- postgresql 异步流复制hot standby搭建
先说说环境,主从库版本都是9.5,主库在CentOS物理机上,从库在Ubuntu虚拟机上 一.主库上的操作: 1.添加同步访问规则: host replication dbuser ...
- Postgresql 9.6 搭建 异步流复制 和 同步流复制 详细教程
Basic Replication If you’re feeling overwhelmed, try setting up a slave to see how easy it is! We’ll ...
- PostgreSQL异步主从流复制搭建
1 总体规划 Master库 Slave库 操作系统 CentOS Linux release 7.5.1804 CentOS Linux release 7.5.1804 处理器 1 1 内存 ...
- PostgreSQL流复制
原理机制 参考--https://yq.aliyun.com/articles/51009 主备总体结构 PG主备流复制的核心部分由walsender,walreceiver和startup三个进程组 ...
- 再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署
前言 在MySQL被收购之后,虽然有其替代品为: MariaDB,但是总感觉心里有点膈应.大家发现了另一款开源的数据库: PostgreSQL. 虽然centos自带版本9.2也可以用,但是最近的几次 ...
- PostgreSQL流复制记录
参考了别人的部分,添加了自己在实践中的内容,仅做记录. 1.同步流复制中 主机操作 1.1postgresql.conf wal_level = hot_standby # 这个是设置主为wal的主机 ...
- PostgreSQL主备流复制机制
原文出处 http://mysql.taobao.org/monthly/2015/10/04/ PostgreSQL在9.0之后引入了主备流复制机制,通过流复制,备库不断的从主库同步相应的数据,并在 ...
随机推荐
- 如何快速准备高质量的AI数据?
摘要:随着AI的快速发展,如何快速准备大量高质量的数据已经成为AI开发过程中一个极具挑战性的问题! 本文分享自华为云社区<如何快速准备高质量的AI数据?>,原文作者:徐波. 一.背景 通常 ...
- 一文了解如何使用移动应用安全组件Soot和Flowdroid
摘要:移动应用安全检测,soot.flowdroid分别作为静态分析.污点分析主要工具,能我们能够快速高效的进行检测分析.本文主要介绍两个工具的基本操作及相应的使用场景 本文分享自华为云社区<移 ...
- 总结vue3 的一些知识点:MySQL 排序
MySQL 排序 我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据. 如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段 ...
- PPT 工作需求:如何利用PPT做活动海报&H5?
PPT 工作需求:如何利用PPT做活动海报? 图片素材 + 字体 + 封面排版 PPT 工作需求:如何利用PPT制作H5? https://www.maka.im/muban http://www.p ...
- 白话文解析LiteFlow的理念是什么?什么时候用该怎么用?干货满满
官网:https://liteflow.cc/ Gitee:https://gitee.com/dromara/liteFlow Github:https://github.com/dromara/l ...
- 数据探索之道:查询Web API数据中的JSON字符串列
前言 在当今数据驱动的时代,对数据进行探索和分析变得愈发关键.Web API作为广泛应用的数据源,提供了丰富的信息和资源.然而,面对包含JSON字符串列的Web API数据时,我们常常遇到一个挑战:如 ...
- 你有一份Rx编程秘籍请签收
一.背景 在学习Rx编程的过程中,理解Observable这个概念至关重要,常规学习过程中,通常需要进行多次"碰壁"才能逐渐"开悟".这个有点像小时候学骑自行车 ...
- 深度学习(三)——Transforms的使用
一.Transforms的结构及用法 导入transforms from torchvision import transforms 作用:图片输入transforms后,可以得到一些预期的变换 1. ...
- hdu 5234
题意:求在不超过k的情况下,最多可以得到多少价值. 三维dp,结合01背包,第三维就是用来保存在不同的背包容量下能得到的最大价值,也就是第三维有很多状态. #include<iostream&g ...
- Skywalking 搭建 nacos 注册中心及mysql 存储的集群架构
本文为博主原创,未经允许不得转载 Skywalking 集群是将skywalking oap作为一个服务注册到nacos上,只要skywalking oap服务没有全部宕机,保证有一个skywalki ...