Ola pessoal.Manja quando te pedem para criar uma base nova para desenvolvimento, simulacao, etc. Tranquilo.Vamos fazer um duplicate e resolvemos o assunto, certo? So que o cara da infra fala que o duplicate nao vai ser possivel (nem o "comum", nem o active) ja que o processo vai trafegar muitos dados pela rede, e o backup fica em uma rede separada e vai sentar o link se fizer, e bla bla bla.Ok, entao vamos copiar o backup para a maquina de destino, e fazemos um restore pensa o pequeno gafanhoto, nosso DBA. Opa um restore tambem complica, poque essa maquina e usada para um DataGuard do cliente, e ele ja tem uma base chamada "BANCO49" la, que e o mesmo nome claro da sua base de producao.Claro, poderiamos usar um workaround (nome bonito ne) e colocar o nosso DB_UNIQUE_NAME com o nome da nossa nova base e manter o DB_NAME com o nome original para "burlar" a restricao dos nomes.Porem isso nao e recomendavel e nao e legal tambem. Para resolver esse problema, desde a versao 11g temos uma alternativa legal e que nem todo mundo conhece. Podemos fazer um duplicate sem acessar o target.No note "RMAN 11GR2 : DUPLICATE Without Target And Recovery Catalog Connection (Doc ID 874352.1)" temos o procedimento descrito que e muito simples e eu descrevo abaixo para voces, com alguns acertos feitos por mim.Na verdade o procedimento e o mesmo de uma duplicate comum, com apenas alguns acertos.1) Os backuppieces devem ser copiados para a maquina de destino. No nosso exemplo, irei copiar para "/nfbackup/rman/BANCO49".2) O procedimento funciona com o "DB_FILE_NAME_CONVERT", porem eu gosto de ter um pouco mais de controle sobre o processo, por isso eu uso o "SET NEWNAME".3) Podemos usar o OMF (Oracle Managed Files) para definicao dos locais dos datafiles. Eu particularmente gosto disso e uso sempre o "SET NEWNAME TO NEW". Sendo assim, devemos configurar: *.db_create_file_dest = '/BANCO49/oradata/banco49/' *.db_create_online_log_dest_1 = '/BANCO49/oradata/banco49/' *.db_create_online_log_dest_2 = '/BANCO49/oradata/banco49/'4) Todos os outros procedimentos para o duplicate de uma base comum devem ser observados.Tudo isso pronto, vamos ao duplicate. So que antes, mais algumas observacoes importantes:1) Repare que iremos nos conectar somente a base auxiliar ("rman AUXILIARY /").2) Podemos alocar quantos canais precisarmos, mas nao esqueca somente no EE.3) Esse duplicate somente funciona com o "UNTIL TIME".4) O comando de duplicate tambem e um pouquinho diferente. 5) O pulo do gato esta na clausula "BACKUP LOCATION '/local/do/backup' "Todas as mudancas estao listadas abaixo.rman AUXILIARY / << EOFRUN{ ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK FORMAT '/nfbackup/rman/BANCO49/%d_%Y%M%D_%U.dat'; ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK FORMAT '/nfbackup/rman/BANCO49/%d_%Y%M%D_%U.dat'; ALLOCATE AUXILIARY CHANNEL aux3 DEVICE TYPE DISK FORMAT '/nfbackup/rman/BANCO49/%d_%Y%M%D_%U.dat'; ALLOCATE AUXILIARY CHANNEL aux4 DEVICE TYPE DISK FORMAT '/nfbackup/rman/BANCO49/%d_%Y%M%D_%U.dat'; set newname for datafile 1 to new; set newname for datafile 2 to new; set newname for datafile 3 to new; set newname for datafile 4 to new; set newname for datafile 5 to new; set newname for datafile 6 to new; set newname for datafile 7 to new; set newname for tempfile 1 to new; set newname for tempfile 2 to new; DUPLICATE DATABASE