Esta dica é bem útil para efetuar export/import de um banco de dados. Digamos que você esteja enfrentando problemas de espaço em disco, você tem míseros 10G de espaço livre sobrando e por sorte seu arquivo DUMP compactado ficou com pouco abaixo disto vamos suport 9G de dump o que não é considerado um arquivo grande para este tipo de situação. Como iremos importar a base de dados? Bom vamos lhe apresentar o comando mknod no Linux. Est comano cria um arquivo especial no linux. Primeiro você precisa criar um arquivo para ser o apontamento da memória.
# mknod pipe1 p
Você também poderá utilizar o mkfifo
# mkfifo pipe1 p
Depois você precisa descompactar o arquivo e aqui é que entra a grande mágica deste artigo.
# gunzip < arquivocompactado.dmp.gz > pipe1 &
Este comando irá descompactar o arquivo para dentro do arquivo pipe1, porem se você listar o arquivo ele estará vazio. OBS: você não poderá tentar editar o arquivo, caso você faça isto você terá de refazer todos estes passos novamente. Após isto você deverá efetuar o processo de import.
# imp user/senha@banco file=pipe1 log=import.log parâmetros...
Basicamente o que fizemos foi colocar o arquivo de dump para descompactar em memória sendo assim ele vai ser descompactado no arquivo pipe1 conforme o import vai precisando, e com isso o mesmo não ocupa espaço em disco. Um teste que eu acabei não realizando seria a questão de performance dos imports. Este processo também serve para export’s.
# mkfifo pipe1 p # gzip < pipe1 > arquivocompactado.dmp.gz & # exp user/senha@banco full=y file=pipe1 log=log.log...
Este procedimento é chamado de “export on fly” e não funciona para o DataPump. Ai vai minha dica. 😉
Autor: Leandro Lana
Trabalho com banco de dados Oracle desde 2006, já trabalhei com as plataformas 9i, 10G, 11G, 12C, 18C, 19C e 21(ainda em testes).
Trabalhando atualmente como consultor Oracle na MigraTI Soluções em TI como administrador de banco de dados Oracle, SQL-Server, MySQL e Postgresql.
Contato: leandro.lana@migrati.com.br
Fone: (47) 9191-6052 / (47) 3328 0996
Certificações:
OCA 10G.
OCP 10G.
OCE Linux.
OCE RAC/Cluster.
MCP SQL-Server 2008.
MCITP SQL-Server 2008.
DB2 Fundamentals.
One thought on “Export/import em memória”