PostgreSQL复制原理及高可用集群

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 文章来自: 朱贤文 | 成都文武信息技术有限公司 分析

一、PostgreSQL高可用的种类


常用的高可用架构及基本原理

• 共享存储

• 流复制

• 逻辑复制

20210127220355779.png

1.2 流复制


需要注意流复制只能用于主从复制,而逻辑是可以用于主主之间的复制。

  • 主节点可以有多个从节点
  • 从节点上还可以挂载从节点
  • 从节点个数没有明确限制,层级无限制
  • 主从间可以同步复制、可以一步复制,
  • 也可以同步一步混合复制20210127220506446.png

1.3 逻辑复制


  • 所有节点都是对等关系,都可读写
  • 所有节点可以是发布节点,订阅节点
  • 也可以同时是发布节点和订阅节点

20210127220711680.png

1.4 流复制的工作原理


当有订阅者订阅主节点时,fork一个子进程,通过发送WAL的方式也就是发送redo的方式同步,效率较高。postgresql 从9.0 开始支持流复制(Streaming Replication).


通过流复制技术,可以从实例级复制出一个与主库一模一样的从库(也称之为备库) 。 举个简单的例子,在主机 pghost1 上创建了一个 PostgreSQL 实例,并在实例上创建多个数据

库,通过流复制技术可以在另外一台主机如 pghost2 上创建一个热备只读 PostgreSQL 实例,我们通常将 pghost1 上的数据库称为主库( Primary Database 或 Master ) , pghost2 上的

数据库称为备库( Standby Database 或 Slav时, pghost1称为 主节点, pghost2 称为备节点 。


流复制同步方式有同步、异步两种,


如果主节点和备节点不是很忙,通常异步模式

下备库和主库的延迟时间能控制在毫秒级.


流程图如下图: 20210127220753399.png

1.4.1 以一次commit为例子


当有数据commit时,执行器Executor 会将数据从WAL buffer写入WAL文件中。


通过sender 发送到从数据端。从端则将WAL日志应用到数据库文件data file(在heap上因此也成为head表).


从库的执行器就可以读到同步过来的数据.20210127221326877.png

1.5 流复制实战


 

 

 

 

 

 

、逻辑复制


 

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
50 3
|
2月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
48 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
89 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
41 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
50 0
|
2月前
|
SQL 关系型数据库 MySQL
mysql集群方案
mysql集群方案
43 0
|
4月前
|
运维 监控 关系型数据库
【一文搞懂PGSQL】7. PostgreSQL + repmgr + witness 高可用架构
该文档介绍了如何构建基于PostgreSQL的高可用架构,利用repmgr进行集群管理和故障转移,并引入witness节点增强网络故障检测能力。repmgr是一款轻量级的开源工具,支持一键部署、自动故障转移及分布式节点管理。文档详细描述了环境搭建步骤,包括配置postgresql参数、安装与配置repmgr、注册集群节点以及配置witness节点等。此外,还提供了故障手动与自动切换的方法及常用命令,确保集群稳定运行。
|
4月前
|
负载均衡 算法 关系型数据库
MySQL集群如何实现负载均衡?
【8月更文挑战第16天】MySQL集群如何实现负载均衡?
211 6
|
4月前
|
存储 负载均衡 关系型数据库
MySQL集群
【8月更文挑战第16天】MySQL集群
50 5
|
4月前
|
SQL 负载均衡 关系型数据库
*配置MySQL集群
【8月更文挑战第16天】*配置MySQL集群
71 2