简评ORACLE/MYSQL/PG的逻辑复制

postgresql逻辑复制

​​​​在这里插入图片描述
(https://www.pgconf.asia/JA/2017/wp-content/uploads/sites/2/2017/12/D2-A7-EN.pdf)

PostgreSQL把所有逻辑解析相关的事情全部放在数据库中的复制槽进行管理,大包大揽。早期版本的逻辑复制支持的还不太好,近期的几个大版本中,逻辑复制是主要的功能提升之一。
PG方案的优势:

  • 非常灵活,把逻辑解码接口提供给用户,有多种类的解析方式
  • 用户可根据需求订阅所需要的数据

PG方案的劣势:

  • 知识点多学习成本相对MYSQL要高很多。仅仅是基础知识点:发布、订阅、walsender、复制槽、output plugin等等,我相信很多人没有弄明白他们概念和关系
  • 干最累的活挨最毒的打。逻辑解析的问题全部暴露在数据库中,wal积压、大事物、长事务、reorder事务排序、权限问题、流式传输等等都是PG要考虑的问题

mysql的binlog

在这里插入图片描述
(https://blog.fasterinfo.top/6243.html)

mysql把所有解析出来的逻辑数据放在本地——binlog文件中,方案简单。mysql的binlog约等于PostgreSQL开启全表逻辑复制并写入本地
MYSQL方案的优势:

  • 简单粗暴,mysql不把逻辑解码接口直接暴露给用户,而是把已解析出来的文件直接给到用户,用户不需要关心怎么解析的,直接读binlog文件即可
  • 生态成熟。个人认为mysql生态成熟跟binlog有较大关系,在互联网时代PG的逻辑复制还很弱,而binlog十分简单,下游解析binlog把数据放到其他平台已成为一种常见方案

MYSQL方案的劣势:

  • 数据必须全部解析,不可定制化订阅数据,灵活性差
  • 两阶段提交。由于mysql主从强依赖binlog,又导致binlog数据在提交的时候必须全部落盘到binlog file,一次提交必须写两份(或者两种)日志——binlog和redolog,日志双写是mysql永恒的痛点之一。

oracle的逻辑复制

在这里插入图片描述
(https://www.oracle-scn.com/oracle-goldengate-integrated-capture/)

oracle本身是有逻辑DG的功能的,但基本上没见有人用过,这里只聊logminer 。oracle数据库本身提供了logminer这样的接口来解析日志(如OGG集成模式),逻辑复制链路管理本身完全没有,依赖第三方工具来创建和管理复制链路
ORACLE方案的优势:

  • 只提供解析接口,没有复制链路管理,对于数据库本身来说非常省心
  • 充值就有方案。把强大的OGG直接买下来,不要说我ORACLE没有提供逻辑复制解决方案,我们不仅有,而且很强大、认可度高。

ORACLE方案的劣势:

  • 依赖第三方软件管理复制链路

总之,PG的逻辑复制是大包大揽什么都做,非常有开源精神、技术精神。MYSQL的方案简单粗暴但好用,有点“一步到位”的意思。ORACLE属于给个接口后就什么都不管,全部给第三方管理,但对于客户来说是有成熟的解决方案的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/502086.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ICML23 - Synthetic Data for Model Selection

前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 本文关注的问题为:是否可以使用合成数据(Synthetic Data)用于模型选择?即不…

LeetCode383. 赎金信(C++)

LeetCode383. 赎金信 题目链接代码 题目链接 https://leetcode.cn/problems/ransom-note/description/ 代码 class Solution { public:bool canConstruct(string ransomNote, string magazine) {int record[26] {0};if(ransomNote.size() > magazine.size()) return fa…

浅析扩散模型与图像生成【应用篇】(四)——Palette

4. Palette: Image-to-Image Diffusion Models 该文提出一种基于扩散模型的通用图像转换(Image-to-Image Translation)模型——Palette,可用于图像着色,图像修复,图像补全和JPEG图像恢复等多种转换任务。Palette是一种…

【Web自动化测试——代码篇十二】自动化测试模型——数据驱动测试和关键字驱动测试

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

基于springboot+vue的可盈保险合同管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

python实现常见一元随机变量的概率分布

一. 随机变量 随机变量是一个从样本空间 Ω \Omega Ω到实数空间 R R R的函数,比如随机变量 X X X可以表示投骰子的点数。随机变量一般可以分为两类: 离散型随机变量:随机变量的取值为有限个。连续型随机变量:随机变量的取值是连…

vue-router4 (六) 路由嵌套

应用场景: ①比如京东页面的首页、购物车、我的按钮,可以点击切换到对应的页面; ② 比如 Ant Design左侧这些按钮点击就会切到对应的页面,此时可以把左侧按钮放在父路由中,右侧的子路由 1.路由配置,子路由…

蓝桥杯算法题汇总

一.线性表:链式 例题:旋转链表 二.栈: 例题:行星碰撞问题 三.队列 三.数组和矩阵 例题:

Docsify部署IIS

什么是Docsify? 一个神奇的文档网站生成器。docsify 可以快速帮你生成文档网站。不同于 GitBook、Hexo 的地方是它不会生成静态的 .html 文件,所有转换工作都是在运行时。如果你想要开始使用它,只需要创建一个 index.html 就可以开始编写文档…

MYSQL--锁机制*

一.对锁机制的大概介绍: 1.大概的来说,MYSQL当中的锁实际上就是合理的管理多个服务器对于同一个共享资源的使用,是计算机协调多个进程或者是线程并发访问某一资源的机制(避免争抢资源的现象发生) 2.在数据库当中,数据是一种可以供许多的用户进行共享使用的资源,如何保证数据并发…

Python环境搭建:一站式指南

在当前AIGC技术蓬勃发展的背景下,Python作为人工智能领域最受青睐的编程语言之一,成为我们必须掌握的技能。因此,搭建一个适合自己的Python环境成为了每个Python开发者的首要任务。本文将为您提供一站式的Python环境搭建指南,帮助…

WSL2部署RV1126 SDK编译环境

1 下载RV1126 SDK 在 Firefly | 让科技更简单,让生活更智能 下载REPO_SDK 这里将SDK下载到了F:\SDK 2 解压SDK到WSL2 tar -xvf /mnt/f/SDK/rv1126_rv1109_linux_release_20211022.tgz 3 编译依赖安装 gcc、g版本依赖安装 sudo apt-get install lib32gcc-7-dev g-7 l…