Como faço para corrigir o problema que causa a mensagem de log “packet de inicialização incompleta” tentando implementar a replicação no Postgresql?

4

Eu tenho dois servidores em nuvem executando o Ubuntu 13.04 e o PostgreSQL 9.2.

Eu usei principalmente este post no blog para me ajudar na configuração das coisas. No entanto, para fazer o despejo de banco de dados inicial para o escravo, estou usando a estratégia pg_start_backup/pg_stop_backup usada em este outro blog postar . Eu também li os documentos e postgres wikis. Eu tive vários problemas que consegui resolver, mas não consegui passar por essa falha "o banco de dados está iniciando".

Não tenho certeza se vejo:

cp: cannot stat /var/lib/postgresql/9.2/archive/00000001000000000000003A':
No such file or directory

após consistent recover state reached ser normal ou o primeiro sinal de um problema. A pesquisa que fiz em the database is starting up e incomplete startup packet me diz que algo está enviando pacotes TCP vazios para o escravo. A única coisa que até sabe sobre o escravo é o mestre, então não tenho certeza porque ele está enviando pacotes vazios ...

Alguém já trabalhou com isso e tem uma ideia do que pode estar errado?

O login do postgres no escravo é assim:

2013-08-26 13:01:38 CDT LOG:  entering standby mode
2013-08-26 13:01:38 CDT LOG:  restored log file "000000010000000000000039" from archive
2013-08-26 13:01:38 CDT LOG:  incomplete startup packet
2013-08-26 13:01:39 CDT LOG:  redo starts at 0/39000020
2013-08-26 13:01:39 CDT LOG:  consistent recovery state reached at 0/390000E0
cp: cannot stat '/var/lib/postgresql/9.2/archive/00000001000000000000003A': No such file or directory
2013-08-26 13:01:39 CDT LOG:  streaming replication successfully connected to primary
2013-08-26 13:01:39 CDT FATAL:  the database system is starting up
2013-08-26 13:01:39 CDT FATAL:  the database system is starting up
2013-08-26 13:01:40 CDT FATAL:  the database system is starting up
2013-08-26 13:01:40 CDT FATAL:  the database system is starting up
2013-08-26 13:01:41 CDT FATAL:  the database system is starting up
2013-08-26 13:01:42 CDT FATAL:  the database system is starting up
2013-08-26 13:01:42 CDT FATAL:  the database system is starting up
2013-08-26 13:01:43 CDT FATAL:  the database system is starting up
2013-08-26 13:01:43 CDT FATAL:  the database system is starting up
2013-08-26 13:01:44 CDT FATAL:  the database system is starting up
2013-08-26 13:01:44 CDT FATAL:  the database system is starting up
2013-08-26 13:01:44 CDT LOG:  incomplete startup packet
2013-08-26 13:03:27 CDT FATAL:  the database system is starting up
2013-08-26 13:03:27 CDT FATAL:  the database system is starting up
2013-08-26 13:03:30 CDT FATAL:  the database system is starting up
2013-08-26 13:03:30 CDT FATAL:  the database system is starting up

obrigado! brad

    
por colour me brad 26.08.2013 / 21:39

1 resposta

1

Você não está conseguindo copiar o (s) último (s) arquivo (s) WAL após pg_stop_backup . Você precisa ter o arquivamento do WAL configurado ou copiar manualmente o WAL se for usar esse método.

Em 9.2 e acima, é muito mais fácil fazer cópias únicas com pg_basebackup --xlog-method=stream . Isso copia os logs de transação sobre o protocolo de replicação, bem como o próprio backup da base, e cuida de pg_start_backup e pg_stop_backup automaticamente.

Veja o manual pg_basebackup .

Os erros de "pacote de inicialização incompleta" mencionados no título provavelmente não estão relacionados e são causados por tentativas de estabelecer conexões SSL com um servidor não compatível com SSL de clientes que possuem sslmode=prefer .

    
por 27.08.2013 / 06:57