2011/10/8 Leonardo Carneiro <[email protected]> > Bom dia a todos, > > Recentemente fiz um upgrade da versão 8.4.x para a 9.0.4 usando > dump/restore. A operação em sí foi bem sucessida, mas o downtime foi enorme. > Estou agora planejando realizar o upgrade para a versão 9.1.1 e estou > realizando testes com o pg_upgrade, para minimizar, mas estou me deparando > com um erro que não estou sabendo lidar. Segue os dados do ambiente: > > SO: Ubuntu 11.04 32bit > Pasta da instalação do PG antigo: /usr/local/pgsql/9.0.4 (compilado do > fonte) > Pasta da instalação do PG novo: /usr/local/pgsql/9.1.1 (compilado do fonte) > Cluster antigo: /var/database.old > Cluster novo: /var/database > > Ambos os clusters estão com autenticação trust para conexões locais. O > antigo está na porta 5432, enquanto o novo está na porta 5433. Não existem > usuários acessando as bases. Segui a risca o procedimento descrito em > http://www.postgresql.org/docs/current/static/pgupgrade.html. > > Estou executando com o comando --check primariamente, uma vez que ainda > estou realizando os primeiros testes com o procedimento. Segue execução do > comando: > > postgresql@reploid:~$ /usr/local/pgsql/9.1.1/bin/pg_upgrade -d > /var/database.old/ -D /var/database/ -b /usr/local/pgsql/9.0.4/bin/ -B > /usr/local/pgsql/9.1.1/bin/ -p 5432 -P 5433 -v -c > Running in verbose mode > Performing Consistency Checks > ----------------------------- > Checking current, bin, and data directories ok > Checking cluster versions ok > "/usr/local/pgsql/9.0.4/bin/pg_ctl" -w -l "/dev/null" -D > "/var/database.old" -o "-p 5432 -c autovacuum=off -c > autovacuum_freeze_max_age=2000000000" start >> "/dev/null" 2>&1 > Checking database user is a superuser ok > Checking for prepared transactions ok > Checking for reg* system oid user data types ok > Checking for contrib/isn with bigint-passing mismatch ok > "/usr/local/pgsql/9.0.4/bin/pg_ctl" -w -l "/dev/null" -D > "/var/database.old" stop >> "/dev/null" 2>&1 > "/usr/local/pgsql/9.1.1/bin/pg_ctl" -w -l "/dev/null" -D "/var/database" -o > "-p 5433 -b" start >> "/dev/null" 2>&1 > There were problems executing "/usr/local/pgsql/9.1.1/bin/pg_ctl" -w -l > "/dev/null" -D "/var/database" -o "-p 5433 -b" start >> "/dev/null" 2>&1 > > pg_ctl failed to start the new server > Failure, exiting > > Mesmo resultando falha ao iniciar o novo server, o mesmo está rodando após > o comando: > > postgresql@reploid:~$ ps aux | grep postgres > 1001 19781 0.0 0.0 7652 1948 pts/0 S 11:02 0:00 su - postgresql > 1001 19919 0.3 0.2 40800 5672 pts/0 S 11:02 0:00 > /usr/local/pgsql/9.1.1/bin/postgres -D /var/database -p 5433 -b > > Após isso, eu parei o server e tentei iniciar ele "na mão", com o mesmo > comando que o pg_upgrade tentou executar: > > postgresql@reploid:~$ /usr/local/pgsql/9.1.1/bin/pg_ctl stop -D > /var/database > waiting for server to shut down.... done > server stopped > postgresql@reploid:~$ /usr/local/pgsql/9.1.1/bin/pg_ctl -w -l "/dev/null" > -D "/var/database" -o "-p 5433 -b" start > waiting for server to start..../usr/local/pgsql/9.1.1/bin/pg_ctl: symbol > lookup error: /usr/local/pgsql/9.1.1/bin/pg_ctl: undefined symbol: PQping > > Lí em alguns lugares que isso pode ser erro de link de biblioteca, mas > estou achando estranho, pois ambas as versões foram compiladas. De qualquer > maneira, não tenho noção de como resolver isso. > > Segue parâmetros de compilação: > > 9.0.4: ./configure --prefix=/usr/local/pgsql/9.0.4 --with-openssl > --with-system-tzdata=/usr/share/zoneinfo > 9.1.1: ./configure --prefix=/usr/local/pgsql/9.1.1 --with-openssl > --with-system-tzdata=/usr/share/zoneinfo > > Alguém tem alguma idéia do que posso fazer? > > Agradeço desde já. >
Problema resolvido! Havia achando apenas uma referência a este problema, e era um problema de empacotamento em um CentOS, onde o pacote ainda apontava para as bibliotecas antigas. Como eu havia compilado a partir do fonte, isso era praticamente impossível, maaas... Anteriormente, eu havia definido a váriável LD_LIBRARY_PATH=/usr/local/pgsql/9.0.4/lib no /etc/profile. Isso estava fazendo o pg_ctl da pasta 9.1.1 buscas as libs da versão anterior, e não as libs da própria pasta. Simplesmente limpei a váriável e tudo funcionou de acordo. Fica a dica se alguém passar pela mesma situação. Leonardo Carneiro.
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
