You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何零停机将Google Cloud SQL(Postgres 9.6)跨Google项目迁移

跨项目零停机迁移PostgreSQL 9.6 Cloud SQL实例方案
  • 核心结论:你关注的DMS迁移任务原生支持跨GCP项目的Cloud SQL PostgreSQL迁移,是你当前场景下操作成本最低、能实现零停机的最优选择,20GB规模的实例全量同步耗时通常不超过15分钟,增量同步延迟稳定在百毫秒级,完全满足双实例并行、数据实时同步的要求,不需要采用自建逻辑复制、第三方工具这类更重的方案。

前置配置要求

  • 源实例(旧项目PostgreSQL 9.6 Cloud SQL)调整:
    • 修改实例参数,将wal_level设为logical,开启logical replication开关,调整max_replication_slots、max_wal_senders参数预留至少2个空闲配额,参数修改后重启实例生效
    • IAM权限层面,给目标项目的DMS服务账号授予旧项目的Cloud SQL Client角色,同时将DMS服务的出口IP段加入源实例的授权访问列表
    • 迁移前不要在源实例执行大的DDL操作,避免逻辑复制中断
  • 目标实例(新项目Cloud SQL)提前创建:
    • 选择和源实例完全一致的PostgreSQL 9.6版本,计算、存储规格不低于源实例,优先选择和源实例相同的区域部署,降低同步网络延迟
    • 不要提前在目标实例创建任何业务库表、权限,全量同步阶段DMS会自动完成结构、数据、索引、账号的全量迁移,手动提前创建反而会导致任务报错

迁移执行步骤

  1. 进入目标项目的DMS控制台创建迁移任务,源数据库类型选择Cloud SQL for PostgreSQL,选择源实例时直接在项目选择器切换到旧项目,就能看到你有权限访问的源实例,不需要手动配置公网/专线连接
  2. 迁移模式选择持续增量同步,不要选一次性全量迁移,跑通连接测试后启动任务
  3. 任务会自动跑两个阶段:第一阶段全量拷贝存量20GB数据,第二阶段自动追平全量同步期间产生的增量写入,等控制台显示同步延迟稳定在1s以内时,就可以准备切流

零停机切流(复用现有pgbouncer环境)

你已经部署了pgbouncer,切流操作非常简单,不需要逐个业务修改配置:

  • 切流前先把pgbouncer的连接池模式调整为transaction模式,清退残留的长连接
  • 短暂暂停业务侧写请求(通常10-30秒足够),观察DMS同步延迟降到0、源实例无新增写入后,修改pgbouncer配置里的后端数据库地址为目标实例的连接地址
  • 执行pgbouncer -R重载配置,恢复业务写入,整个切流过程业务侧感知的停机时间在秒级,完全满足低停机要求

后续收尾

  • 切流后持续观察24小时目标实例的性能指标,抽样校验核心表的行数、关键业务字段一致性,确认业务运行正常
  • 确认无回滚需求后,停止DMS迁移任务,源实例建议保留7-14天再做删除,避免突发问题需要回滚

提醒:PostgreSQL 9.6已经结束社区生命周期,迁移稳定后建议尽快规划升级到12+的长期支持版本,规避安全风险和兼容性问题

内容的提问来源于stack exchange,提问作者Alexey Gorbel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 11:30:43