Em 22 de janeiro de 2015 11:09, Flavio Henrique Araque Gurgel <
[email protected]> escreveu:

> 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?


Coloquei na pasta de dados (data_directory). Na mesma pasta onde está o
postgresql.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.


Mandei o log completo. Está pequeno porque limpei tudo (os logs) antes de
dar start no banco.


>
>  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).
>

As permissões do recovery.conf :

-rwxr-xr-x  1 postgres  wheel       4730 Jan 22 11:04 recovery.conf*
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a