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数据库异步流复制的更多相关文章

  1. postgresql数据库异步流复制hot standby环境搭建

    生命不息,test不止. 最近组里面修改了几个postgresql的bug,要进行回归测试,除了前面提到的WAL的RT测试和Mirroring Controller的RT测试,还要测试下postgre ...

  2. PgSQL · 特性分析 · PG主备流复制机制

    原文地址:http://mysql.taobao.org/monthly/2015/10/04/ PostgreSQL在9.0之后引入了主备流复制机制,通过流复制,备库不断的从主库同步相应的数据,并在 ...

  3. Postgressql高可用(pgpool+异步流复制)

    文档结构: 由于博主之前是Oracle dba,oracle 高可用一般是rac,以及搭建ADG,一个是基于实例的高可用,一个是基于数据的容灾,甚至也有rac+adg的方式.Postgres有同步和异 ...

  4. postgresql 异步流复制hot standby搭建

    先说说环境,主从库版本都是9.5,主库在CentOS物理机上,从库在Ubuntu虚拟机上 一.主库上的操作: 1.添加同步访问规则: host   replication     dbuser     ...

  5. Postgresql 9.6 搭建 异步流复制 和 同步流复制 详细教程

    Basic Replication If you’re feeling overwhelmed, try setting up a slave to see how easy it is! We’ll ...

  6. PostgreSQL异步主从流复制搭建

    1 总体规划   Master库 Slave库 操作系统 CentOS Linux release 7.5.1804 CentOS Linux release 7.5.1804 处理器 1 1 内存 ...

  7. PostgreSQL流复制

    原理机制 参考--https://yq.aliyun.com/articles/51009 主备总体结构 PG主备流复制的核心部分由walsender,walreceiver和startup三个进程组 ...

  8. 再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署

    前言 在MySQL被收购之后,虽然有其替代品为: MariaDB,但是总感觉心里有点膈应.大家发现了另一款开源的数据库: PostgreSQL. 虽然centos自带版本9.2也可以用,但是最近的几次 ...

  9. PostgreSQL流复制记录

    参考了别人的部分,添加了自己在实践中的内容,仅做记录. 1.同步流复制中 主机操作 1.1postgresql.conf wal_level = hot_standby # 这个是设置主为wal的主机 ...

  10. PostgreSQL主备流复制机制

    原文出处 http://mysql.taobao.org/monthly/2015/10/04/ PostgreSQL在9.0之后引入了主备流复制机制,通过流复制,备库不断的从主库同步相应的数据,并在 ...

随机推荐

  1. 用100W+行代码贡献经验,带你了解如何参与OpenHarmony开源

    摘要:截至2022年11月,深开鸿共计参与共建OpenAtom OpenHarmony(以下简称OpenHarmony)社区16个SIG,其中4个为深开鸿主导,并累计贡献代码量超过百万行. 本文分享自 ...

  2. 标准物模型:设备无缝对接,IOT界的福音

    摘要:信息模型是解决IoT产业发展一系列挑战的关键,在信息模型的基础上可以推进行业标准/架构的统一,进而实现产业链生态的协同. 本文分享自华为云社区<[云驻共创]标准物模型,物联网的福音> ...

  3. 云小课 | 华为云KYON之ELB混合负载均衡

    摘要:本文介绍在华为云KYON(Keep Your Own Network)企业级云网络解决方案中,弹性负载均衡服务提供混合负载均衡功能,支持使用公有云的负载均衡绑定华为云上和IDC,实现云上云下业务 ...

  4. 浏览器层面优化前端性能(2):Reader引擎线程与模块分析优化点

    Reader 引擎线程与模块分析 首先是网页内容,加载完输入到HTML解释器,解释后构成DOM树,这期间如果遇到JavaScript代码就交给JavaScript引擎去处理,如果网页中包含CSS,就交 ...

  5. 企业需要知道的5个 IAM 最佳实践

    在之前的文章中,我们了解了在代码发布到 GitHub 之前如何管理用户权限.但你知道吗?人为错误竟然是迄今为止数据泄露的主要原因!根据统计,高达95%的数据泄露是由配置错误和不良网络环境引起的.黑客通 ...

  6. 一文了解 DataLeap 中的 Notebook

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 概述 Notebook 是一种支持 REPL 模式的开发环境.所谓「REPL」,即「读取-求值-输出」循环:输入一 ...

  7. 电商流量分析怎么做?试试这款数据工具 DataLeap!

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 作为成熟的电商模式,货架场景可以让商家以更低的门槛入驻,让消费者完成更高销量的购买和复购. 在这一场景下,运营人员 ...

  8. Windows 资源管理器 CPU100%

    Windows 资源管理器 CPU100% win + R打开运行框并输出:services.msc 点击确定打开服务:将服务中的Problem Reports Control Panel Suppo ...

  9. Redis 缓存性能实践及总结

    一.前言 在互联网应用中,缓存成为高并发架构的关键组件.这篇博客主要介绍缓存使用的典型场景.实操案例分析.Redis使用规范及常规 Redis 监控. 二.常见缓存对比 常见的缓存方案,有本地缓存,包 ...

  10. Spring的@Async使用防坑

    很多人会直接只用@Async来执行异步操作.但是这里面有一个问题,如果都是用spring的默认实现,是有坑的. 当我们开启 EnableAsync 只有就使用Async来执行异步操作了. 走JDK的动 ...