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
