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

Responder a