我已经将我的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*
好的一切都好,我们走了,让我们尝试升级。
首先,按照here所描述的那样以root身份运行:
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.
如何完成这项工作?
任何?
答案 0 :(得分:0)
您必须已将{。{1}}从92。群集复制到9.6群集。 这不会起作用,因为有些参数已经改变了。
例如,9.2中的postgresql.conf
在9.3中成为unix_socket_directory
;现在你可以拥有不止一个。
您应该使用默认的9.6 unix_socket_directories
并手动编辑它以匹配您的9.2配置。有些参数发生了很大变化,例如postgresql.conf
,已被checkpoint_segments
取代。