加载中...
逻辑复制是一种基于逻辑变更(行级别的增删改)而非物理块进行数据复制的技术。它以发布/订阅模型将解析后的变更事件传递给订阅端,支持跨版本、选择性表复制,广泛用于数据迁移与异构同步。

| 类型 | 数据复制技术 |
| 复制单位 | 行级逻辑变更 |
| 典型模型 | 发布/订阅 |
| 代表实现 | PostgreSQL、MySQL 行格式复制 |
逻辑复制是一种以逻辑数据变更(即具体的行插入、更新、删除)为单位在数据库间同步数据的复制方式,区别于按物理存储块或日志字节流复制的物理复制。它通常基于预写日志的逻辑解码,将底层日志翻译为可理解的行级变更事件,再传递给下游。
以 PostgreSQL 为例,逻辑复制采用发布(Publication)与订阅(Subscription)模型:发布端声明要对外暴露的表集合,订阅端连接后接收并回放这些变更。由于传递的是逻辑变更而非物理页面,发布端与订阅端可以运行不同的大版本,甚至具有不同的物理布局。MySQL 中基于行格式二进制日志的复制在本质上也属于逻辑复制的范畴。
逻辑复制常用于大版本零停机升级、数据整合到分析库、只复制关键业务表的容灾、以及跨云或跨机房的数据同步。它也是许多变更数据捕获链路的底层机制,把变更事件送入消息队列供下游消费。
问:逻辑复制和物理复制如何选择?答:需要整库高一致备库、追求最低延迟与开销时选物理复制;需要跨版本、选择性同步或下游可写时选逻辑复制。
问:为什么删除操作会失败或丢失?答:多因目标表缺少主键或副本标识,导致无法唯一定位待删除行,应为表补充主键或显式配置副本标识。

| 类型 | 数据复制技术 |
| 复制单位 | 行级逻辑变更 |
| 典型模型 | 发布/订阅 |
| 代表实现 | PostgreSQL、MySQL 行格式复制 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧