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
