Moving tables across PostgreSQL instances
6 months ago
- #Database Migration
- #Logical Replication
- #PostgreSQL
- 在PostgreSQL实例间迁移特定表需要使用逻辑复制,而非Google的DMS(该服务仅支持整库迁移)
- 在源库和目标库PostgreSQL实例上均需为用户账号授予复制权限
- 使用pg_dump复制表结构时,为提高效率可暂不包含约束和索引
- 逻辑复制包含两种模式:初始数据全量导出和实时更新的变更数据捕获(CDC)
- 约束与索引需单独处理,待初始数据全量同步完成后再重建
- 在源实例创建发布,在目标实例创建对应订阅以启动复制
- 通过pg_replication_slots和pg_stat_subscription等系统表监控复制进度与延迟
- 流量切换前需手动同步源库与目标库的序列值
- 使用PgBouncer实现近零停机切换:暂停连接→重载配置→恢复连接
- 迁移验证成功后,需清理订阅和发布对象完成收尾工作