PostgreSQL数据库升级

数据库升级方法

通常情况下,有四种可能的方式来完成数据库的升级工作:

1、第一种方式是让数据库保持他们的存储格式不变或者至少是兼容不同的版本。然而,这种方式很难获得长期的保证,因为新的特征可能需要改变数据存储的方式或者加入更多的元数据信息才能正常工作。而且,性能通常可以通过使数据结构最优化来得以提高。

2、第二种方式是先做一个旧服务器的逻辑拷贝,然后导入到新服务器中。这是一种最传统的方式,但需要旧服务器在这个过程中不接收任何更新,所以会导致长时间的停机时间,可能需要几小时,在大数据库中甚至可能需要花几天的时间。

3、第三种选择是把数据从旧的格式转换为新的格式。这种方式既可以在新系统正在运行时来完成,但是会引起性能代偿,这个很难避免,因为它依赖于数据访问模式;也可以在服务器关闭后离线完成,但这也会导致长时间的停机时间。

4、第四种方法是使用逻辑转储来保存和恢复数据库,捕捉同时发生的变化,然后一旦初始的恢复完成,逻辑复制这些变化到新的数据库中。这种方式要求多个组件之间相编排,但也减少了数据库不能对查询做出响应的时间。

PostgreSQL中的升级方法

PostgreSQL的更新可使用上述的全部四种方法。

例如,PostgreSQL发布了新的副版本,由于它不包含新的特征,只有一些错误修正。那么我们不需要改变已有的数据格式,因此使用第一种方式即可。

对于第二种方法,PostgreSQL提供了一些工具,叫做pg_dumppg_restore。它们用来完成逻辑备份和恢复。

还有一个模块叫做pg_upgrade,它将旧数据目录离线的转换到新的数据目录,这适用于第三种方法。

对于第四种方法来说,有一些第三方的工具可以使用此方法来进行数据库升级。

传统的升级方式只能更新主服务器,备服务器必须在之后重建。这会导致集群的可利用性和性能出现一些附加的问题。所以不同的升级方式适用于不同的环境之中。

逻辑复制升级

物理复制捕捉磁盘上原始数据的变化,而逻辑复制捕捉数据库中个体记录的逻辑变化然后复制这些变化。逻辑记录在主版本之间都可使用,所以逻辑复制可被用于从一个版本升级到另一个版本。

使用逻辑复制作为版本更新的方法已经远不是一个新的思路了,基于触发器的复制工具通过由触发器捕捉和发送变化,使用逻辑方式进行升级。

By Kalath
阅读更多

扫码向博主提问

PostgreSQL_HighGoDB

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • POSTGRESQL
  • HIGHGO
去开通我的Chat快问
版权声明:本文为博主原创之文章,未经博主允许谢绝转载。 https://blog.csdn.net/pg_hgdb/article/details/79715378
个人分类: PostgreSQL Highgo DB
上一篇PostgreSQL中的高速缓存
下一篇检查点和WAL
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭