在RedHat中从postgresql 9.2升级到9.6时unix_socket_directory出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在RedHat中从postgresql 9.2升级到9.6时unix_socket_directory出错相关的知识,希望对你有一定的参考价值。

我已经将我的postgresql服务器9.2升级到9.6了几个小时。这就是我所做的:

把它当作postgres:

/usr/pgsql-9.6/bin/pg_upgrade --old-bindir=/usr/bin/ --new-bindir=/usr/pgsql-9.6/bin/ --old-datadir=/var/lib/pgsql/data/ --new-datadir=/var/lib/pgsql/9.6/data/ --check

得到了输出:

Performing Consistency Checks on Old Live Server
-------------------------------------------------
Checking cluster versions                                   ok
Checking database user is the install user                  ok
Checking database connection settings                       ok
Checking for prepared transactions                          ok
Checking for reg* system OID user data types                ok
Checking for contrib/isn with bigint-passing mismatch       ok
Checking for roles starting with 'pg_'                      ok
Checking for invalid "line" user columns                    ok
Checking for presence of required libraries                 ok
Checking database user is the install user                  ok
Checking for prepared transactions                          ok

*Clusters are compatible*

好的一切都好,我们走了,让我们尝试升级。

首先,以root身份运行,如here所述:

service postgresql stop

然后,升级命令(作为postgres用户):

/usr/pgsql-9.6/bin/pg_upgrade --old-bindir=/usr/bin/ --new-bindir=/usr/pgsql-9.6/bin/ --old-datadir=/var/lib/pgsql/data/ --new-datadir=/var/lib/pgsql/9.6/data/

在/var/lib/pgsql/data/pg_upgrade_server.log文件中获得了ERROR输出:

271 -----------------------------------------------------------------
272   pg_upgrade run on Fri Mar  2 15:44:09 2018
273 -----------------------------------------------------------------
274
275 command: "/usr/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D "/var/lib/pgsql/data/" -o "-p 50432 -b  -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_s    ocket_directory='/var/lib/pgsql/data'" start >> "pg_upgrade_server.log" 2>&1
276 waiting for server to start....FATAL:  unrecognized configuration parameter "unix_socket_directory"
277  stopped waiting
278 pg_ctl: could not start server
279 Examine the log output.

怎么做到这一点?

任何人?

答案

您必须已将postgresql.conf从92。群集复制到9.6群集。这不起作用,因为一些参数已经改变。

例如,9.2中的unix_socket_directory在9.3中成为unix_socket_directories;现在你可以拥有不止一个。

您应该使用默认的9.6 postgresql.conf并手动编辑它以匹配您的9.2配置。一些参数发生了很大变化,比如checkpoint_segments已被max_wal_size取代。

以上是关于在RedHat中从postgresql 9.2升级到9.6时unix_socket_directory出错的主要内容,如果未能解决你的问题,请参考以下文章

硬盘安装redhat 9.2

在 postgreSQL 9.2 上编辑 postgresql.conf 文件?

Postgresql 9.2 错误与 group by 未出现在 postgresql 12 中

如何在 PostgreSQL 9.2 中分析 plpgsql 函数

PostgreSQL 9.2 服务不断失败

播放框架中未解决的 postgresql 9.2 jar 依赖关系