openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述

news2025/1/11 22:38:00

文章目录

    • openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述
      • 177.1 功能描述
      • 177.2 注意事项
      • 177.3 性能

openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述

177.1 功能描述

openGauss对数据复制能力的支持情况为:

支持通过数据迁移工具定期向异构数据库(如Oracle等)进行数据同步,不具备实时数据复制能力。不足以支撑与异构数据库间并网运行实时数据同步的诉求。

openGauss提供了逻辑解码功能,通过反解xlog的方式生成逻辑日志。目标数据库解析逻辑日志以实时进行数据复制。具体如图1所示。逻辑复制降低了对目标数据库的形态限制,支持异构数据库、同构异形数据库对数据的同步,支持目标库进行数据同步期间的数据可读写,数据同步时延低。

图 1 逻辑复制
逻辑复制

逻辑复制由两部分组成:逻辑解码和数据复制。逻辑解码会输出以事务为单位组织的逻辑日志。业务或数据库中间件将会对逻辑日志进行解析并最终实现数据复制。openGauss当前只提供逻辑解码功能,因此本章节只涉及逻辑解码的说明。

逻辑解码为逻辑复制提供事务解码的基础能力,openGauss使用SQL函数接口进行逻辑解码。此方法调用方便,不需使用工具,对接外部工具接口也比较清晰,不需要额外适配。

由于逻辑日志是以事务为单位的,在事务提交后才能输出,且逻辑解码是由用户驱动的;因此为了防止事务开始时的xlog被系统回收,或所需的事务信息被VACUUM回收,openGauss使用了逻辑复制槽,用于阻塞xlog的回收。

一个逻辑复制槽表示一个更改流,这些更改可以在其它数据库中以它们在原数据库上产生的顺序被重放。逻辑复制槽,由每个逻辑日志的获取者维护一个。

177.2 注意事项

  • 不支持DDL语句解码,在执行特定的DDL语句(例如普通表truncate或分区表exchange)时,可能造成解码数据丢失。
  • 不支持列存、数据页复制的解码。
  • 不支持级联备机进行逻辑解码。
  • 当执行DDL语句(如alter table)后,该DDL语句前尚未解码的物理日志可能会丢失。
  • 单条元组大小不超过1GB,考虑解码结果可能大于插入数据,因此建议单条元组大小不超过500MB。
  • openGauss支持解码的数据类型为:INTEGER、BIGINT、SMALLINT、TINYINT、SERIAL、SMALLSERIAL、BIGSERIAL、FLOAT、DOUBLE PRECISION、DATE、TIME[WITHOUT TIME ZONE]、TIMESTAMP[WITHOUT TIME ZONE]、CHAR(n)、VARCHAR(n)、TEXT。
  • 如果需要ssl连接需要保证前置设置GUC参数ssl=on。
  • 逻辑复制槽名称必须小于64个字符,且只包含小写字母、数字或者下划线中的一种或几种。
  • 当前逻辑复制不支持MOT特性。
  • 当逻辑复制槽所在数据库被删除后,这些复制槽变为不可用状态,需要用户手动删除。
  • 仅支持utf-8字符集。
  • 对多库的解码需要分别在库内创建流复制槽并开始解码,每个库的解码都需要单独扫一遍日志。
  • 不支持强起,强起后需要重新全量导出数据。
  • 备机解码时,switchover和failover时可能出现解码数据变多,需用户手动过滤。Qurem协议下,switchover和failover选择升主的备机,需要与当前主机日志同步。
  • 不允许主备,多个备机同时使用同一个复制槽解码,否则会产生数据不一致。
  • 只支持主机创建删除复制槽。
  • 数据库故障重启或逻辑复制进程重启后,解码数据存在重复,用户需自己过滤。
  • 计算机内核故障后,解码存在乱码,需手动或自动过滤。
  • 当前备机逻辑解码,不支持开启极致RTO。
  • 请确保在创建逻辑复制槽过程中长事务未启动,启动长事务会阻塞逻辑复制槽的创建。
  • 不支持interval partition表复制。
  • 不支持全局临时表。
  • 在事务中执行DDL语句后,该DDL语句与之后的语句不会被解码。
  • 如需进行备机解码,需在对应主机上设置guc参数enable_slot_log = on。
  • 禁止在使用逻辑复制槽时在其他节点对该复制槽进行操作,删除复制槽进行的操作需在该复制槽停止解码后执行。
  • 在开启逻辑复制的场景下,如需创建包含系统列的主键索引,必须将该表的REPLICA IDENTITY属性设置为FULL或是使用USING INDEX指定不包含系统列的、唯一的、非局部的、不可延迟的、仅包括标记为NOT NULL的列的索引。

177.3 性能

在Benchmarksql-5.0的100warehouse场景下,采用pg_logical_slot_get_changes时:

  • 单次解码数据量4K行(对应约5MB~10MB日志),解码性能0.3MB/s~0.5 MB/s 。
  • 单次解码数据量32K行(对应约40MB~80MB日志),解码性能3MB/s~5MB/s 。
  • 单次解码数据量256K行(对应约320MB~640MB日志),解码性能3MB/s~5MB/s 。
  • 单次解码数据量再增大,解码性能无明显提升。

如果采用pg_logical_slot_peek_changes + pg_replication_slot_advance 方式,解码性能相比采用pg_logical_slot_get_changes时要下降30%~50%。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

img

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统学习Python——装饰器:函数装饰器-[装饰器状态保持方案:外层作用域和全局变量]

分类目录:《系统学习Python》总目录 闭包函数(带有外围def作用域引用和嵌套的def)常常可以实现相同的效果,特别是用于像被装饰的最初咱数这样的静态数据时。然而在下面这个例子中,我们也需要外层作用域中的一个计数器&…

【教学类-43-04】20231229 N宫格数独4.0(n=2,4,6,8) (ChatGPT AI对话大师生成 回溯算法)

作品展示: 背景需求: 幼儿表示自己适合做5宫格 第一次AI生成九宫格数独python代码 【教学类-43-03】20231229 N宫格数独3.0(n1、2、3、4、6、8、9) (ChatGPT AI对话大师生成)-CSDN博客文章浏览阅读162次&…

【mysql】—— 表的内连和外连

在MySQL中,内连(INNER JOIN)和外连(OUTER JOIN)是用于联接多个表的操作。接下来,我分别给大家介绍下二者。 目录 (一)内连接 1、什么叫内连接 2、语法格式 3、案例:显…

Java注解之@Autowired,一文掌握@Autowired注解知识(3)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

CSS 缩减顶部

<template><!-- mouseenter"startAnimation" 表示在鼠标进入元素时触发 startAnimation 方法。mouseleave"stopAnimation" 表示在鼠标离开元素时触发 stopAnimation 方法。 --><!-- 容器元素 --><div class"container" mou…

Java InputStream OutputStream

OutputStream 轉 InputStream Case 1 toByteArray ByteArrayOutputStream out new ByteArrayOutputStream(); new ByteArrayInputStream(out.toByteArray()) Case2 從Output字節讀取Input ByteArrayOutputStream out new ByteArrayOutputStream();byte[] bs new byte[…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-6根轨迹Root locus

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-6根轨迹Root locus 1. 根的作用2. 手绘技巧3. 分离点/汇合点&根轨迹的几何性质 1. 根的作用 G ( s ) s 3 s 2 2 s 4 G\left( s \right) \frac{s3}{s^22s4} G(s)s22s4s3​…

Mysql使用Mybatis进行时间操作

MySQL中支持以下日期时间类型&#xff1a; DATE&#xff1a;存储年月日&#xff08;例如&#xff1a;2023-04-05&#xff09;。范围从"1000-01-01"到"9999-12-31" TIME&#xff1a;存储时分秒&#xff08;例如&#xff1a;11:22:22&#xff09;。范围从&q…

如何使用Spoofy检测目标域名是否存在欺骗攻击风险

关于Spoofy Spoofy是一款功能强大的域名安全检测工具&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以轻松检测单个目标域名或域名列表中的域名是否存在遭受欺诈攻击的风险。 该工具基于纯Python开发&#xff0c;可以根据SPF和DMARC记录来检测和判断目标域名是否可…

DS18B20温度检测及其液晶显示

#include<reg51.h> //包含单片机寄存器的头文件 #include<intrins.h> //包含_nop_()函数定义的头文件 unsigned char code digit[10]{"0123456789"}; //定义字符数组显示数字 unsigned char code Str[]{"Test by DS18B20"}; //说明…

【C++干货铺】STL中set和map的介绍和使用

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 序列式容器 关联式容器 键值对 树形结构的关联式容器 set set的介绍 set的使用 set的模板参数列表 set的构造 ​编辑 set的容量 set的删除和查找 mult…

安装ps提示msvcr71.dll丢失的解决方法,全面解析dll问题

当您在安装PS软件时遇到msvcr71.dll丢失的问题&#xff0c;这是因为该文件是某些程序运行必需的。msvcr71.dll主要包含了C运行时库的函数&#xff0c;这些函数主要用于处理字符串、数学运算、内存管理等基本操作。例如&#xff0c;我们在编写程序时&#xff0c;需要对字符串进行…

轻松实现iphone截图传电脑

目录 摘要 引言 用户登录工具和连接设备 生成截图 摘要 本篇博文介绍了克魔助手这款工具&#xff0c;解决了iPhone与Windows系统下图片传输的烦恼。通过连接同一Wi-Fi&#xff0c;使用克魔助手轻松实现了iPhone截图传输到电脑上的便捷操作。用户只需简单地下载并安装克魔助…

跨境外贸获客该怎么做?请掌握这些技巧!

在当今全球化的商业环境中&#xff0c;跨境外贸已经成为许多企业寻求增长和拓展市场的关键途径&#xff0c;然而&#xff0c;与国内市场不同&#xff0c;跨境外贸需要面对语言、文化、法规等多方面的挑战。 如何有效地获取海外客户&#xff0c;成为每个涉足跨境外贸的企业必须…

LabVIEW在电机噪声与振动探测的应用

LabVIEW在电机噪声与振动探测的应用 硬件部分是电机噪声和振动测试分析系统的基础&#xff0c;主要由三大核心组件构成&#xff1a;高灵敏度振动传感器、先进的信号调理电路和高性能数据采集卡。这些设备协同工作&#xff0c;确保了从电机捕获的噪声和振动信号的准确性和可靠性…

分布式锁常见问题及其解决方案

一、为什么要使用分布式锁&#xff1f; 因为在集群下&#xff0c;相当于多个JVM&#xff0c;就相当于多个锁&#xff0c;集群之间锁是没有关联的&#xff0c;会照成锁失效从而导致线程安全问题 分布式锁可以分别通过MySQL、Redis、Zookeeper来进行实现 二、redis分布式锁的实…

PC9094可调电流限制OVP过压过流保护IC超小体积封装

概述&#xff1a; PC9094过电压和过电流保护该器件具有低80mΩ&#xff08;TYP&#xff09;导通电阻集成MOSFET&#xff0c;主动保护低电压 系统的电压供应故障高达29V直流电。输入电压超过过电压阈值将导致内部MOSFET关闭&#xff0c;防止 损坏下游的过大电压设备。过电压保…

鼠标悬浮时光标变成手势

鼠标悬浮变成光标是因为该组件没有添加 style"cursor: pointer"

旋转矩形问题

问题&#xff1a;判断两个旋转矩形是否重叠&#xff08;相交和包含&#xff09; 矩形的坐标是旋转前的坐标&#xff1a; 矩形A(left1,top1,width1,height1,angle1) 矩形B(left2,top2,width2,height2,angle2) 方法1&#xff1a;碰撞检测判断相交 点在多边形内部判断包含 遍历…

单片机开发从小工到专家

有道无术&#xff0c;术尚可求&#xff1b;有术无道&#xff0c;止于术 背景 向单片机嵌入式开发小伙伴推荐了几本书&#xff0c;阅读量破10 1. 适用范围 2. 书籍推荐 书籍推荐 3. 大师介绍 大师介绍 4. 大师书籍编写逻辑 25年大师出版的关于&#xff1a;嵌入式单片…