Meu backup é gerado com pg_dump -Fc que no manual ta falando que é uma forma comprimida de backup. Então no caso o -Fc tá gerando backups com COPY. Seria isso né? E será que tem como fazer com que o COPY não aborte a transação inteira?
2008/5/29 jota. comm <[EMAIL PROTECTED]>: > Olá, Álvaro > > Uma sessão interativa é uma sessão psql, por exemplo: > > Se eu digitar: psql meu_banco eu abro uma sessão interativa para o banco > meu_banco. > > O seu backup é feito com o comando copy? Se for feito com o copy e um erro > for gerado ele aborta toda a transação, e isso implica que a sua tabela não > sera carregada. > > Espero ter ajudado. > > []s > > 2008/5/29 Álvaro Guimarães <[EMAIL PROTECTED]>: > > Meu problema em usar o pg_restore é o mesmo. >> Não quero rollback caso retorne erros e pelo que li ele não usa as >> variáveis do psql. >> Desculpe minha ignorancia. O que exatamente seria uma sessão interativa? >> Meu problema é que eu perco os dados de uma tabela inteira no backup >> porquê se uma instrução gerar um erro o postgresql da rollback nela. O >> script continua rodando depois disso então o ON_ERROR_STOP não é a solução >> do meu problema. >> >> Muito obrigado pelas respostas imediatas. >> >> >> 2008/5/29 jota. comm <[EMAIL PROTECTED]>: >> >>> Olá, Álvaro e Émerson >>> >>> Corrigindo a minha resposta: >>> >>> Segundo a documentação: >>> ON_ERROR_ROLLBACK >>> >>> When on, if a statement in a transaction block generates an error, the >>> error is ignored and the transaction continues. When interactive, such >>> errors are only ignored in interactive sessions, and not when reading script >>> files. When off (the default), a statement in a transaction block that >>> generates an error aborts the entire transaction. The on_error_rollback-on >>> mode works by issuing an implicit SAVEPOINT for you, just before each >>> command that is in a transaction block, and rolls back to the savepoint on >>> error. >>> Isto significa que os erros são apenas ignorados com ON_ERROR_ROLLBACK ON >>> em sessões interativas e não quando são lidas de um arquivo de script. >>> >>> Neste caso você pode tentar usar o ON_ERROR_STOP, mas como comentei no >>> e-mail anterior nunca usei com em bloco de transação com BEGIN e COMMIT em >>> um arquivo de script, então precisaria ser testado. >>> >>> Espero ter ajudado. >>> >>> []s >>> >>> 2008/5/29 jota. comm <[EMAIL PROTECTED]>: >>> >>> Olá, >>>> >>>> Para recuperar backup binário você precisa usar o pg_restore, com o >>>> comando psql não é possível. >>>> >>>> Nunca usei este parâmetro, existe um parâmetro chamado ON_ERROR_STOP que >>>> você pode habilitar ON ou OFF, quando ON se um comando gerar um erro ele >>>> aborta o processo, caso OFF ele executará todo o procedimento ignorando os >>>> erros. Nunca usei com transação então não sei se funcionará, acredito que >>>> deve ser melhor usar o ON_ERROR_ROLLBACK. >>>> >>>> E quanto ao parâmetro ON_ERROR_ROLLBACK para continuar uma transação >>>> quando um erro é gerado deve estar setado como ON, conforme a documentação: >>>> http://www.postgresql.org/docs/current/static/app-psql.html >>>> >>>> Espero ter ajudado. >>>> >>>> []s >>>> >>>> 2008/5/29 Emerson Casas Salvador <[EMAIL PROTECTED]>: >>>> >>>>> Álvaro Guimarães escreveu: >>>>> >>>>> Olá lista. >>>>> >>>>> Preciso restaurar um backup que está gerando alguns erros. Porém eu >>>>> preciso que esses erros sejam ignorados e que o rollback *não* seja >>>>> executado. >>>>> Estou tentando o seguinte dentro do utilitário psql: >>>>> >>>>> banco=# \set ON_ERROR_ROLLBACK on >>>>> banco=# \i backup.sql >>>>> >>>>> Porém o rollback é executado quando erros são encontrados. >>>>> Versão do postgresql é a *O Sistema Anti-Vírus detectou tentativa de >>>>> fraude de "8.1.9." * 8.1.9. <http://8.1.9.> >>>>> Sistema Operacional é o Fedora Core 6. >>>>> >>>>> Segundo o man psql isso era pra funcionar. >>>>> >>>>> ON_ERROR_ROLLBACK >>>>>> When on, if a statement in a transaction block >>>>>> generates an >>>>>> error, the error is ignored and the transaction >>>>>> continues. >>>>>> >>>>> >>>>> Outra dúvida aproveitando a mesma mensagem. >>>>> Há a possibilidade de restaurar backups binários pelo utilitário psql? >>>>> >>>>> Agradeço desde já. >>>>> >>>>> -- >>>>> Álvaro Guimarães >>>>> Santa Bárbara D'Oeste - SP - Brazil >>>>> >>>>> Pois é... mas ali vc ta dizendo >>>>> banco=# \set ON_ERROR_ROLLBACK *on >>>>> * >>>>> não seria: >>>>> banco=# \set ON_ERROR_ROLLBACK *off * >>>>> ? >>>>> >>>>> nunca usei isso, mas testa aí... >>>>> >>>>> ------------------------------------------------------------------------------------- >>>>> >>>>> Esta mensagem foi verificada pelo sistema de Anti-virus da SJB Solados. >>>>> >>>>> >>>>> _______________________________________________ >>>>> pgbr-geral mailing list >>>>> [email protected] >>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>>> >>>>> >>>> >>>> >>>> -- >>>> João Paulo >>>> www.dextra.com.br/postgres >>>> PostgreSQL >>> >>> >>> >>> >>> -- >>> João Paulo >>> www.dextra.com.br/postgres >>> PostgreSQL >>> >>> _______________________________________________ >>> pgbr-geral mailing list >>> [email protected] >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> >>> >> >> >> -- >> Álvaro Guimarães >> Depto. de T.I. >> Microwork Softwares >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > > > -- > João Paulo > www.dextra.com.br/postgres > PostgreSQL > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- Álvaro Guimarães Depto. de T.I. Microwork Softwares
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
