我有一台运行Postgres 9.4的生产服务器.该数据库是> 10 GB.是否可以在没有停机且不丢失数据的情况下升级到Postgres 9.5?
原文链接:https://www.f2er.com/postgresql/192501.html升级教程建议在执行sudo pg_upgradecluster 9.4 main时停止Postgres,但这可能需要很长时间.更新10 GB群集可能需要几个小时!
我也试过pg_dump mydb> db.sql.删除数据库并在PG 9.4(psql -d mydb -f db.sql)中再次插入转储大约需要50分钟.
但是在PG 9.5中插入转储仅在7个小时之后完成.特别是创建索引真的很慢……
2016-07-18 00:13:55 CEST [60358-5] ERROR: canceling autovacuum task 2016-07-18 00:13:55 CEST [60358-6] CONTEXT: automatic analyze of table ... 2016-07-18 00:36:20 CEST [60366-1] ERROR: canceling autovacuum task 2016-07-18 00:36:20 CEST [60366-2] CONTEXT: automatic analyze of table ... 2016-07-18 04:21:40 CEST [60361-1] ERROR: canceling autovacuum task 2016-07-18 04:21:40 CEST [60361-2] CONTEXT: automatic analyze of table ... 2016-07-18 07:55:19 CEST [61316-1] ERROR: canceling autovacuum task 2016-07-18 07:55:19 CEST [61316-2] CONTEXT: automatic analyze of table ...
因此,pg_upgradecluster和pg_dump都不是可接受的解决方案.即使使用PG 4,您也可以获得至少50分钟的停机时间.因此:如何在没有停机和数据输出的情况下在生产服务器或大型主从集群上升级数据库?