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

Responder a