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之后引入了主备流复制机制,通过流复制,备库不断的从主库同步相应的数据,并在 ...
随机推荐
- 看FusionInsight Spark如何支持JDBCServer的多实例特性
摘要:采用多主实例模式的HA方案,不仅可以规避主备切换服务中断的问题,实现服务不中断或少中断,还可以通过横向扩展集群来提高并发能力. 本文分享自华为云社区<FusionInsight Spark ...
- playwright codegen 录制生成
Generating tests playwright codegen odegen在浏览器中运行并执行操作.Playwright 将为用户交互生成代码.Codegen将查看呈现的页面并找出推荐的定位 ...
- yaml/json/ini 配置读取
ConfigParser 安装 ConfigParser 是解析配置文件的第三方库,须要安装 pip install ConfigParser pip install ConfigParser Con ...
- Mysql--日期,时间相关
一.日期,时间戳格式转换 在数据库中,时间的存储格式一般为时间戳,但这样对于使用人员不太方便,故在查询时可以先转换格式 1.1.FROM_UNIXTIME() 将时间戳转换为日期格式 > sel ...
- vim-修改键盘Tab键为四个空格
在 /etc/vimrc 文件后添加一行 set ts=4
- Codeforce 1335C - Two Teams Composing 统计技能种类数量+统计同一技能最大数量
7 4 2 4 1 4 3 4 统计技能种类数量 4种不同技能 统计同一技能最大数量 技能1(数量1) 技能2(数量1) 技能3(数量1) 技能4(数量4) 选出 技能4(数量4) 作为 第2组 扣除 ...
- [计数dp] 整数划分(模板题+计数dp+完全背包变种题)
计数类 dp 可分为 计数 dp 和数位统计 dp.大多是用来统计方案数什么的,特别强调 不重不漏,在此还是根据各个题的特点将计数 dp 和数位 dp 分开整理.其实数位 dp 的题目会相对多很多- ...
- Educational Codeforces Round 6 620E. New Year Tree(DFS序+线段树)
题目链接:点击打开链接 题意:给你一棵树,编号1~n,告诉你根结点是1. 每次有两个操作: 1,将以v为根的子树的结点全部染成颜色c 2,问以v为根的紫书的结点的颜色种类. 思路:如果这是一条线段的话 ...
- spring管理实务有几种方式
一:事务认识 大家所了解的事务Transaction,它是一些列严密操作动作,要么都操作完成,要么都回滚撤销.Spring事务管理基于底层数据库本身的事务处理机制.数据库事务的基础,是掌握Spring ...
- 体验有礼 | 1 分钟 Serverless 极速部署个人网盘,真网盘真好用!
你想自己搭一个无敌好用的网盘吗? 想 接着看,还有奖品呢! -- 当前,网盘几乎已成为现代人的标配,而市面上的网盘功能.费用各异,让用户们陷入了对比价格和功能的迷阵中.别对比了,动手吧!作为对存储.流 ...