我希望能够将我现有的cloudsql postgres 9.6实例升级到11,以使用一些新的pg 11特性。
我一直在努力想出一个好的迁移计划,但似乎唯一可用的选择就是sql转储和恢复。数据库是100Gig+的,所以这将需要相当长的时间,我希望尽可能避免停机。有没有可用的选项?我正在考虑启用语句日志记录: log_statement=mod,创建一个转储,将其导入到pg-11实例中,关闭db +,然后通过下载日志并编写脚本重新运行插入,来抓取日志以将最新更新回复到pg-11实例中。看起来可行,但感觉不太好。
我想知道以前有没有人遇到过这个问题,并且有其他的解决方案?
发布于 2019-09-20 08:59:03
Postgres11 on Cloud SQL仍在Beta中。不建议在生产环境中使用Beta版本的产品。
但是,如果您选择继续,则必须通过创建SQL转储或将数据放入.csv文件(取决于您的需要)、(best practices) create a Postgres 11 instance和import the data来执行export the data。
对于不会出现在转储中的数据,您可以:
a)执行您建议的操作,记录查询,然后重新运行插入
b)创建一个转储,将其导入新实例,使其处于活动状态,然后再次获取旧实例的另一个转储,比较删除重复项并导入差异。如果您有自动递增的主键,这将是困难的。
c)在Postgres 11实例上创建模式并部署。然后创建转储并在以后导入。如果您的主键是自动递增的,请更改模式以从您希望的值开始。
https://stackoverflow.com/questions/58019145
复制相似问题