postgresql . 逻辑复制原理与最佳实践

postgresql . 逻辑复制原理与最佳实践

ID:13044596

大小:383.46 KB

页数:28页

时间:2018-07-20

postgresql . 逻辑复制原理与最佳实践_第1页
postgresql . 逻辑复制原理与最佳实践_第2页
postgresql . 逻辑复制原理与最佳实践_第3页
postgresql . 逻辑复制原理与最佳实践_第4页
postgresql . 逻辑复制原理与最佳实践_第5页
资源描述:

《postgresql . 逻辑复制原理与最佳实践》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PostgreSQL10.0逻辑复制原理与最佳实践本文章来自于阿里云云栖社区摘要: 标签PostgreSQL,logicalreplication,逻辑复制,最佳实践背景PostgreSQL从2010年发布的9.0开始支持流式物理复制,备库可以作为只读库打开,提供给用户使用。标签PostgreSQL,logicalreplication,逻辑复制,最佳实践背景PostgreSQL从2010年发布的9.0开始支持流式物理复制,备库可以作为只读库打开,提供给用户使用。物理复制的好处1.物理层面完全一致,这是许多商业数据库的惯用手段。例如Oracle

2、的DG。2.延迟低,事务执行过程中产生REDOrecord,实时的在备库apply,事务结束时,备库立马能见到数据。不论事务多大,都一样。3.物理复制的一致性、可靠性达到了金融级的需求,不必担心数据逻辑层面不一致。但是物理复制要求主备块级完全一致,所以有一些无法覆盖的应用场景,例如备库不仅要只读,还要可写。又比如备库不需要完全和主库一致,只需要复制部分数据,或者备库要从多个数据源复制数据,等等。物理复制无法覆盖的场景1.数据库实例的部分,例如单个数据库或者某些表的复制需求。例如某个游戏业务,账号体系是一套数据库,如果全国各地有多个接入点,全部都

3、连到中心数据库进行认证可能不太科学。那么就希望将登陆需要用到的一些数据表同步到多个数据中心,而不是整个数据库实例。2.数据到达subcriber后,针对不同数据,设置触发器。3.将多个数据库实例的数据,同步到一个目标数据库。例如多个数据库同步到一个大的数据仓库。4.在不同的数据库版本之间,复制数据5.将一个数据库实例的不同数据,复制到不同的目标库。例如省级数据库的数据,按地区划分,分别复制到不同的地区。6.在多个数据库实例之间,共享部分数据。例如某个业务按用户ID哈希,拆分成了8个数据库,但是有些小的维度表,需要在多个数据库之间共享。以上场景是

4、物理复制无法覆盖的。逻辑复制应运而生,实际上,从2014年发布的9.4版本开始,PostgreSQL就支持逻辑复制了,只是一直没有将其引入内核。2017年即将发布的10.0,将会在内核层面支持基于REDO流的逻辑复制。另一个好消息是,你可以针对同一个数据库实例,同时使用逻辑复制和物理复制,因为他们都是基于REDO的。下面我们来看一下逻辑复制的概念、架构、监控、安全、最佳实践。逻辑复制概念PostgreSQL逻辑复制是事务级别的复制,引入了几个概念publication-发布者发布者指数据上游节点,你需要将哪些表发布出去?上游节点需要配置这些东西

5、1.需要将数据库的REDO的wal_level配置为logical。2.需要发布逻辑复制的表,必须配置表的REPLICAIDENTITY,即如何标示老的记录。被复制的表,建议有PK约束。altertabletable_nameREPLICAIDENTITY{DEFAULT

6、USINGINDEXindex_name

7、FULL

8、NOTHING}解释REPLICAIDENTITYThisformchangestheinformationwhichiswrittentothewrite-aheadlogtoidentifyrowswhichareupd

9、atedordeleted.Thisoptionhasnoeffectexceptwhenlogicalreplicationisinuse.记录PK列的1.DEFAULT(thedefaultfornon-systemtables)recordstheoldvaluesofthecolumnsoftheprimarykey,ifany.记录指定索引列(索引的所有列须是notnull列,其实和PK一样,但是某些情况下,你可以选一个比PK更小的UK)2.USINGINDEXrecordstheoldvaluesofthecolumnscovere

10、dbythenamedindex,whichmustbeunique,notpartial,notdeferrable,andincludeonlycolumnsmarkedNOTNULL.记录完整记录3.FULLrecordstheoldvaluesofallcolumnsintherow.啥也不记录,这样做是否不支持update,delete?user_catalog_table=true或者系统表,默认为replicaidentitynothing啥也不记录。如果这种表发布出去了,允许insert,但是执行delete或者update时,

11、会报错。4.NOTHINGrecordsnoinformationabouttheoldrow(Thisisthedefaultforsystemta

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。