我正在尝试将Postgres从11升级到12。
旧数据目录-/ var / lib / pgsql / 11 / data
新数据目录-/ var / lib / pgsql / 12 / data
在使用pg_upgrade --link升级主数据库后(主数据库和备用数据库仍处于关闭状态),我发出了manual建议的rsync命令,该命令来自于主数据库以及旧数据目录和新数据目录。 rsync --archive --delete --hard-links --size-only --no-inc-递归old_cluster new_cluster remote_dir
就我而言, rsync --archive --delete --hard-links --size-only --no-inc-递归/ var / lib / pgsql / 11 / data / var / lib / pgsql / 12 / data test-stdby:/ var / lib / pgsql
-并且remote_dir在备用数据库上的旧群集目录和新群集目录上方-根据手册。
但是,我看到在备用数据库的/ var / lib / pgsql下创建了一个数据目录,即/ var / lib / pgsql / data,而不是在/ var / lib / pgsql / 12下创建了
我想念什么?
此外,我的postgresql.conf注释了所有内容,所有自定义设置都在conf.d目录下,该目录由postgresql.conf中的include_dir ='conf.d'指定。 对于postgresql12,由于备用数据库上的primary_connection_info需要是postgresql.conf的一部分,而不是recovery.conf的一部分,我可以简单地将具有primary_connect info的recovery.conf文件放在conf.d目录中吗?有关如何运作的任何经验吗?
预先感谢!
答案 0 :(得分:0)
显然,您不能使用rsync方法来为大型升级重建备用数据库,这会导致数据文件不兼容错误。 pgbasebackup是您最好的选择。 (也快得多)