Esse tutorial vai servir para mostrar que o velho export - import ainda pode servir para algumas coisas, entre elas, fazer um backup básico, sem dor de cabeça na hora de fazer um restore, pois ele vai servir para restaurar para qualquer versão do Oracle e também outras utlitiades, como migrar bases entres SO´s e plataformas diferentes e criar esquemas de testes em outros ambientes, sem nenhuma surpresa. O basico que por incrivel que pareça muita gente não sabe....se no prompt ou shell você digita "EXP HELP=Y" ou "IMP HELP=Y" ele vai te mostrar todas as opções desse aplicativo do Oracle. Agora vamos a um exemplo de um export básico de um esquema e o import em outra base, lembrando que, a base de dados destino, deve ter o usuário já criado. |
EXP SYSTEM/SENHA@instance FILE=NOME_ARQUIVO.DMP DIRECT=Y OWNER=ANDERSON LOG=ARQUIVO.LOG
Agora vou explicar, primeiro, usuário senha e instance, você poderia fazer um export usando seu desktop sem problema nenhum. O parametro FILE diz o nome do arquivo "DUMP" que será o resultado do export, você poderia colocar qualquer extensão, mas a muito tempo os DBA´s decidiram adotar extensão sugerida pela Oracle, que é "DMP", o "DIRECT", bom poderia explicar tecnicamente, mas o objetivo aqui é sempre simplificar, então esse parametro tenta fazer um export direct, que vai ser muito mais rapido do que se fosse norma( as vezes ele não pode usar esses parametros para todas as tabelas. Finalmente vamos ao esquema que quer exportar, nesse caso, defino o OWNER =ANDERSON, ou seja, só vai fazer o export de tudo que tem no esquema do ANDERSON e para que no final do export cheque se tudo andou bem, o arquivo de log, que no caso vai ser "ARQUIVO.LOG" mas tambem pode ter qualquer nome.
Se eu quisesse importar esse "DUMP" ou "DMP" em outra base, primeiro teria que criar o usuário ANDERSON ou então usar dois parametros adicionais. Para importar se o usuário ANDERSON já existisse, ele seria assim.
IMP ANDERSON/SENHA@INSTANCE FILE=NOME_ARQUIVO.DMP IGNORE=Y LOG=ARQUIVO.LOG
E se quisesse importar em outro esquema seria assim:
IMP SYSTEM/SENHA@INSTANCE FILE=NOME_ARQUIVO.DMP IGNORE=Y LOG=ARQUIVO.LOG FROMUSER=ANDERSON TOUSER=TESTE
Notem que temos mais 3 parametros novos, primeiro o IGNORE=Y, ele faz com que qualquer erro ou warning no interrompa o import, isso serve se ele por exemplo, tentar criar um usuário e ele ja existe. Os outros dois são FROMUSER E TOUSER, que servem para dizer o usuário origem do DMP e o destino da base que vai importar.
Agora a pergunta????? E se fosse um backup da base toda??? como ficaria?? Era só trocar o OWNER do export por um FULL=Y e pronto, teria um backup de toda a base de dados. E para fazer o import, se a estrutura fosse toda a mesma, tudo daria certo e o comando não teria FROMUSER e nem TOUSER.
Agora as dicas....