【PostgreSQL 创新营】第六课:PostgreSQL复制原理及高可用集群 答疑汇总

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 【PostgreSQL 创新营】第六课:PostgreSQL复制原理及高可用集群 答疑汇总

Q1:刘海清,如何在从库备份,选择什么软件或者命令
1)生产建议使用从库进行备份。数据备份的方式有:pg_dump、pg_dumpall、pg_rman、barman、pg_basebackup等
2)日志备份可以通过:从库设置archive_mode = always方式实现日志记录。linux平台下可每日定时tar + rsync备份到远端

Q2:两个数据库如何实现增量同步?有更新逻辑时如何处理?
1)增量同步的方式有:
物理同步:基于流复制协议,将增量的redo回放到从库。如有更新逻辑,会将对应的redo回放,更新对应buffer
逻辑同步:同步模式设置为:logical。可使用内置的逻辑复制方式,即发布端创建PUBLICATION,订阅端创建SUBSCRIPTION。当然也可以使用wal2json等插件
2)物理同步是整库的复制,类似oracle的DG。逻辑复制可以针对具体表等
3)使用逻辑同步时建议表均有主键,以实现更好的性能

Q3:PG如何做基于流复制的跨数据中心(跨子网)自动故障转移解决方案,要求对应用透明,不用改连接串
1)跨数据中心想实现应用透明,不改连接串。通常应用访问DNS域名,具体解析到那个数据中心由高可用去判断
2)跨数据中心的自动故障转移方案:使用partoni(推荐)、pg_auto_failover

Q4:pg 9.4有这个逻辑复制订阅功能吗?
有,从PG 9.4开始的

Q5:PG如何从WAL日志解析出具体SQL?有什么好的工具推荐吗?
可以使用wal2json、alidecode、pgoutput、decoderbufs等

Q6:PG中,业务误操作后快速闪回具体某张表的某些操作?
开源版暂时没有闪回功能。可以基于流复制搭建专门的从库用于误操作恢复(基于时间点恢复),有快照可以加快恢复速度

Q7:PG的流复制在备库应用日志时,是直接修改数据文件的物理块吗?不用翻译成SQL重跑
物理复制不需要

Q8:刚老师讲的partoni做高可用可能会丢数据是在什么场景下?
建议从数据库端实现数据的一致性保障!

Q9:ECOX开源吗?
商业系统,可自行下载测试:https://w3.ww-it.cn/Fileud/lists/cate_id/30

Q10:siupan,pg_auto_failover是否可用于生产环境?
建议复查代码逻辑

Q11:repmgr里面的witness什么场景下必须用?没有好像也影响不大
通常用于仲裁节点,建议核查文档

Q12:pg的日志数据解析工具有么,支持kafka,或者直接到clickhouse类数仓的
1)日志解析:logical 模式plugin解析redo log

2)同步依赖CDC工具,详见:
正确的配置和使用 Debezium CDC 捕获、同步 PG 逻辑增量数据
https://github.com/digoal/blog/blob/master/202011/20201127_02.md

Q13:请问下从库的统计信息都是为零的,在从库执行计划是怎么生产的,会参考主库的统计信息吗?
1)正常情况下从库也是有统计信息的
2)可以核查是否是基于规则的,或者硬版本

Q14:PG可以用这个逻辑复制订阅功能吗?
理论上内核为PG 9.4以后的支持,详见GP文档官方文档

Q15:请问流复制一个主节点支持多少个从节点?
1)受限于max_wal_senders参数配置
2)受限于具体的硬件可用资源

Q16:个人在实现WAL逻辑复制工具时,通过创建复制槽时,获取快照,然后根据快照实现一些业务操作,但在业务操作出错时,如果获取先前的快照 名称,看文档上创建复制槽时的快照 仅在当时有效,再连接就获取不到了,请问有什么解决方案?
1)逻辑复制槽是全局的,与是否当前会话无关
2)快照可以export导出给其他会话。例如:备份数据。可当前启动事务并创建快照,然后创建逻辑复制槽,其他会话可正常使用该逻辑复制槽。当前会话导出全量数据。从而全量+增量备份

Q17:pg的从库 能支持延时从库么
支持的。可以在recovery.conf添加参数,例:recovery_min_apply_delay = '48h'

Q18:pg页内组织tuple,是不是很容易在页间移数据?
是的。如进行垃圾回收,会挪动组内tuple。详解可观看视频答疑

Q19:pg加索引可以加参数不锁表,加列可以不锁表吗
1)正常情况下(不需要rewrite table),加列是当即生效的。这个也是有区别于MySQL的
2)建议业务时间段内频繁使用的大表,选定闲时做加列操作

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
4天前
|
负载均衡 算法 关系型数据库
MySQL集群如何实现负载均衡?
【8月更文挑战第16天】MySQL集群如何实现负载均衡?
21 6
|
4天前
|
存储 负载均衡 关系型数据库
MySQL集群
【8月更文挑战第16天】MySQL集群
16 5
|
4天前
|
SQL 负载均衡 关系型数据库
*配置MySQL集群
【8月更文挑战第16天】*配置MySQL集群
12 2
|
3天前
|
存储 SQL 关系型数据库
深入MySQL锁机制:原理、死锁解决及Java防范技巧
深入MySQL锁机制:原理、死锁解决及Java防范技巧
|
8天前
|
SQL 关系型数据库 MySQL
Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置
Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置
26 1
|
19天前
|
存储 SQL 关系型数据库
(六)MySQL索引原理篇:深入数据库底层揭开索引机制的神秘面纱!
《索引原理篇》它现在终于来了!但对于索引原理及底层实现,相信大家多多少少都有了解过,毕竟这也是面试过程中出现次数较为频繁的一个技术点。在本文中就来一窥`MySQL`索引底层的神秘面纱!
|
19天前
|
SQL canal 关系型数据库
(二十四)全解MySQL之主从篇:死磕主从复制中数据同步原理与优化
兜兜转转,经过《全解MySQL专栏》前面二十多篇的内容讲解后,基本对MySQL单机模式下的各方面进阶知识做了详细阐述,同时在前面的《分库分表概念篇》、《分库分表隐患篇》两章中也首次提到了数据库的一些高可用方案,但前两章大多属于方法论,并未涵盖真正的实操过程。接下来的内容,会以目前这章作为分割点,开启MySQL高可用方案的落地实践分享的新章程!
116 1
|
19天前
|
SQL 关系型数据库 MySQL
(七)MySQL事务篇:ACID原则、事务隔离级别及事务机制原理剖析
众所周知,MySQL数据库的核心功能就是存储数据,通常是整个业务系统中最重要的一层,可谓是整个系统的“大本营”,因此只要MySQL存在些许隐患问题,对于整个系统而言都是致命的。
|
19天前
|
SQL 算法 关系型数据库
(十)全解MySQL之死锁问题分析、事务隔离与锁机制的底层原理剖析
经过《MySQL锁机制》、《MySQL-MVCC机制》两篇后,咱们已经大致了解MySQL中处理并发事务的手段,不过对于锁机制、MVCC机制都并未与之前说到的《MySQL事务机制》产生关联关系,同时对于MySQL锁机制的实现原理也未曾剖析,因此本篇作为事务、锁、MVCC这三者的汇总篇,会在本章中补全之前空缺的一些细节,同时也会将锁、MVCC机制与事务机制之间的关系彻底理清楚。
|
1天前
|
canal 关系型数据库 MySQL
"揭秘阿里数据同步黑科技Canal:从原理到实战,手把手教你玩转MySQL数据秒级同步,让你的数据处理能力瞬间飙升,成为技术界的新晋网红!"
【8月更文挑战第18天】Canal是一款由阿里巴巴开源的高性能数据同步系统,它通过解析MySQL的增量日志(Binlog),提供低延迟、可靠的数据订阅和消费功能。Canal模拟MySQL Slave与Master间的交互协议来接收并解析Binary Log,支持数据的增量同步。配置简单直观,包括Server和Instance两层配置。在实战中,Canal可用于数据库镜像、实时备份等多种场景,通过集成Canal Client可实现数据的消费和处理,如更新缓存或写入消息队列。
20 0

相关产品

  • 云原生数据库 PolarDB
  • 云数据库 RDS PostgreSQL 版