Opa, muito obrigado pela ajuda William, Osvaldo, Jota e Emerson. 2008/6/2 William Leite Araújo <[EMAIL PROTECTED]>:
> Muito bem. Caso ainda esteja com o problema, converta o arquivo de > backup para o modo texto, usando o pg_restore sem especificar o banco de > dados, mas um arquivo, por exemplo : > > pg_restpres -F c [arquivo de backup] > novo_arquivo.sql > > > Em seguida, use o psql... > > > 2008/5/29 jota. comm <[EMAIL PROTECTED]>: > >> Olá, Álvaro >> >> Quando o parâmetro tiver setado para ON, ele ignora os erros e continua a >> sua transação sem abortar (rollback) o processo. Isso funciona em uma sessão >> interativa (psql). Interativo neste caso refere-se a sessão e não um valor >> para o parâmetro. Quando a execução ocorre a partir de um arquivo isso não >> acontece e o erro não é ignorado (acontece rollback) como ocorre na sessão. >> >> >> Espero ter ajudado. >> >> []s >> >> >> >> 2008/5/29 Álvaro Guimarães <[EMAIL PROTECTED]>: >> >>> Relendo a man page... >>> >>> 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 ses- >>>> sions, and not when reading script files. >>> >>> Quando setado como "ON", quando uma declaração num bloco de transação >>> gerar um erro, o erro vai ser ignorado e a transação vai continuar. Quando >>> setado como "interactive" os erros só serão ignorados numa sessão >>> interativa, e não lendo scripts. >>> >>> Ou seja, o tal do ON_ERROR_ROLLBACK era pra funcionar dando um \i dentro >>> do psql. >>> Não sei o que fazer. :( >>> >>> >>> >>> 2008/5/29 jota. comm <[EMAIL PROTECTED]>: >>> >>>> Olá, >>>> >>>> Por padrão os backups são gerados com copy, a menos que você informe o >>>> parâmetro -d para usar insert. >>>> Até onde sei não tem como fazer com o que o copy não aborte a transação >>>> inteira. >>>> >>>> >>>> []s >>>> >>>> 2008/5/29 Álvaro Guimarães <[EMAIL PROTECTED]>: >>>> >>>>> 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 >>>>> >>>>> >>>> >>>> >>>> -- >>>> 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 >> >> > > > -- > William Leite Araújo > Analista de Banco de Dados - QualiConsult > _______________________________________________ > 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
