迁移到PolarDB for PostgreSQL 的 2万5千里长征--- 太难了,太难了!(过程)
❝开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共3300人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 +9)(1 2 3 4 5 6 7群均已爆满,开8群近400 9群 200+,开10群PolarDB专业学习群100+)
阿里云的PostgreSQL数据库恢复,让我丢脸,记住你了!
最近有人私信我,上次有一篇PG的文章,为什么不是PolarDB for PostgreSQL。巧了,因为最近已经确定了后续PG的去向问题,将近9个月的调研,测试,压测,以及各种评测后,我们已经于2025年10月14日开启的整体转向PolarDB for PG的迁移过程,基于我们在阿里云PG 数据库中的体量基本排在(抱歉不能说,被提醒了这段掐了),所以阿里云对于我们此次的迁移是十分重视的。
截止到目前,我们还在为迁移后的各种琐碎的事情,忙碌着,并且我们还在周三开了场内部的DBA大会,将整个过程中踩坑,踏雷的问题以及后续工作会遇到的问题都总结了。
下面我们就将整体的迁移过程写一篇文章来进行记录。阿里云针对 RDS PG 产品迁移到 PolarDB for PG 制定了便捷的方案,名字叫一键迁移。
这里迁移包含,整体的账号迁移,数据迁移,以及数据连续复制,割接,数据库切换安全等都做了一套程序。下面我们将进行相关的演示。
首先进入购买PolarDB FOR PG的页面,因为做做演示,这里选择按量付费,实际上我们应该选择包年包月,创建的方式选择从RDS迁移,源RDS的版本选择对应你的RDS PG的数据库版本。同时选择你需要迁移 RDS 实例。
迁移当中可以做版本升级,必然PG13 到 PolarDB for PG 14 但是这里需要提醒,虽然可以进行跨版本迁移但是你的业务需要提早的进行测试,避免版本升级后,导致的软件运行SQL或一些版本之间差异导致的故障的问题。这个可不是阿里云要负责的。
这里有几个问题在网络和可用区,需要注意这里有一个高可用模式,高可用模式并不是我们传统意义的PG集群,这里的高可用模式指的是,异地热备区的概念,也就是当前你数据库所在的机房如果遇到自然灾害,那么数据库将会在另外一个机房被拉起,让接管现在的数据库的工作,这个就是设置异地备区的部分双开 AZ。
在主机的规格这部分,最大目前支持 120核,920G的PolarDB for PG的数据库实例,不过在我们的压测过程中,我们得出了一个测试的结论(业务压测),同配置的PG 数据库性能要低于 POLARDB FOR PG ,我们当前的压测环境可以将 8C 32G的PG 压塌,但同样的压力,PolarDB for PG CPU只到75%左右。
在存储类型这个部分,我们要注意一定要选择PSL4,因为PSL4提供了硬件压缩,对于PG这类磁盘 “吞噬者”,降低成本是非常有利的,这里我们经过测算,将比原来降低成本 40%。
在迁移中药时刻注意PolarDB for PG的数据库的报错信息,其中上图的这部分是出现问题,如你的PG源库没有主键或者。
这里这个系统有改造的空间,需要进行相关的系统迁移当中的,注意在这里由于PG数据库的各种功能丰富度,会产生各类错误。
1 插件的问题,源库有的插件,在PolarDB 初始的时候没有,所以报错,这里可以跳过,等整体数据库都复制的差不多了,需要通知阿里云的同学来建立相关的插件,因为在整体的复制过程中。
2 速率的问题,因为我们的库都比较大所以全量复制的时候,需要注意你的数据库本身的性能问题,建议在进行迁移前,先把数据库升级一下,也就是升级一倍的配置,这样 避免在迁移中 CPU ,IOPS等都100% 或一边进行数据复制,一边还跑业务,数据库就 DOWN机了。
3 各种没有主键的表,各种有触发器,以及跑数据的增量延迟的问题,还有 PG13 到 PG14的一些函数的问题需要进行改造等等
4 Extension的问题,这个也是我们迁移中发现的问题,这里建议我们将一些不是业务必须的extension进行卸载,因为在POLARDB FOR PG建立和进行数据复制的过程中是不会给建立对应extension 的 ,这里我们和阿里云的老师进行沟通,写了临时的一些方式,对于一些我们经常出现的extension进行了建库就直接create extension 的手段,避免复制的期间经常遇到数据库复制停止的问题。
5 迁移中的带宽问题:这点我们作为吃螃蟹和进行深度使用的人,比较有发言权。一般如果你迁移中数据库较大的情况,阿里云可能给你一个建议,就是升级你的 RDS数据库的磁盘,通过升级磁盘来增加IOPS的能力,这里我建议 NO NO NO。
我们的工作经验是,升级你的数据库产品,这里建议升级到 24C,48G的配置,然后你的PolarDB PG也进行升级,通过升级但不一定是这么搞的配置,因为PolarDB 本身的磁盘性能比云盘要好。只要CPU和内存能承受即可。
为什么建议升级到24C 48G因为这样的话IOPS的能力可以达到15000IOPS,这样在大量全量同步原有的数据库就可以不被限制,提高整体迁移的效率。
6 迁移中的割接问题,在迁移中提供两种方式四种选择
1 迁移中不想迁移了,直接点击取消迁移即可,系统就不会再进行迁移,相关的DTS也会停止并自动清理,
2 迁移中选择割接,则割接会提醒你2种方式,
1 带原有的地址过来,
2 不带原有的地址过来, 我们选择不带原地址过来。
这里就产生问题了,如果原有的地址是合理的可以带过来,但是这里如果要recovery 就完蛋了,你回不去了。所以割接选择带原有地址过来的方案,要三思。
而选择不带有原有的地址过来,那么点击后,系统直接将数据库复制停止,此时你就是两个独立的系统,RDS一个,POLARDB一个。
3 怎么还有第三个选择吗,产生第四种结果,是的我们需要直接不选择割接,也不选择取消,直接修改POLARDB 的数据库的地址,然后提供给业务,让业务将心的地址配置上。直接将应用切到PolarDB 上,产生一个双向同步中的,以PolarDB为主的带着RDS的库的一个系统,在你业务进行工作后,如果发现不OK ,那么立即切换回你的RDS,如果OK ,那就在选择点击割接,且选择不带地址过来的割接方式。
到这里,有人要问,哪里难了,还25000千里,人家PolarDB for PG 不是提供了一键迁移的功能了。如果你这样说,说明你根本么有做过大公司的数据库迁移的工作。
那么这段25000千里的事情,我们放到下期写,我们来看看,大公司的数据库迁移都要做什么工作,看完你在进行评论。
到这里,这就是整体的数据库切换的过程和方案的过程(未写到难点见下期)。但这里我们强调,PostgreSQL RDS数据库在阿里云中也在疯狂的发展,已经和我3年前认识的RDS 有了翻天覆地的变化,包含了DUCKDB作为实时数据同步的双引擎的RDS PG,在OLAP+OLTP也很能打,同时也有一部分使用者反馈,POSTGRESQL RDS产品的extension 很全,同时对AI 原生的PG支持很给力,所以选择PG RDS 还是 PolarDB for PG,如果你拿不定主意,可以和我们一起讨论,我们或许能给你一个使用过 PG RDS 和 POLARDB的资深使用者的“小建议”。
和架构师沟通那种“一坨”的系统,推荐只能是OceanBase,Why ?
OceanBase Hybrid search 能力测试,平换MySQL的好选择
写了3750万字的我,在2000字的OB白皮书上了一课--记 《OceanBase 社区版在泛互场景的应用案例研究
OceanBase 6大学习法--OBCA视频学习总结第六章
OceanBase 6大学习法--OBCA视频学习总结第五章--索引与表设计
OceanBase 6大学习法--OBCA视频学习总结第五章--开发与库表设计
OceanBase 6大学习法--OBCA视频学习总结第四章 --数据库安装
OceanBase 6大学习法--OBCA视频学习总结第三章--数据库引擎
OceanBase 架构学习--OB上手视频学习总结第二章 (OBCA)
OceanBase 6大学习法--OB上手视频学习总结第一章
没有谁是垮掉的一代--记 第四届 OceanBase 数据库大赛
跟我学OceanBase4.0 --阅读白皮书 (OB分布式优化哪里了提高了速度)
跟我学OceanBase4.0 --阅读白皮书 (4.0优化的核心点是什么)
跟我学OceanBase4.0 --阅读白皮书 (0.5-4.0的架构与之前架构特点)
跟我学OceanBase4.0 --阅读白皮书 (旧的概念害死人呀,更新知识和理念)
OceanBase 学习记录-- 建立MySQL租户,像用MySQL一样使用OB
“合体吧兄弟们!”——从浪浪山小妖怪看OceanBase国产芯片优化《OceanBase “重如尘埃”之歌》
MongoDB “升级项目” 大型连续剧(3)-- 自动校对代码与注意事项
MongoDB “升级项目” 大型连续剧(2)-- 到底谁是"der"
MongoDB “升级项目” 大型连续剧(1)-- 可“生”可不升
MongoDB 大俗大雅,上来问分片真三俗 -- 4 分什么分
MongoDB 大俗大雅,高端知识讲“庸俗” --3 奇葩数据更新方法
MongoDB 大俗大雅,高端的知识讲“通俗” -- 2 嵌套和引用
MongoDB 大俗大雅,高端的知识讲“低俗” -- 1 什么叫多模
MongoDB 合作考试报销活动 贴附属,MongoDB基础知识速通
MongoDB 使用网上妙招,直接DOWN机---清理表碎片导致的灾祸 (送书活动结束)
MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模
MongoDB 麻烦专业点,不懂可以问,别这么用行吗 ! --TTL
免费PolarDB云原生课程,听课“争”礼品,重塑云上知识,提高专业能力
非“厂商广告”的PolarDB课程:用户共创的新式学习范本--7位同学获奖PolarDB学习之星
“当复杂的SQL不再需要特别的优化”,邪修研究PolarDB for PG 列式索引加速复杂SQL运行
“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!
POLARDB 添加字段 “卡” 住---这锅Polar不背
PolarDB 版本差异分析--外人不知道的秘密(谁是绵羊,谁是怪兽)
PolarDB 答题拿-- 飞刀总的书、同款卫衣、T恤,来自杭州的Package(活动结束了)
PolarDB for MySQL 三大核心之一POLARFS 今天扒开它--- 嘛是火
PostgreSQL 新版本就一定好--由培训现象让我做的实验
说我PG Freezing Boom 讲的一般的那个同学,专帖给你,看看这次可满意
PostgreSQL 无服务 Neon and Aurora 新技术下的新经济模式 (翻译)
“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!
全世界都在“搞” PostgreSQL ,从Oracle 得到一个“馊主意”开始
PostgreSQL 加索引系统OOM 怨我了--- 不怨你怨谁
PostgreSQL “我怎么就连个数据库都不会建?” --- 你还真不会!
PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆
PostgreSQL 分组查询可以不进行全表扫描吗?速度提高上千倍?
POSTGRESQL --Austindatabaes 历年文章整理
PostgreSQL 查询语句开发写不好是必然,不是PG的锅
这个 PostgreSQL 让我有资本找老板要 鸡腿 鸭腿 !!
MySQL相关文章
一篇为MySQL用户,分析版本核心差异的文章--8.028-8.4的差异
那个MySQL大事务比你稳定,主从延迟低,为什么? Look my eyes! 因为宋利兵宋老师
数据库优化系列
微软动手了,联合OpenAI + Azure 云争夺AI服务市场
HyBrid Search 实现价值落地,从真实企业的需求角度分析 !不只谈技术!
从“小偷”开始,不会从“强盗”结束 -- IvorySQL 2025 PostgreSQL 生态大会
被骂后的文字--技术人不脱离思维困局,终局是个 “死” ? ! ......
个群2025上半年总结,OB、PolarDB, DBdoctor、爱可生、pigsty、osyun、工作岗位等
从MySQL不行了,到乙方DBA 给狗,狗都不干? 我干呀!
SQL SERVER 2025发布了, China幸亏有信创!
删除数据“八扇屏” 之 锦门英豪 --我去-BigData!
写了3750万字的我,在2000字的OB白皮书上了一课--记 《OceanBase 社区版在泛互场景的应用案例研究》