上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

逻辑复制在数据迁移中的应⽤(22页).pdf

编号:86240 PDF 22页 1.90MB 下载积分:VIP专享
下载报告请您先登录!

逻辑复制在数据迁移中的应⽤(22页).pdf

1、逻辑复制在数据迁移中的应艾超 腾讯云级程师逻辑复制概念和演进逻辑复制的功能和演进历史逻辑复制原理详解快照读、复制槽、解码插件、发布/订阅数据迁移应场景详解真实世界的应场景和解决案挑战和应对安全性、碎化、跟随社区CONTENT数据迁移应架构应场景和技术架构逻辑复制概念和演进逻辑复制的功能和演进历史逻辑复制(Logical Replication)逻辑复制是PG数据库的种基于数据对象的复制标志(Replica Identity),来复制数据对象及数据变化的法。之所以称为“逻辑”复制,是为了和“物理”复制加以区分。PostgreSQL持两种复制机制,物理复制使准确的块地址以及逐字节的复制式,逻辑复制

2、则允许在数据复制和安全性上更细粒度的控制。逻辑复制(Logical Replication)在9.4及以上、10以下版本,PostgreSQL为DML带来的数据修改流动到外部提供了基础 设施,可来实现复制解决案和审计等的。数据修改以流的形式发出,通过逻辑复 制槽(Replication Slot)识别,配合解码插件(Decoding Plugin),每份数据修改在每个 流中输出有且仅有次。在10及以上版本的逻辑复制使了种发布和订阅模型,发布和订阅可以是多对多的关 系,例如允许有个或者更多订阅者订阅个发布这节点上的个或多个发布。订阅者以与发布者相同的顺序应数据,因此能在个订阅中保证发布的事务致性

3、,这种数据复制的式有时候也被称为事务性复制。9.4以上及10以下版本10及以上版本:发布和订阅数据迁移应架构应场景和技术架构数据迁移的应场景云上的数据迁移产品能够帮助户在业务不停服的前提下轻松完成数据库迁移上云,利实时同步通道轻松构建可的数据库容灾架构,通过数据订阅来满商业数据挖掘、业务异步解耦等场景需求。数据迁移的技术架构迁移原理详解快照读、复制槽、解码插件、发布/订阅复制标识(Replica Identity)复制标识(Replica Identity),是个表级属性,于控制记录被删除或修改时写WAL的内容,只在逻辑复制中效,只能通过ALTER TABLE来修改。少有个列的值在该记录的新旧

4、版本发变化了,才会有记录发。DEFAULT USING INDEXFULL NOTHING(户表上的默认值)在数据变更是将记录主键(如有)列的旧值。数据变更时记录指定索引列的旧值,索引必须是唯键,且不是部分索引(partial index),不可延期(deferrable),并仅包含空列。在数据变更时记录所有列的旧值。在数据变更时不记录任何旧值(系统表上的默认值)。复制槽(Replication Slot)在逻辑复制中,个槽表示段数据变更流,它的顺序与源实例上数据发变化的顺序致,且槽中的每个数据变化不会重复。不同的复制槽之间,消费位点是独记录的,任时刻,个复制槽只能被个客户端消费。快照读(Sn

5、apshot)当两个或更多会话需要查看数据库中相同的内容时,快照同步是必须的。PG允许个事务export它正在使的快照,只要事务保持打开,其他事务可以import它的快照,来保障这些事务看到的数据与第个事务看到的完全相同。创建快照有2种式:1、利CREATE_REPLICATION_SLOT在创建复制槽时 动创建快照,并保证事务致性 2、使系统函数pg_export_snapshot导出快照 在个事务中获得快照的字符串标识后,事务结束前,在其他事务中导快照,从查看完全相同的数据。存量与增量的启动增量开启时:创建连接,创建复制槽,导出快照,记录快照标识。然后开启全量:新创建连接Conn,开启事务

6、,导快照,进数据读取和传输。输出插件(Output Plugins)输出插件将WAL志的内部格式,转换为复制槽的消费者需要的格式。插件的实现上,需要为函数_PG_output_plugin_init提供回调函数。typedef struct OutputPluginCallbacks LogicalDecodeStartupCB startup_cb;LogicalDecodeBeginCB begin_cb;LogicalDecodeChangeCB change_cb;LogicalDecodeCommitCB commit_cb;LogicalDecodeShutdownCB shutd

7、own_cb;OutputPluginCallbacks;typedef void(*LogicalOutputPluginInit)(struct OutputPluginCallbacks*cb);contrib/test_decoding是PG内置个插件实现,对数据变更的值做简单的打印。在此基础上做修改,我们将结构和数值合并为可执的SQL语句,便于直接执回放。发布/订阅需要注意:FOR ALL TABLES的发布需要superuser权限才能执 对于没有主键的源表,依然使DEFAULT复制标识,会导致表不可写 受限于版本,版本10持Insert/Delete/Update,版本11+添加

8、持Truncate DDL变更法动复制 序列法动复制 分区表的表,外表,对象等法动复制在10以上版本,将SLOT的消费和回放封装为了发布订阅,让户免于操作快照读、解码插件、复制槽等系列底层功能,便地获得稳定的全量+增量迁移通道。数据迁移应场景详解真实世界的应场景和解决案数据迁移之络连通性云上数据库为了保证安全性,般情况法让实例直接访问外部络。这样在迁移外部公实例云时,通过逻辑复制,先就会遇到络连通性问题。数据迁移之主键表对于主键(或唯键)的表,1、如果不修改复制标识,将法输出数据变更。2、将Replica Identity设为FULL,将法保证数据致性。实际迁移中,将在预检查中提示户修改表结构

9、,遵循合理的数据库设计规范。否则,因为存在数据不致的险,将重点提示户。数据迁移之DDL动同步逻辑复制在机制上法动同步DDL变更,但我们有其他的式来实现动或半动的DDL同步。1、迁移应动探测源和标端的结构差异,成差异DDL变更标。优点:不需要superuser权限,不需要额外插件安装。缺点:法保证数据的事务致性,只能应较简单的场景。2、使事件触发器追踪表结构变更,并记录张特殊的表,逻辑复制监听该表内容,发现更新即变更到标。优点:可初步保证事务致性。缺点:对源账号有要求,需要superuser权限。3、安装外部插件解析WAL,在Slot中添加DDL信息,原始的逻辑复制 变更标。优点:可保证事务致性

10、,缺点:需要源实例的运维和插件安装权限。挑战和应对安全性、碎化、跟随社区挑战和应对安全性 随着云上数据库技术的不断发展演进,各个商也锤炼出了针对身定制的络安全规则和数据库户权限体系,相较于传统迁移场景的完全复制,我们需要按源和标各的安全规则,来定制迁移策略。例如:在不同商之间迁移,数据库账号权限点不尽相同,考虑到各个商的安全策略,为了顺利完成迁移,就需要对账号权限点做适当裁剪。碎化 PG是个开源、商业友好的数据库,基于PG的数据库发商也常多,在内核架构上也有着的差异性。为了提供更好的服务,我们必须持续对各个发商的产品进适配,给户带来更好的使体验。跟随社区 PG有个强的社区,在社区版本迭代中,会有持续不断的特性变更和演进。以迁移场景为例,社区11版本删除了abstime/reltime/tinterval数据类型,逻辑复制增加了对truncate的持,在社区13版本中逻辑复制增加了对partitioned table的持,因此版本间的迁移链路也需要随之不断迭代。我们将持续跟进社区,和云数据库身内核演进起,做更好的数据迁移解决案。THANKS 谢谢观看

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(逻辑复制在数据迁移中的应⽤(22页).pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部