› Fóruns › Banco de dados Oracle › Drop em todos objeto de uma instancia › Drop em todos objeto de uma instancia
Edgar, algumas coisas que podem te ajudar :
=> primeiro, saiba que se vc quiser, o impdp É CAPAZ de RECRIAR os objetos que já existem no bnco-destino, veja a opção REPLACE do comando TABLE_EXISTS_ACTION na Documentação e como exemplo em http://www.acehints.com/2012/05/datapump-impdp-tableexistsaction-append.html – teste direitinho essa opção e veja se isso te ajuda, Evitando a necessidade de dropar antes do import….
ESSA foi uma das principais melhorias do impdp sobre o imp tradicional…
=> ** SAIBA ** que é *** ROTINA *** no trabalho de administração de um database Oracle vc Automatizar operações repetitivas – NINGUÉM tem tempo e paciência para digitar na munheca dezenas de comandos…. Isso é trabalho de LOUCO MANSO, lento, difícil e Absolutamente propenso ao erro…
Entre as muitas técnicas para isso, a minha Preferida é a técnica Amiga do DBA inteligente, que é vc gerar um SCRIPT com os comandos através do sqlplus , via comando SPOOL para gravar arquivo e com SELECTs gerando a string dos arquivos.
Por exemplo, digamos que eu queira dropar todos os usuários exceto o SYS, o SYSTEM e um punhadinho de outros, ao invés de digitar na mão (loucura!!) eu gero os comandos necessários (espertamente!) conectando no sqlplus com um usuário com poder de administrador e digitando :
set term off feedback off verify off pages 0 lines 500 trimspool on head off
spool diretoriodesejado/nomedoarquivo.sql
select ‘DROP USER ‘ || owner || ‘;’
from dba_users
where owner not in (‘SYS’, ‘SYSTEM’, ‘demaisusuariosquevcqermanter’)
order by 1;
spool off
aí é só editar o arquivo gravado para conferir a lista, tirar alguma eventual linha em branco, mensagem do sistema ou coisinha assim gerada e executar o script com @diretoriodesejado/nomedoarquivo.sql …. mais fácil que andar pra frente, rápido e simples…
Nem preciso dizer que se vc quiser automatizar operações em prompt de comando, vc PODE usar a técnica também, basta gerar um (ou até vários, se for o caso) shell script/.BAT/whateverseuSistemaOperacionalpermita com o SPOOL…
=> a idéia de vc fazer vários imports de schema em cima de um dump file FULL faz sentido se vc tem um dump file grande/volumoso e precisa ACELERAR AO MÁXIMO a importação, pois aí vc vai poer abrir múltiplas janelas e ter um import de schema diferente em cada janela, todos rodando ao mesmo tempo : via de regra uma máquina Profissional tem capacidade de I/O, memória e CPU suficientes para isso…
Nesse caso, , para que o database não reclame de constraints inter-schemas (ie, constraints que usam/referenciam objetos em OUTRO schema afora do que está sendo importado), vc deverá indicar a opção de EXCLUDE de constraints , e aí no fim de tudo vc importa só as constraints que ficaram faltando, E (se houver objetos, sinônimos e/ou programas que referenciam objetos de outros schemas) recompilar tudo…
=> falando de performance há muitas possibilidades (como usar Parallel clause na importação, importar só os dados e depois recriar as constraints com NOVALIDATE – já que OBVIAMENTE os dados já foram validados na origem, imagino!), recriar os índices com parallel ddl…
Não as vou detalhar todas aqui mas para Grandes Volumes, pode ser interessante as aplicar…
[]s
Chiappa