PostgreSQL 复制原理及高可用集群(二)|学习笔记

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 快速学习 PostgreSQL 复制原理及高可用集群(二)

开发者学堂课程【PostgreSQL 实战进阶 PostgreSQL 复制原理及高可用集群(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/112/detail/1909


PostgreSQL 复制原理及高可用集群(二)

 

内容介绍:

一、PostgreSQL 高可用

二、PostgreSQL 流复制

三、PostgreSQL 逻辑复制

四、PostgreSQL 高可用集群

五、演示环节

三、PostgreSQL 逻辑复制:

那下来就是逻辑复制,这里面有个概念就是发布者和订阅者。Publisher和subscriber,主端如果是要通过逻辑复制,首先他要进行一些定义,就是配置文件里面有日志级别,要把它设置成为 logical,之后就可以去定义 publisher, publisher 传输的这个通道还是用的 Sender 和 Receiver,

 image.png

这个就是一个很简单的逻辑复制搭建的一个流程,首先在发布端首先确保WAL_LEVEL=Logical。确保逻辑复制可以正常工作,通过 pg_hba.conf 来设置正常需要的权限,设置完成之后,就可以到数据库里面去进行 publication 的定义,比如在这里定义 publication 的名字,叫 insert_only,名为 mydata 的 TABLE,可以给他定一个权限,就是 WIEH(pubblish=’insert’);这个时候对于这张表里面他只会去发布insert这样的操作,他不会往外面发送,然后可以通过publish关键词里面定义多个行为,可以用 insert,delete,当这个命令执行完之后,publisher 就已经做完了,就设置这个订阅端,就是通过 CREATE SUBSCRIPTION,mysub 是他的名字,然后要跟一个连接串,连接串就直接去定义到比如是哪台主机,哪个端口,用户是什么,哪个数据库。有了连接串之后。Publication 用哪一个,因为这边定义的就用它对应的名字写上去,那就可以收消息,在主端做一个什么事情,在从端马上就可以搜得到。以上就是逻辑复制的一些内容。

image.png

 

四、PostgreSQL 高可用集群:

常用的集群,ECOX 是一个专门为流复制设计的一个高可用集群,有一个仲裁集群,就是为了避免单点故障导致他误判,仲裁集群可以管很多个 Postgre 集群,在这个集群内部主从切换全都是自动的,这边有一个简单截屏。就 ecoxd-help,这个例子里面现在是12,有三个节点,节点的 IP 的端口是不是在线,comaster 就是跟 master 保持同步复制的一个节点,最后的 sync master 是谁,他同步的节点是谁。这个系统目前是支持原生的 Postgre,支持自己的数据库,

 image.png

另外把 ECOX 做到了自己的云平台里面,支持 PostgreSQL,其实做 PostgreSQL 的高可用开源的版本也比较多。

image.png

 

五、演示:

输入 su -postgres,切换到 PostgreSQL 这个用户下面来,可以用 ECOX。在配置好ECOX,直接就可以用 starts top 来启动这个集群,只要启动起来之后,所有的任务全都是 ECOX 来做,是全自动的。现在这个环境已经配置好了,只需要来看当前有哪些东西,输入 ecoxd show cluster,如下图就是刚才做的。

 image.png

比如停掉一个节点,当前这个要停掉,可以用 ECOXD 就停掉了。输入 ecoxd stop,输入 ecoxd show cluster

 image.png

新的 master 就变到这里来了,然后再把它启动起来,输入 ecoxd start,输入 ecoxd show cluster,

 image.png

现在在线,里面设定最新的 master,就是原来切换到这一个,然后 comaster 是同步节点,这个星号表示当前在里面是哪一个节点,这是一个环境。

另外可以看 RDS 的环境。RDS 是部署在用户的使用环境里面的,就直接可以用我们的产品直接来建,这是一个环境,进来之后,有 RDS,RDS 里面支持 Oracle。

 image.png

然后在这个里面,现在已经没有环境,但是打开一个可以看得见。可以自动的让他启动或者是停止,因为这个是环境没有了,通过这个来创建集群,直接创建就好。

 image.png

所有东西选择完成,可以同步加很多节点,放在哪里随便选一个,那这样就可以创建很多,根据业务需需要可以创建很多东西。选一个数据库的版本,然后它就会自动创建,因为为了保证可靠性,一个物理节点只能创建一个逻辑节点。然后就可以在上面去创建,创建完了之后。就有一个对外可以用的,而且是带集群功能的PostgreSQL。

 image.png

可以通过页面的方式来创建集群做一些定义。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
NoSQL Redis UED
揭秘!Flask如何携手Celery,让异步任务处理不再是难题,打造极速响应的Web应用新纪元!
【8月更文挑战第31天】在Web开发中,Flask与Celery的结合为异步任务处理提供了强大支持。Flask作为轻量级Web框架,以其简洁灵活著称;而Celery则是一个分布式任务队列系统,擅长处理耗时任务。二者结合,Flask专注于处理Web请求,Celery则在后台异步执行复杂任务,如发送邮件或调用外部API。这种方式不仅提升了应用性能和响应速度,还优化了用户体验。下面的示例展示了如何在Flask应用中集成Celery以实现异步任务处理。
780 0
|
SQL 监控 数据库
如何解决 SQL Server 占用内存过多问题
SQL Server 占用过多内存会导致响应缓慢和查询性能低下。解决流程包括:1) 查看内存使用情况,2) 分析各数据库内存占用,3) 优化 SQL Server 配置(如限制最大内存),4) 优化查询(如创建索引),5) 持续监控效果。通过这些步骤可有效控制内存占用,提升系统性能。
1401 0
|
关系型数据库 API 数据库
基于Patroni的PostgreSQL高可用环境部署
在部署PostgreSQL到生产环境中时,选择适合的高可用方案是一项必不可少的工作。本文介绍基于Patroni的PostgreSQL高可用的部署方法,供大家参考。
8291 153
|
关系型数据库 MySQL 应用服务中间件
使用docker搭建nacos集群
使用docker搭建nacos集群
2223 1
使用docker搭建nacos集群
|
存储 安全 前端开发
session超时详解
session超时详解
|
弹性计算 NoSQL MongoDB
用云服务器ECS玩转Leanote个人云笔记
本教程将介绍如何搭建个人Leanote云笔记。
149959 7
|
存储 Java 数据库
Spring Boot中的动态数据源切换
Spring Boot中的动态数据源切换
|
存储 负载均衡 安全
MQTT常见问题之MQTT使用共享订阅失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
SQL 安全 关系型数据库
一图读懂阿里云RDS架构与选型
阿里云数据库RDS也发布了很多新的特性与能力,包括RDS集群版、Serverless、ARM支持等,另外,之前的版本也缺少了数据库代理,云盘类型等。这里一并进行更新,发布了新的v2版本。
1652 1
一图读懂阿里云RDS架构与选型

热门文章

最新文章