João, por favor veja se a minha dúvida fica mais clara agora:

Passo1: Criei uma tabela de testes com 1.840.161 registros.

SELECT count(*) from teste;
  count
---------
 1840161
(1 registro)


 Passo2: Estava exportando os dados da tabela para um arquivo .csv

COPY public.teste (campo1,campo2,campo3) to '/tmp/saida.csv' using
delimiters ';' CSV HEADER QUOTE '"' FORCE QUOTE campo1,campo2,campo3;


 Passo3: Enquanto os dados estavam sendo exportados, matei todos os
processos do PostgreSQL (tentei simular um problema de falta de energia por
exemplo)

killall postgres


 Passo4: Verifiquei o conteúdo do arquivo de log

:/var/log/postgresql$ tail -50 postgresql-8.3-main.log


 2010-05-12 14:53:46 BRT LOG:  inicializador do autovacuum foi iniciado
2010-05-12 14:53:46 BRT LOG:  sistema de banco de dados está pronto para
aceitar conexões
2010-05-12 14:53:46 BRT LOG:  pacote de inicialização incompleto
2010-05-12 14:54:01 BRT LOG:  pedido de desligamento inteligente foi
recebido
2010-05-12 14:54:01 BRT FATAL:  terminando conexão por causa de um comando
do administrador
2010-05-12 14:54:01 BRT COMANDO:  COPY public.teste (campo1,campo2,campo3)
to '/tmp/saida.csv' using delimiters ';' CSV HEADER QUOTE '"' FORCE QUOTE
campo1,campo2,campo3;
2010-05-12 14:54:01 BRT LOG:  inicializador do autovacuum está sendo
desligado
2010-05-12 14:54:01 BRT FATAL:  o sistema de banco de dados está desligando
2010-05-12 14:54:01 BRT LOG:  desligando
2010-05-12 14:54:01 BRT LOG:  sistema de banco de dados está desligado


 Passo5: Por fim, no arquivo .csv gerado, o número de linhas não foi nem 0
(zero) e nem 1.840.161 (o total de registros na tabela)

/tmp$ cat saida.csv | wc -l
479700


 Como na utilização do comando COPY ocorre tudo dentro de uma transação (é
tudo ou nada) porque obtive este resultado?


 Obrigado!

Thiago




2010/5/12 Joao Cosme de Oliveira Junior <[email protected]>

> isso ficaria agendado?? se tiver usando linux de um wc -l e veja o numero
> de linhas , implementação facinho ai joga pra dentro dum log......
>
> tipo pg_dump  ..... | wc- -l  > arquivo.log
>
>
>
> João Cosme de Oliveira Júnior
>
>
>
> "Lembre-se que da conduta de cada um depende o destino de todos."
>
> Seja inteligente, use Software livre!!!
> LPI Certified
> LPI000185554
>
>
> Em 12/05/2010 às 10:11 horas, [email protected]:
>
> no caso eu nao preciso fazer cargas, seria apenas exportar os dados das
> tabelas pra arquivos .csv
> no caso de erro na transação, seriam registrados logs?
>
>
> 2010/5/12 Fábio Telles Rodriguez <[email protected]>
>
>> o pgloader tem suporte a logs. Nada lhe impede também de criar um log com
>> um shell script que chame o psql e redirecione o STDOUT para um arquivo,
>> certo?
>>
>> O próprio psql tem funções internas para gerar log, veja: 
>> <http://www.postgresql.org/docs/9.0/static/app-psql.html>
>> http://www.postgresql.org/docs/9.0/static/app-psql.html
>>
>> <http://www.postgresql.org/docs/9.0/static/app-psql.html>[]s
>> Fábio Telles
>>
>> Em 12 de maio de 2010 10:04, Thiago Freitas 
>> <[email protected]>escreveu:
>>
>> blz pessoal!
>>> mas e quanto a questão dos logs?
>>>
>>> 2010/5/12 Fábio Telles Rodriguez <[email protected]>
>>>
>>> Thiago, o João já lhe respondeu corretamente.
>>>>
>>>> Em geral, exportar não costuma ser um grande problema (a não ser que
>>>> acabe o espaço em disco ou seu servidor caia). No entanto, para cargas, 
>>>> você
>>>> pode experimentar o pgloader:
>>>>
>>>> <http://pgloader.projects.postgresql.org/>
>>>> http://pgloader.projects.postgresql.org/
>>>>
>>>> <http://pgloader.projects.postgresql.org/>[]s
>>>> Fábio Telles
>>>>
>>>> Em 12 de maio de 2010 09:06, Thiago Freitas 
>>>> <[email protected]>escreveu:
>>>>
>>>>>  Prezados, estou exportando dados de uma tabela para um arquivo no
>>>>> formato .csv.
>>>>>
>>>>> Caso o processo seja abortado durante a exportação, devido a algum
>>>>> erro, será gerado log pelo PostgreSQL? Se sim, como faço para capturar 
>>>>> esse
>>>>> erro?
>>>>>
>>>>> Por exemplo, caso já tenham sido exportados 20.000 registros e esteja
>>>>> faltando o restante (total de 100.000 registros) e falta energia. O que
>>>>> acontece? No Arquivo de saída vão estar os 20.000 ou não vai ter nada? Em
>>>>> algum lugar ficará registrado o que aconteceu?
>>>>>
>>>>> Obrigado!
>>>>> Thiago
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> pgbr-geral mailing list
>>>>>
>>>>> [email protected]
>>>>>  <https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral>
>>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> blog: <http://www.midstorm.org/%7Etelles/>
>>>> http://www.midstorm.org/~telles/ <http://www.midstorm.org/%7Etelles/>
>>>> e-mail / jabber: [email protected]
>>>>
>>>> _______________________________________________
>>>> pgbr-geral mailing list
>>>> [email protected]
>>>>  <https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral>
>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>>
>>>>
>>>
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> [email protected]
>>>  <https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral>
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>>
>> --
>> blog: <http://www.midstorm.org/%7Etelles/>
>> http://www.midstorm.org/~telles/ <http://www.midstorm.org/%7Etelles/>
>> e-mail / jabber: [email protected]
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>>  <https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral>
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
>  "Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), 
> empresa pública federal regida pelo disposto na Lei Federal nº 5.615, é 
> enviada exclusivamente a seu destinatário e pode conter informações 
> confidenciais, protegidas por sigilo profissional. Sua utilização 
> desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a 
> recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, 
> esclarecendo o equívoco."
>
> "This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a 
> government company established under Brazilian law (5.615/70) -- is directed 
> exclusively to its addressee and may contain confidential data, protected 
> under professional secrecy rules. Its unauthorized use is illegal and may 
> subject the transgressor to the law's penalties. If you're not the addressee, 
> please send it back, elucidating the failure."
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a