Usando named pipes no Linux: mknod, mkfifo
“Foi publicado post em nosso blog sobre apresentando e exemplificando (com comandos de compactação de arquivos) a utilização de named pipes em Linux. ”
Enviado por Hudson Murilo dos Santos (hudsantosΘgmail·com) – referência (cialinux.wordpress.com).
• Publicado por Augusto Campos em
2009-01-15
uso direto para importar e exportar bancos de dados, quando o dump é grande demais para caber no disco…
segue exemplo de import para o oracle (export é análogo):
mknod /tmp/PIPE p
nohup gunzip /tmp/PIPE &
nohup imp system/password file=/tmp/PIPE full=y &
===========================================
também uso para uma pequena aplicação que desenvolvi para fazer backups de tabelas do oracle para arquivos CSV. um shell cria um pipe, abre o sqlplus e executa a procedure passando o nome do pipe como parâmetro… a procedure escreve as linhas da tabela separando os valores com algum caracter separador, enquanto o gzip está na outra ponta consumindo e gerando um arquivo compactado.
eu acho muito interessante esse negócio que tem nos *nix e fiquei abismado ao saber que não existe nada equivalente no windows.
Dstolf,
É, eu não havia aplicado ainda para o imp no Oracle, legal que ele funciona. Eu uso apenas pro exp.
Tem uma base de 500 GB que compactada fica com 40GB, tranquilo! Nem me estresso com espaço em disco pra backup.
Também sou fã dos pipes e uso de recursos semelhantes pra ajudar no dia-a-dia. Ainda bem que os *nix nos proporcionam esse tipo de recurso!
Dê uma olhada em nosso blog http://cialinux.wordpress.com/ sempre que puder, pois procuro compartilhar assuntos desse tipo..
Valeu!
Se usar o data pump (expdp, somente a partir do oracle 10g) com a opção COMPRESS não precisa de nada disso.