我试图找到一个最快的方式将postgresql 数据库v9.1.20从一台服务器移动到另一台服务器 与postgres v9.3.10。Postgresql就地数据库升级
方案如下:
生产服务器上运行Ubuntu 12.04 的PostgreSQL 9.1.20,数据库大小appox250克
目标服务器,我们正试图重新定位上是 的Ubuntu 14.04 postgresq 9.3.10。
我们正在试图与 尝试的第一个尝试是从旧服务器转储数据库(pg_dump
)和新服务器(pg_restore
)上还原 它。
它工作得很好,但我们花了 搬迁时间大约为4小时(pg_dump
需要3个小时 和pg_restore的需要1个小时(网络链接1G, SSD磁盘两台服务器上)。
总停机时间在4小时内是不能接受的。
下一次尝试是使用pg_basebackup
代替 pg_dump
,该方法减少了备用时间可达40分钟 代替3-小时,这是可以接受的。
但是由于版本不兼容,我们无法使用由pg_basebackup
提供的转储。
我已经阅读了很多关于如何提供就地数据库 升级的文章,但似乎他们都指的是在同级服务器上升级 。
所以我的问题 - 我该如何升级由pg_basebackup
在服务器上产生 数据库备份,而无需以前 发球的PostgreSQL安装的二进制文件?
谢谢。
你尝试管'pg_dump'的直接输出成'psql'?像'pg_dump -h host1 dbname | psql -h host2 dbname'顺便说一句:为什么你不升级到更新的版本,如9.4或9.5? –
您可以将旧版本(二进制文件+数据)的(二进制)副本发送到新机器(编译并)在那里安装新版本,并在新机器上执行--link(“in-place”)升级。 http://www.postgresql.org/docs/9.5/static/pgupgrade.html [当然,以干运行开始。旧的安装仍在旧机器上运行] – wildplasser