Estou tentando testar uma solução de backup que criei, e tive problemas
para subir subir o banco numa outra máquina.
O backup está sendo feito através do pg_start_backup() e pg_stop_backup().
Minha máquina de produção está com PostgreSQL 9.3.4 on
x86_64-unknown-freebsd8.2, compiled by gcc (GCC) 4.2.1 20070719
[FreeBSD], 64-bit
A máquina onde estou tentando restaurar o backup é um FreBSD 10.1 com
PostgreSQL 9.3.4.
Compilei os fontes e instalei da mesma forma que na máquina de produção.
Descompactei os arquivos de dados, e os arquivos de WAL também.
Criei o recovery.conf apenas com a seguinte linha :
restore_command = 'cp /dados/wal/hemo/%f %p'
Quando subo o banco tenho as seguintes mensagens no log :
2015-01-22 09:42:45 BRST [22212]: [1-1] user=,db= LOG: database system
was interrupted; last known up at 2015-01-22 01:50:09 BRST
2015-01-22 09:42:45 BRST [22212]: [2-1] user=,db= LOG: starting archive
recovery
2015-01-22 09:42:45 BRST [22212]: [3-1] user=,db= LOG: invalid primary
checkpoint record
2015-01-22 09:42:45 BRST [22212]: [4-1] user=,db= LOG: invalid
secondary checkpoint record
2015-01-22 09:42:45 BRST [22212]: [5-1] user=,db= PANIC: could not
locate a valid checkpoint record
2015-01-22 09:43:23 BRST [22210]: [3-1] user=,db= LOG: startup process
(PID 22212) was terminated by signal 6: Abort trap
2015-01-22 09:43:23 BRST [22210]: [4-1] user=,db= LOG: aborting startup
due to startup process failure
Não houve restauração como pretendido. O banco tentou um início após falha.
Aonde você colocou o recovery.conf?
Com uma busca na net a solução é rodar o pg_resetxlog. Apesar do banco
executar o comando restore e disponibiliza-lo para uso, está correto
isso ?!??!
Não, isso não é sua solução.
O pg_resetxlog é uma alternativa de extrema urgência após uma falha
catastrófica com corrupção de logs de transação, onde não há backup e
como último recurso e perda de dados certeira.
O que não estou entendo é porque o checkpoint é inválido.
Porque não houve restauração, pelo menos no trecho de log que nos enviou.
Copiei todos os arquivos de dados do banco para a máquina de recuperação
e todos os arquivos WAL indicados pelo arquivo
00000001000000580000000D.00000028.backup.
Que erro estou cometendo ?!??!
Verifique onde colocou seu recovery.conf e as permissões de acesso do
arquivo. Ele tem que estar no diretório de dados e com permissão para o
usuário postgres (a não ser que seu ambiente seja diferente do usual).
[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral