ITPub博客

首页 > 数据库 > PostgreSQL > PostgreSQL DBA(91) - PG upgrade

PostgreSQL DBA(91) - PG upgrade

翻译 PostgreSQL 作者:husthxd 时间:2019-09-12 15:19:24 0 删除 编辑

PostgreSQL的大版本发布周期通常为1年,而PostgreSQL 12即将发布,新版本除了修复了Bug,提供了新特性之外还对性能有所增强,对于使用旧版本但希望升级到新版本的数据库,本节介绍了PG升级的几种方法,分别是Logical Dump/restore、Binary In-Place Upgrades和Logical Replication。

Logical Dump/restore
逻辑导入导出,把数据库逆向为普通的SQL语句.使用的工具是pg_dump/pg_dumpall和pg_restore,其中pg_dump面向database级别,pg_dumpall面向instance级别.

优势
1.100%安全.对原实例没有任何影响,方便测试.
2.可从”read only”库中导出,对原库没有性能影响.
3.灵活.可指定schema或对象,可重新映射/删除属主或访问权限.

劣势
1.性能差.虽然可以并行的dump数据,但在数据量超过100G时,需要注意是否存在性能问题,而且在restore时会很耗主机资源.
2.一致性难以保证.在dump时需要源库离线,否则在dump时仍有数据变化,那么源库和目标库会处于不一致的状态.

Binary In-Place Upgrades
原地升级,使用的工具是pg_upgrade.在执行pg_upgrade前,需安装新版本的二进制文件并使用新版软件初始化实例.

优势
1.高性能.特别是使用 “pg_upgrade –link –jobs X”这种模式的情况下.

劣势
1.存在一定的风险,需要增加额外的测试工作.
2.所有的扩展和其他模块均需要在新实例上安装.
3.不存在半在线模式,必须完整离线.
4.如果不使用-link模式,则会丢失所有的备用服务器.
5.相对于首次启动,需要执行analyze.
6.占用双倍空间.

Logical Replication
逻辑复制,通过配置逻辑复制实现源库和目标库的数据同步.

优势
1.灵活.可允许目标库变更模式.
2.安全.对源库几乎没有影响.
3.无需停机.

劣势
1.配置复杂.
2.如为大库,则需要较长的配置时间和同步时间.
3.可能需要修改模式,至少需要修改 REPLICA IDENTITY.

对比汇总
下面是三种方法的对比图:

参考资料
A Primer on PostgreSQL Upgrade Methods
Fast Upgrade of Legacy PostgreSQL with Minimum Downtime Using pg_upgrade

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-2656896/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
ITPUB数据库版块资深版主,对Oracle、PostgreSQL有深入研究。现就职于广州云图数据技术有限公司,系统架构师。

注册时间:2007-12-28

  • 博文量
    1374
  • 访问量
    3827369