De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Como lidar com arquivos maiores de 2GB em Linux

Colaboração: Fabiano Teixeira Rangel

Data de Publicação: 16 de Dezembro de 2001

Um dos grandes problemas dos Administradores é trabalhar com arquivos maiores que 2 GB

Isso acontece em tabelas gigantescas do ORACLE , o pior é quando temos que resolver problemas de fragmentação. Por exemplo você tem uma tabela que é formada por 3 arquivos(data files) de 1.5 GB (4.5GB)

Ao fazer um export do banco você vai gerar um "arquivão" que seu sistema de arquivos não vai aguentar (a não ser que você esteja usando um journaled file system por exemplo)

Consegui resolver este problema da seguinte forma:

1) Criar um arquivo do tipo pipe

  mknod  /tmp/export_pipe   p

2)Comprima o arquivo em background (use qualquer programa de compressão, gzip, zip,compress etc.)

  compress < export_pipe  >export_pipe.Z &

se tiver que fechar a sua sessão para ir embora use:

  nohup  compress < export_pipe  >export_pipe.Z &

3) Exportando a tabela do Oracle

  exp file=/tmp/export_pipe userid=user/password table=<nome da tabela>

se você não entendeu 100%, ai vai a explicação:

Passo 1) Aqui a única coisa que é feita é criar um arquivo zerado(em branco), com um detalhe, é do tipo pipe, verifique com o comando:

  ls -lrt
  prw-rw-r--   1 fabiano  fabiano         0 Dec  7 15:36

Este arquivo tem um " p " no início.

Passo 2) Aparentemente o compactador, está compactando um arquivo zerado, mas na verdade ele pega o conteúdo do arquivo de entrada <export_pipe> compacta , joga para o arquivo de saída e libera o conteúdo do arquivo de entrada, assim o arquivo pipe cresce e diminui durante a execução do job sem estourar seu file system, criando diretamente um arquivo compactado (repetindo, você pode usar um outro compactador)

Passo 3) No passo 3 você pode usar a criatividade, eu estou usando um exemplo para fazer um export de uma tabela do ORACLE, que faz um dump da tabela para o arquivo pipe.

Você pode fazer o import no ORACLE , usando o mesmo conceito, qualquer problema estou a disposição.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Fabiano Teixeira Rangel