› Fóruns › Banco de dados Oracle › EXPORTAR BANCO INTEIRO DA PRODUÇÃO PARA DESV/TESTE › EXPORTAR BANCO INTEIRO DA PRODUÇÃO PARA DESV/TESTE
Bom dia, tudo jóia ? Então, na verdade penso que o que te falta aí são mais conceitos básicos… O primeiro deles é que um database Oracle é composto por vários arquivos, os arquivos de dados, os arquivos de controles, os arquivos de redo log, etc, etc), E que para vc ser capaz de abrir e usar efetivamente esse database, vc PRECISA do software RDBMS Oracle instalado, aí vc usa esse software para ATIVAR O DATABASE, ie, criar os processo internos que vão controlar o database, vão abrir os arquivos, enfim, fazer toda a operacionalização…. O CONJUNTO desses processos que vc startou/ativou a partir dos binários Oracle E que se relacionam/controlam um determinado database se chama INSTÂNCIA, e essa instância é configurada por alguns arquivos específicos do database ao qual vai ser relacionada, como o initfile (o arquivo de parãmetros) e o controlfile (o arquivo de controles internos) …. Tá me acompanhando ???
Muito bem : sabendo disso, fica Claro que primeira coisa vc tem que ter o SOFTWARE ORACLE na máquina DESENV, sim ??? Antes de criar/configurar instância, antes de transferir seja o database (conjunto de arquivos) seja os dados, software RDBMS Oracle instalado na máquina destino é uma NECESSIDADE, e isso via de regra método NENHUM de backup / replicação / whatever faz automagicamente para vc… E Óbvio, alguns métodos de backup/replicação/transferência de databases contornam a necessidade mas VIA DE REGRA em princípio o software Oracle deve ser de MESMA EXATA VERSÃO e EDIÇÃO nas duas máquinas, as duas máquinas DEVEM estar rodando o mesmo Exato Sistema Operacional na mesma exata versão…. Igualmente para fcilitar Preferencialmente o hardware deve ser o mais semelhante possível , a capacidade dele (em especial espaço em disco e especificação de CPUs) deve ser o mais idêntico possível entre a máquina origem e a máquina destino…. legal ??
Okdoc, nas duas máquinas com o mesmo SO e hardware o mais idêntico possível está rodando o mesmo Exato software RDBMS Oracle, na mesma versão e Edição, com os mesmo patches ?? Agora vc tem uma escolha : vc pode OU usar uma ferramenta que vai te gerar um backup DO DATABASE (ie, vai gerar arquivos de backup contendo cópia de ** TODOS ** os arquivos físicos que compõem um database), que é o que o RMAN faz, OU vc pode gerar um dumpfile, ie, um arquivo contendo apenas os dados em si, e daí depois vc (ÓBVIO) vai TER que criar um database VAZIO antes para poder inserir os dados vazios nesse database ….
É uma questão de funcionalidade : como o RMAN faz backup DO DATABASE COMO UM TODO, obviamente ele vai CRIAR PARA VOCÊ os arquivos que compõem o database, ENQUANTO o datampump faz export e import de dados apenas, ie, vc vai obter com ele os INSERTs dos dados e CREATE TABLEs e coisas assim : os CREATEs do database em si NÂO FAZEM PARTE do escopo do export/import, a Funcionalidade do datampump NÃO É CRIAR O DATABASE, apenas os dados, ele SEMPRE EXIGE que o database em si já tenha sido criado….
==> No seu caso, eu ** IMAGINO ** que, como ao que vc diz deseja duplicar na máquina destino o DATABASE INTEIRO, eu recomendaria vc usar a ferramenta que te DUPLICA O DATABASE INTEIRO, e que ademais já vem embutida nos binários Oracle, que é o RMAN…
No caso do RMAN, há um ponto de decisão a mais : obviamente, como eu disse acima, quando um banco está aberto/sendo usado, os arquivos todos que compõem esse database estão/podem estar sendo lidos/gravados usados pela instância, OK ? Então, para que vc possa transferir o database que está ativo em PROD para a máquina DESENV esse database TEM que estar PREPARADO para permitir gravações/leituras de arquivos que estão em uso, isso é o modo de ARCHIVE LOG – pra saber isso, conecta como SYSDBA no database PROD via sqlplus e manda :
archive log list;
select log_mode from v$database;
SE retornar como database rodando em ARCHIVELOG MODE, ok, vc usa o comando RMAN chamado DUPLICATE FROM ACTIVE DATABASE, veja https://blog.pythian.com/duplicate-from-active-database-using-rman-step-by-step/ e http://www.oracle.com/technetwork/pt/articles/database-performance/active-database-duplication-2406487-ptb.html são exemplos para um passo-a-passo; só discordo quando vc diz que a Documentação não te mostra isso, mostra sim…
E SE a consulta que indiquei retornar como NOARCHIVE MODE, aí é mais chatinho, vc vai ser obrigada a fechar o database PROD e DESLIGAR/DESATIVAR a instância dele antes de poder fazer o DUPLICATE, que aí NÂO VAI MAIS SER com o comando DUPLICATE FROM ACTIVE DATABASE, veja https://blog.rackspace.com/duplicating-an-11gr2-oracle-database-with-no-connection-to-the-target para um exemplo….
[]s
Chiappa