Meu servidor trac recentemente começou a ter problemas. Ele estava executando uma versão muito desatualizada do Ubuntu e não consegui usá-lo corretamente apt-get
para corrigir os problemas que estava tendo. Então, em vez disso, fiz backup da máquina e fiz uma instalação limpa do Ubuntu 12.04.
Agora tenho um novo servidor com o Postgres 9.1 devidamente instalado e funcionando. Desejo obter meu antigo banco de dados Postgres 8.4 do backup copiado e configurado na nova instalação. Como faço para fazer isso?
O que fiz até agora foi copiar os dados antigos do Postgres 8.4 e os diretórios bin do backup ( /var/lib/postgresql/8.4/main
e /usr/lib/postgresql/8.4/bin
) para /tmp/postgres.old
e /tmp/postgres-bin.old
na nova instalação. Parei de usar o Postgres 9.1 service postgres stop
e executei o comando:
sudo -u postgres /usr/lib/postgresql/9.1/bin/pg_upgrade \
--old-datadir=/tmp/postgres.old/main/ \
--new-datadir=/var/lib/postgresql/9.1/main/ \
--old-bindir=/tmp/postgres-bin.old/postgresql/8.4/bin \
--new-bindir=/usr/lib/postgresql/9.1/bin
Conforme descrito na documentação do Postgres . Parecia que funcionaria muito bem, exceto que recebi o erro:
Performing Consistency Checks
-----------------------------
Checking current, bin, and data directories ok
Checking cluster versions ok
connection to database failed: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
unable to connect to old postmaster started with the command: "/tmp/postgres-bin.old/postgresql/8.4/bin/pg_ctl" -w -l "/dev/null" -D "/tmp/postgres.old/main" -o "-p 5432 -c autovacuum=off -c autovacuum_freeze_max_age=2000000000" start >> "/dev/null" 2>&1
Failure, exiting
O problema parece ser que ele está tentando iniciar o servidor antigo e isso não funciona porque é muito antigo e não está instalado corretamente. Tentar iniciá-lo manualmente revela o problema:
root@mission:/tmp# sudo -u postgres /tmp/postgres-bin.old/postgresql/8.4/bin/postgres
/tmp/postgres-bin.old/postgresql/8.4/bin/postgres: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directory
Então, como posso restaurar bancos de dados antigos do Postgres 8.4 em uma nova instalação do Postgres 9.1 e atualizá-los?