Обсуждение: [ADMIN] Pg_upgradecluster failed

Поиск
Список
Период
Сортировка

[ADMIN] Pg_upgradecluster failed

От
Matthieu Lejeune
Дата:
Hi all,

I try to upgrade from 9.3 to 9.5

ii  postgresql-9.3               9.3.14-1.pgdg70+1 amd64
object-relational SQL database, version 9.3 server
ii  postgresql-9.5               9.5.5-1.pgdg70+1 amd64
object-relational SQL database, version 9.5 server

But with my command I got this error :

oot@bas40:/etc/postgresql/9.3/main# pg_upgradecluster -v 9.5 -m upgrade
9.3 main
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
psql: FATAL:  database "template1" is not currently accepting connections
psql: FATAL:  database "template1" is not currently accepting connections
Use of uninitialized value $out in pattern match (m//) at
/usr/share/perl5/PgCommon.pm line 925.
psql: FATAL:  database "template1" is not currently accepting connections
Use of uninitialized value $out in pattern match (m//) at
/usr/share/perl5/PgCommon.pm line 931.
Use of uninitialized value $ctype in scalar chomp at
/usr/share/perl5/PgCommon.pm line 934.
Use of uninitialized value $collate in scalar chomp at
/usr/share/perl5/PgCommon.pm line 935.
Error: could not get cluster locales

I get this error on some of my pgsql servers and it's work on other one.
If I check the dataallowconn on my server :


postgres=# select * from pg_database
;
   datname   | datdba | encoding | datcollate | datctype | datistemplate
| datallowconn | datconnlimit | datlastsysoid | datfrozenxid |
datminmxid | dattablespace |               datacl

------------+--------+----------+------------+----------+---------------+--------------+--------------+---------------+--------------+------------+---------------+-------------------------------------
  postgres   |     10 |        0 | C          | C        | f
| t            |           -1 |         12030 | 150000757 |   32376355
|          1663 |
  energycomm |  16384 |        6 | C          | C        | f
| t            |           -1 |         12030 | 101905564 |   28843537
|          1663 |
  template0  |     10 |        0 | C          | C        | t
| t            |           -1 |         12030 | 200000724 |   37376355
|          1663 | {=c/postgres,postgres=CTc/postgres}
  template1  |     10 |        6 | C          | C        | t
| f            |           -1 |         12030 | 200000758 |   37376355
|          1663 |
(4 lignes)

postgres=#

If I try to change from false to true I got this error  :

root@bas40:/etc/postgresql/9.3/main# pg_upgradecluster -v 9.5 -m upgrade
9.3 main
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
Stopping old cluster...
Creating new cluster 9.5/main ...
   config /etc/postgresql/9.5/main
   data   /var/lib/postgresql/9.5/main
   locale fr_BE.UTF-8
   socket /var/run/postgresql
   port   5433
Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok
Checking database user is the install user                  ok
Checking database connection settings
template0 must not allow connections, i.e. its pg_database.datallowconn
must be false
Failure, exiting
Error: pg_upgrade run failed. Logfiles are in
/var/log/postgresql/pg_upgradecluster-9.3-9.5-main.rFyo
Re-enabling connections to the old cluster...
Error during cluster dumping, removing new cluster
pg_ctl : le fichier de PID « /var/lib/postgresql/9.3/main/postmaster.pid
» n'existe pas
Le serveur est-il en cours d'exécution ?
Error: could not reload old cluster, please do that manually
root@bas40:/etc/postgresql/9.3/main#

Someone have this issue and know how to solved it ?

Kind regards

Matthieu Lejeune


Re: [ADMIN] Pg_upgradecluster failed

От
Christoph Berg
Дата:
Re: Matthieu Lejeune 2017-01-18 <45d1244b-145d-ffce-d140-0f693ae4948f@exxoss.com>
> But with my command I got this error :
>
> oot@bas40:/etc/postgresql/9.3/main# pg_upgradecluster -v 9.5 -m upgrade 9.3
> main
> Disabling connections to the old cluster during upgrade...
> Restarting old cluster with restricted connections...
> psql: FATAL:  database "template1" is not currently accepting connections

Hi,

pg_upgradecluster relies on the template1 database being accessible
for maintenance operations during the upgrade. This is currently not
configurable, but we could certainly add an option to allow passing a
different database (e.g. "postgres") for the upgrade.

> postgres=# select * from pg_database
> ;
>   datname   | datdba | encoding | datcollate | datctype | datistemplate |
> datallowconn | datconnlimit | datlastsysoid | datfrozenxid | datminmxid |
> dattablespace |               datacl
>
------------+--------+----------+------------+----------+---------------+--------------+--------------+---------------+--------------+------------+---------------+-------------------------------------
>  template0  |     10 |        0 | C          | C        | t             | t
> |           -1 |         12030 | 200000724 |   37376355 |          1663 |
> {=c/postgres,postgres=CTc/postgres}

Uhm, "template0" must never be connected to, you shouldn't have set
datallowconn = 't. for it.

> If I try to change from false to true I got this error  :

> template0 must not allow connections, i.e. its pg_database.datallowconn must

(It seems this was even wrong before you changed it now)

Mit freundlichen Grüßen,
Christoph Berg
--
Senior Berater, Tel.: +49 2166 9901 187
credativ GmbH, HRB Mönchengladbach 12080, USt-ID-Nummer: DE204566209
Trompeterallee 108, 41189 Mönchengladbach
Geschäftsführung: Dr. Michael Meskes, Jörg Folz, Sascha Heuer
pgp fingerprint: 5C48 FE61 57F4 9179 5970  87C6 4C5A 6BAB 12D2 A7AE