Sexta-feira eu fiz uma atualização do PostgreSQL 13 para 14 com pg_upgradecluster
(no Debian Buster). Isso funcionou, então hoje eu queria atualizar outro servidor (Linux Mint 20.3 Cinnamon). Desta vez não funciona. Aqui está o que eu fiz:
root@farao:~# pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
13 main 5432 online postgres /srv/local/postgresql/13 /var/log/postgresql/postgresql-13-main.log
14 main 5433 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
root@farao:~# pg_dropcluster --stop 14 main
root@farao:~# pg_upgradecluster -V -v 13 main /srv/local/postgresql/data/14
Use of uninitialized value $newversion in string eq at /usr/bin/pg_upgradecluster line 398.
Use of uninitialized value $_[0] in concatenation (.) or string at /usr/share/perl5/PgCommon.pm line 1049.
Stopping old cluster...
Restarting old cluster with restricted connections...
Notice: extra pg_ctl/postgres options given, bypassing systemctl for start operation
Use of uninitialized value $argv[10] in system at /usr/bin/pg_upgradecluster line 461.
Error: invalid version ''
Error: Could not create target cluster
root@farao:~# pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
13 main 5432 online postgres /srv/local/postgresql/13 /var/log/postgresql/postgresql-13-main.log
root@farao:~# ps -ef | grep postgres
postgres 24351 1306 0 20:57 ? 00:00:00 /usr/lib/postgresql/13/bin/postgres -D /srv/local/postgresql/13 -c config_file=/etc/postgresql/13/main/postgresql.conf -c hba_file=/tmp/pg_hba.UabjBQ.conf
postgres 24353 24351 0 20:57 ? 00:00:00 postgres: 13/main: checkpointer
postgres 24354 24351 0 20:57 ? 00:00:00 postgres: 13/main: background writer
postgres 24355 24351 0 20:57 ? 00:00:00 postgres: 13/main: walwriter
postgres 24356 24351 0 20:57 ? 00:00:00 postgres: 13/main: autovacuum launcher
postgres 24357 24351 0 20:57 ? 00:00:00 postgres: 13/main: stats collector
postgres 24358 24351 0 20:57 ? 00:00:00 postgres: 13/main: logical replication launcher
root 24488 18929 0 20:58 pts/0 00:00:00 grep --color=auto postgres
root@farao:~# cat /tmp/pg_hba.UabjBQ.conf
local all postgres ident
root@farao:~# pg_upgradecluster -V -v 13 main /srv/local/postgresql/data/14
Use of uninitialized value $newversion in string eq at /usr/bin/pg_upgradecluster line 398.
Use of uninitialized value $_[0] in concatenation (.) or string at /usr/share/perl5/PgCommon.pm line 1049.
Stopping old cluster...
Restarting old cluster with restricted connections...
Notice: extra pg_ctl/postgres options given, bypassing systemctl for start operation
Use of uninitialized value $argv[10] in system at /usr/bin/pg_upgradecluster line 461.
Error: invalid version ''
Error: Could not create target cluster
root@farao:~# pg_upgradecluster
Usage: /usr/bin/pg_upgradecluster [OPTIONS] <old version> <cluster name> [<new data directory>]
root@farao:~#
Sem o -V
parâmetro, o resultado é o mesmo. O que eu fiz errado? Preciso instalar um módulo PERL?
observação Acabei de lembrar que instalei apenas o postgresql-13 e usei o banco de dados e a configuração que ainda estavam presentes. O PostgreSQL armazena em algum lugar informações sobre os clusters com os quais criou initdb
? Não é lógico porque pg_lsclusters
pode encontrá-lo.
Pelo que li na
man
página depg_upgradecluster
, pode haver um erro de digitação no seu comando.Aqui está a sinopse da página man:
Mantenha
-v
e adicione explicitamente o novo número da versão:ou remover
-v
completamente (o padrão será a versão mais recente disponível):