A partir da versão 10g do Oracle está disponível a ferramenta chamada Data Pump para transferir dados entre bases Oracle.
Além do processo tradicional, que gera um arquivo de dump dos dados na origem e o importa no destino, existe uma alternativa que elimina a geração deste arquivo intermediário. Com a utilização de um link entre as duas bases, é possível que os dados da origem sejam descarregados diretamente no destino.
A seguir um exemplo de como proceder com esta movimentação de dados:
Considere os seguintes alias definidos no arquivo tnsnames.ora da base origem:
orcl_origem => aponta para a base de origem
orcl_destino => aponta para a base de destino
1) Conecte no banco de dados de origem com o usuário SYSTEM.
Ex.: sqlplus system/<senha>@orcl_origem
2) Crie o link com a base de destino. Neste exemplo, será um link chamado 'exporta':
Ex.: create public database link exporta connect to system identified by <senha> using 'orcl_destino';
3) Abra a console do sistema operacional e execute o Export Data Pump. No exemplo abaixo será criado um usuário chamado HR2 e todos os objetos que estão com o esquema HR serão copiados para ele:
Ex.: expdp system/<senha>@orcl_origem directory=data_pump_dir logfile=exporta.log network_link=exporta schemas=hr remap_schema=hr:hr2
No comando acima, o parâmetro 'schemas' é responsável por filtrar quais dados serão importados, neste caso, todos os objetos do esquema 'hr'. O parâmetro 'remap_schema' é responsável por informar o nome do esquema 'HR2' que irá receber os dados que vem de do esquema 'HR'.
Neste processo apenas será criado um arquivo de log no servidor do banco de dados, com o nome informado no parâmetro 'logfile'. O diretório no servidor aonde este log será gerado é determinado pelo parâmetro 'directory'. Para encontrar qual é este diretório no servidor, execute a seguinte consulta no SqlPlus. Neste exemplo utilizamos um diretório criado por padrão com a criação do banco de dados, chamado 'data_pump_dir':
select directory_path from dba_directories where directory_name = 'DATA_PUMP_DIR';
O resultado será o caminho aonde o log foi gerado.
Para mover dados entre esquemas na mesma base, crie um database link utilizando na cláusula 'using' o mesmo alias TNS com o qual se conectou no banco.