Desejo copiar um esquema Oracle de um banco de dados de produção para um banco de dados de validação. Ambos os bancos de dados são Oracle 11g R1 edição padrão e precisam de menos tempo de interrupção quanto possível (mas posso fazer se for absolutamente necessário).
Ambos são instalados em seu próprio servidor apropriado (Linux RedHat 5 Enterprise), os nomes das instâncias diferem, o tablespace e os arquivos de dados já existem, ambos usam logs de arquivo.
O que eu quero fazer é selecionar um esquema inteiro no banco de dados de produção e duplicá-lo no banco de dados de validação. O processo deve incluir todas as tabelas, índices e todos os objetos de esquemas dependentes. Existem alguns Lobs em algumas tabelas, mas nenhum objeto "exótico" (como tipos), nenhum pacote, nenhum procedimento, nenhuma função, ... Todos os objetos residem em dois tablespaces bem identificados (um para tabelas e dados, outro para índices).
Não consigo duplicar todas as instâncias. Portanto, o comando duplicado do RMan não é uma opção.
Atualmente, existe um processo baseado no utilitário exp/imp, mas é muito lento, precisa de indisponibilidade do banco de dados (para preservar a integridade dos dados) e sujeito a erros (principalmente porque o processo manual é totalmente humano). Tenho a sensação de que usar o utilitário RMan Oracle seria bom, mas preciso de alguns conselhos ou comentários externos para definir a maneira certa de fazê-lo. Os utilitários Datapumps podem ser uma segunda opção valiosa (estou avaliando no momento).
Obrigado por seus conselhos Thomas
Use
expdp
com os parâmetrosflashback_scn
ou , juntamente com para exportar o esquema em um ponto consistente no tempo.flashback_time
SCHEMAS=
Isso é o mesmo que usar no utilitário
CONSISTENT=Y
legado .exp
Exemplos aqui .Se os dados do esquema em questão estiverem em um espaço de tabela próprio, sem outros objetos de outros esquemas, você pode usar
rman
para fazer uma recuperação pontual de espaço de tabela no tempo.