我试图找到一种最快的方法,将postgresql数据库v9.1.20从一台服务器转移到postgres v9.3.10的另一台服务器。
设想如下:
生产服务器运行Ubuntu12.04 postgresql 9.1.20,数据库大小为appox 250 g
我们试图重新定位的目标服务器是Ubuntu14.04 postgresq 9.3.10。
我们尝试的第一次尝试是从旧服务器转储数据库(pg_dump
),并在新服务器(pg_restore
)上恢复数据库。
它运行得很好,但是我们花在重新定位上的时间大约是4小时(pg_dump
需要3小时,pg_restore需要1小时(两个服务器上的网络链接1g,SSD磁盘)。
4小时内的总停机时间是不可接受的。
下一次尝试是使用pg_basebackup
而不是pg_dump
。该方法将备份时间从3小时缩短到40分钟,这是可以接受的。
但是,由于版本不兼容,我们不能使用pg_basebackup
提供的转储。
我读过许多关于如何提供内部数据库升级的文章,但它们似乎都是指在同一台服务器上进行升级。
那么,我的问题是--如何升级服务器上的pg_basebackup
生成的数据库备份,而不安装以前的postgresql二进制文件?
谢谢。
发布于 2017-03-06 10:56:18
您可以使用瑞姆格和pg_upgrade
以最少的停机时间(几分钟)执行升级。
pg_basebackup
下面使用。所以这个方法和你描述的方法差不多。https://stackoverflow.com/questions/35682315
复制相似问题