Re: [pgbr-geral] Backup | Restore | PITR
On 28-10-2014 17:51, Matheus de Oliveira wrote: 2014-10-28 17:10 GMT-02:00 Danilo Silva danilo.dsg.go...@gmail.com: Agora me surgiu uma dúvida. Como controlo corretamente os arquivos que posso apagar do diretório pg_xlog após a conclusão do pg_stop_backup() ? Se o comando especificado no archive_command estiver funcionando, o Postgres mesmo irá eliminar os arquivos do pg_xlog. Meu xará já explicou, mas só para ser mais enfático: NUNCA! NUNCA! EM HIPÓTESE ALGUMA! JAMAIS PENSEM EM REMOVER/EDITAR/RENOMEAR/WHATEVER QUALQUER ARQUIVO DENTRO DO DIRETÓRIO pg_xlog O pg_xlog é gerenciado pelo próprio PostgreSQL, você só pode remover/editar/renomear/whatever os arquivos dentro do diretório onde está salvando os logs arquivados (apontado pelo archive_command). Não apenas no pg_xlog, mas também em qualquer arquivo/diretório do cluster, com exceção dos arquivos de configuração (postgresql.conf e pg_hba.conf) e no pg_log onde armazena logs de atividade, caso vc tenha configurado dessa forma. O resto deve ser INTOCÁVEL, a não ser que vc tenha muita certeza do que está fazendo... :-) -- Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento signature.asc Description: OpenPGP digital signature ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Backup | Restore | PITR
2014-10-28 17:51 GMT-02:00 Matheus de Oliveira matioli.math...@gmail.com: NUNCA! NUNCA! EM HIPÓTESE ALGUMA! JAMAIS PENSEM EM REMOVER/EDITAR/RENOMEAR/WHATEVER QUALQUER ARQUIVO DENTRO DO DIRETÓRIO pg_xlog Isso é tão verdade, que podia virar uma camiseta! :D -- Sebastian Webber http://swebber.me ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Backup | Restore | PITR
Bom dia Pessoal, Sou novo na lista, tenho acompanhado alguns emails e fico impressionado com a dedicação do pessoal em responder a todas as questões com o nível incrível de detalhe. Parabéns. Fiz um curso na Dextra em SP a uns dois anos, e estou trabalhando para migrar um banco de dado X para PostgreSQL. ( Estou utilizando windows 7 com versão 9.3.5 do PostgreSQL. O tamanho da minha base de dados é relativamente pequena ( 231 tabelas ocupando um total entre 4GB e 5GB ). Pois bem, a migração do bando está feita ( Homologando ), e agora estou me apegando a entender a parte de Backup e Restore, mas estou tendo muita dificuldade, mas creio que por falta de entendimento meu. No meu ambiente atual, faço backup completo do banco de dados todas as noites, com o banco online e em uso, e tenho o log de transações para, em caso de catástrofe*, posso pegar o último backup completo e aplicar o log atual ( Tem todo um processo de transcrever e ler o mesmo para o banco ). Com o PostgreSQL, entendi que para ter um ambiente igual, para em caso de catástrofe poder recuperar os dados para o mais atual possível, eu devo efetuar um backup completo diariamente ( estou fazendo isso com o pg_dump ) e manter os archives ativados [1]. Até aí creio que fiz tudo certo. Para simular uma catástrofe, eu desligo o computador com transações ocorrendo no banco, e quando ligo novamente, não consigo nem subir o serviço do postgres, aí é que começo a apanhar. Desinstalo e reinstalo o postgres, mesma versão, volto o backup (pg_restore) e sigo as instruções de [1], mas não consigo. Quando digo não consigo, é estou fazendo algo errado, não volta os archives. Gostaria de saber se alguém tem um passo a passo mais detalhado de como fazer isso, pois não quero colocar o banco postgres em produção sem ter domínio de como restaurar um backup em caso de problemas. [1] http://www.postgresql.org/docs/9.3/static/continuous-archiving.html *Qualquer tipo de perda de dados ou do próprio banco de dados. Perdoem por me alongar tanto, mas queria apresentar minha situação e apresentação ao grupo. Agradeço a todos pela compreensão. Fernando Luís Cambiaghi *cambia...@gmail.com cambia...@gmail.com* ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Backup | Restore | PITR
Bom dia, Sugiro a leitura do livro Instant PostgreSQL Backup and Restore How-to, gostei muito do mesmo, e além do que já foi recomendado aqui na lista também. On 10/28/2014 08:44 AM, Fernando Cambiaghi wrote: Bom dia Pessoal, Sou novo na lista, tenho acompanhado alguns emails e fico impressionado com a dedicação do pessoal em responder a todas as questões com o nível incrível de detalhe. Parabéns. Fiz um curso na Dextra em SP a uns dois anos, e estou trabalhando para migrar um banco de dado X para PostgreSQL. ( Estou utilizando windows 7 com versão 9.3.5 do PostgreSQL. O tamanho da minha base de dados é relativamente pequena ( 231 tabelas ocupando um total entre 4GB e 5GB ). Pois bem, a migração do bando está feita ( Homologando ), e agora estou me apegando a entender a parte de Backup e Restore, mas estou tendo muita dificuldade, mas creio que por falta de entendimento meu. No meu ambiente atual, faço backup completo do banco de dados todas as noites, com o banco online e em uso, e tenho o log de transações para, em caso de catástrofe*, posso pegar o último backup completo e aplicar o log atual ( Tem todo um processo de transcrever e ler o mesmo para o banco ). Com o PostgreSQL, entendi que para ter um ambiente igual, para em caso de catástrofe poder recuperar os dados para o mais atual possível, eu devo efetuar um backup completo diariamente ( estou fazendo isso com o pg_dump ) e manter os archives ativados [1]. Até aí creio que fiz tudo certo. Para simular uma catástrofe, eu desligo o computador com transações ocorrendo no banco, e quando ligo novamente, não consigo nem subir o serviço do postgres, aí é que começo a apanhar. Desinstalo e reinstalo o postgres, mesma versão, volto o backup (pg_restore) e sigo as instruções de [1], mas não consigo. Quando digo não consigo, é estou fazendo algo errado, não volta os archives. Gostaria de saber se alguém tem um passo a passo mais detalhado de como fazer isso, pois não quero colocar o banco postgres em produção sem ter domínio de como restaurar um backup em caso de problemas. [1] http://www.postgresql.org/docs/9.3/static/continuous-archiving.html *Qualquer tipo de perda de dados ou do próprio banco de dados. Perdoem por me alongar tanto, mas queria apresentar minha situação e apresentação ao grupo. Agradeço a todos pela compreensão. Fernando Luís Cambiaghi /cambia...@gmail.com mailto:cambia...@gmail.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Backup | Restore | PITR
Bom dia Fernando. Sempre que seu banco PostgreSQL der problema, entre no Event Viwer do windows e verifique o log do banco de dados... Sempre vai ter um log que vai lhe ajudar a resolver seu problema. Em 28 de outubro de 2014 08:44, Fernando Cambiaghi cambia...@gmail.com escreveu: Bom dia Pessoal, Sou novo na lista, tenho acompanhado alguns emails e fico impressionado com a dedicação do pessoal em responder a todas as questões com o nível incrível de detalhe. Parabéns. Fiz um curso na Dextra em SP a uns dois anos, e estou trabalhando para migrar um banco de dado X para PostgreSQL. ( Estou utilizando windows 7 com versão 9.3.5 do PostgreSQL. O tamanho da minha base de dados é relativamente pequena ( 231 tabelas ocupando um total entre 4GB e 5GB ). Pois bem, a migração do bando está feita ( Homologando ), e agora estou me apegando a entender a parte de Backup e Restore, mas estou tendo muita dificuldade, mas creio que por falta de entendimento meu. No meu ambiente atual, faço backup completo do banco de dados todas as noites, com o banco online e em uso, e tenho o log de transações para, em caso de catástrofe*, posso pegar o último backup completo e aplicar o log atual ( Tem todo um processo de transcrever e ler o mesmo para o banco ). Com o PostgreSQL, entendi que para ter um ambiente igual, para em caso de catástrofe poder recuperar os dados para o mais atual possível, eu devo efetuar um backup completo diariamente ( estou fazendo isso com o pg_dump ) e manter os archives ativados [1]. Até aí creio que fiz tudo certo. Para simular uma catástrofe, eu desligo o computador com transações ocorrendo no banco, e quando ligo novamente, não consigo nem subir o serviço do postgres, aí é que começo a apanhar. Desinstalo e reinstalo o postgres, mesma versão, volto o backup (pg_restore) e sigo as instruções de [1], mas não consigo. Quando digo não consigo, é estou fazendo algo errado, não volta os archives. Gostaria de saber se alguém tem um passo a passo mais detalhado de como fazer isso, pois não quero colocar o banco postgres em produção sem ter domínio de como restaurar um backup em caso de problemas. [1] http://www.postgresql.org/docs/9.3/static/continuous-archiving.html *Qualquer tipo de perda de dados ou do próprio banco de dados. Perdoem por me alongar tanto, mas queria apresentar minha situação e apresentação ao grupo. Agradeço a todos pela compreensão. Fernando Luís Cambiaghi *cambia...@gmail.com cambia...@gmail.com* ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Backup | Restore | PITR
Bom dia Fernando, Com o PostgreSQL, entendi que para ter um ambiente igual, para em caso de catástrofe poder recuperar os dados para o mais atual possível, eu devo efetuar um backup completo diariamente ( estou fazendo isso com o pg_dump ) e manter os archives ativados [1]. Até aí creio que fiz tudo certo. Acho que o erro está nesse ponto. O backup completo diário com pg_dump não pode ser usado junto com os archive logs. Para restaurar o banco no estado mais atual possível, além de utilizar o arquivamento de logs de transação, é preciso executar o backup base, descrito na seção 24.3.3 do link que você está seguindo [1]. É recomendado ter as 2 opções de backup (pg_dump e archive). Para restaurar: pg_dump - pg_restore archive- backup base + archive logs [1] http://www.postgresql.org/docs/9.3/static/continuous-archiving.html [2] http://www.postgresql.org/docs/9.3/static/app-pgbasebackup.html -- Matheus Ricardo Espanhol --- Dextra Sistemas http://www.dextra.com.br/postgres www.pganalytics.io ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Backup | Restore | PITR
Matheus, obrigado pela resposta, eu estava mesmo combinando os tipos de backup e restore errados. Gostaria de parabenizá-lo aqui no grupo pelo Webinar sobre PgAnalytics, eu participei e achei muito bom. Thiago, obrigado pela ajuda, com sua dica o restore funcionou perfeitamente de forma simples demais. Jean, vou dar uma olhada neste livro assim que possível, agradeço a atenção. Agora me surgiu uma dúvida. Como controlo corretamente os arquivos que posso apagar do diretório pg_xlog após a conclusão do pg_stop_backup() ? Agradeço muito a colaboração dada por todos. Fernando Luís Cambiaghi *cambia...@gmail.com cambia...@gmail.com* Em 28 de outubro de 2014 09:16, Matheus Ricardo Espanhol matheusespan...@gmail.com escreveu: Bom dia Fernando, Com o PostgreSQL, entendi que para ter um ambiente igual, para em caso de catástrofe poder recuperar os dados para o mais atual possível, eu devo efetuar um backup completo diariamente ( estou fazendo isso com o pg_dump ) e manter os archives ativados [1]. Até aí creio que fiz tudo certo. Acho que o erro está nesse ponto. O backup completo diário com pg_dump não pode ser usado junto com os archive logs. Para restaurar o banco no estado mais atual possível, além de utilizar o arquivamento de logs de transação, é preciso executar o backup base, descrito na seção 24.3.3 do link que você está seguindo [1]. É recomendado ter as 2 opções de backup (pg_dump e archive). Para restaurar: pg_dump - pg_restore archive- backup base + archive logs [1] http://www.postgresql.org/docs/9.3/static/continuous-archiving.html [2] http://www.postgresql.org/docs/9.3/static/app-pgbasebackup.html -- Matheus Ricardo Espanhol --- Dextra Sistemas http://www.dextra.com.br/postgres www.pganalytics.io ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Backup | Restore | PITR
Em 28 de outubro de 2014 11:17, Fernando Cambiaghi cambia...@gmail.com escreveu: Matheus, obrigado pela resposta, eu estava mesmo combinando os tipos de backup e restore errados. Gostaria de parabenizá-lo aqui no grupo pelo Webinar sobre PgAnalytics, eu participei e achei muito bom. Obrigado Fernando, Agora me surgiu uma dúvida. Como controlo corretamente os arquivos que posso apagar do diretório pg_xlog após a conclusão do pg_stop_backup() ? Se o comando especificado no archive_command estiver funcionando, o Postgres mesmo irá eliminar os arquivos do pg_xlog. Mas para eliminar os arquivos antigos de backup (destino do archive_command) você deve renovar o backup base antes de remover archive logs anteriores. O pg_archivecleanup te ajuda com isso: http://www.postgresql.org/docs/9.3/static/pgarchivecleanup.html -- Matheus Ricardo Espanhol --- Dextra Sistemas http://www.dextra.com.br/postgres www.pganalytics.io ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Backup | Restore | PITR
Em 28 de outubro de 2014 13:24, Matheus Ricardo Espanhol matheusespan...@gmail.com escreveu: Em 28 de outubro de 2014 11:17, Fernando Cambiaghi cambia...@gmail.com escreveu: Matheus, obrigado pela resposta, eu estava mesmo combinando os tipos de backup e restore errados. Gostaria de parabenizá-lo aqui no grupo pelo Webinar sobre PgAnalytics, eu participei e achei muito bom. Obrigado Fernando, Agora me surgiu uma dúvida. Como controlo corretamente os arquivos que posso apagar do diretório pg_xlog após a conclusão do pg_stop_backup() ? Se o comando especificado no archive_command estiver funcionando, o Postgres mesmo irá eliminar os arquivos do pg_xlog. Mas para eliminar os arquivos antigos de backup (destino do archive_command) você deve renovar o backup base antes de remover archive logs anteriores. O pg_archivecleanup te ajuda com isso: http://www.postgresql.org/docs/9.3/static/pgarchivecleanup.html Matheus, aproveitando o gancho... Digamos que o meu archive_command esteja setado para o diretório /archives/, se eu utilizar o pg_archivecleanup nesse diretório como ele saberá quais arquivos devem ser excluídos? O utilitário irá apagar todos os arquivos anteriores ao último basebackup? []s Danilo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Backup | Restore | PITR
2014-10-28 17:10 GMT-02:00 Danilo Silva danilo.dsg.go...@gmail.com: Agora me surgiu uma dúvida. Como controlo corretamente os arquivos que posso apagar do diretório pg_xlog após a conclusão do pg_stop_backup() ? Se o comando especificado no archive_command estiver funcionando, o Postgres mesmo irá eliminar os arquivos do pg_xlog. Meu xará já explicou, mas só para ser mais enfático: NUNCA! NUNCA! EM HIPÓTESE ALGUMA! JAMAIS PENSEM EM REMOVER/EDITAR/RENOMEAR/WHATEVER QUALQUER ARQUIVO DENTRO DO DIRETÓRIO pg_xlog O pg_xlog é gerenciado pelo próprio PostgreSQL, você só pode remover/editar/renomear/whatever os arquivos dentro do diretório onde está salvando os logs arquivados (apontado pelo archive_command). Matheus, aproveitando o gancho... Digamos que o meu archive_command esteja setado para o diretório /archives/, se eu utilizar o pg_archivecleanup nesse diretório como ele saberá quais arquivos devem ser excluídos? O utilitário irá apagar todos os arquivos anteriores ao último basebackup? Não fará, o pg_archivecleanup espera que você passe para ele qual o segmento que deve permanecer. Há algumas formas de saber, uma delas é procurar pelo arquivo que tem o final .backup, o número dele indica o primeiro arquivo necessário para restauração do basebackup de quando ele foi executado (se quiser mais informações como a data/hora, veja o conteúdo deste arquivo, ele é textual). A outra opção é pegar o retorno da chamada do pg_start_backup (por exemplo: SELECT pg_xlogfile_name(pg_start_backup('label', true)) ). Eu costumo salvar junto com o backup base essa informação (e outras como a data/hora), daí eu consigo saber exatamente qual manter. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral