O tema de hoje e bem interessante, vamos realizar um restore de backup rman.Ate ai nada muito complexo,mais.... sempre tem o mais nao e, para este restore teremos um backup rman full , de um ambiente clusterizado usando asm.E realizaremos o restore em uma single instance, sem asm. Agora sim ne?Mais divertido.Vamos la:Sempre que uso o RMAN eu gosto de setar a variavel de ambiente NLS_DATE_FORMAT para facilitar a leitura dos arquivos de backup, acredite isso ajuda.No S.O. :export NLS_DATE_FORMAT='DD-MM-YYYY HH24:MI:SS'Toda restauracao e realizada por partes bem distintas , e a cada etapa concluida avancamos na restauracao nos aproximando do objetivo final que e subir o banco.Sendo assim tudo comeca com o spfile (ja estou supondo que requisitos de instalacao e o Oracle estejam realizados):Etapa 1 - SPFILE / PFILEO que pouca gente sabe e que para um banco subir , pouquissimos parametros do spfile sao necessarios.Basicamente 3 parametros na verdade:control_filesdb_block_sizedb_nameDependendo da falha que estiver ocorrendo o spfile ainda podera ser acessado.O ideal e sempre ter um backup ou um pfile para te salvar.No meu caso eu tinha o pfile e removi tudo que nao era necessario, ficou assim:*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'*.audit_trail='db'*.compatible='11.2.0.0.0'*.control_files='/backup/oracle/control/orcl/current.265.825085225','/backup/oracle/control/orcl/current.260.825085225' # Aqui eu alterei para o caminho atual pois estava em +ASM*.db_block_size=8192*.db_file_name_convert='+DATA/', '/u02/oracle/orcl/'# Esse parametro nos possibilita converter nossos datafiles do ASM para o novo file system*.db_cache_size=536870912*.db_create_online_log_dest_1='/u01/app/oracle/oradata/orcl/' # Aqui eu alterei para o caminho atual pois estava em +ASM*.db_domain='teste.com.br'*.db_files=1000*.db_32k_cache_size=1073741824*.db_name='orcl'*.db_recovery_file_dest='/backup/oracle/arch/orcl/'*.db_recovery_file_dest_size=214748364800*.diagnostic_dest='/u01/app/oracle'*.distributed_lock_timeout=900*.dml_locks=6720*.filesystemio_options='SETALL'*.global_names=FALSE*.java_pool_size=67108864*.job_queue_processes=1000*.large_pool_size=134217728*.log_archive_format='%t_%s_%r.dbf'*.log_buffer=20946944*.nls_language='BRAZILIAN PORTUGUESE'*.nls_territory='BRAZIL'*.open_cursors=300*.parallel_max_servers=160*.parallel_servers_target=64*.pga_aggregate_target=10737418240*.processes=1000*.remote_login_passwordfile='exclusive'*.result_cache_max_size=64454656*.sec_case_sensitive_logon=FALSE*.sessions=1105*.sga_max_size=6442450944*.sga_target=0*.shared_pool_size=536870912orcl.undo_tablespace='UNDOTBS1'Dica: no pfile de uma instancia RAC estara presente o parametro cluster_database pode ser setado para no ou removido e todas as referencias aos nomes unicos das instancias devem ser removidos.Para agilizar o processo de restore eu aumentei a pga para 10 g.Ok, com esses parametros ja podemos tentar iniciar o banco, vamos la:[oracle@dba ~]$ rman target/Recovery Manager: Release 11.2.0.3.0 - Production on Wed Mar 18 07:19:39 2015Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.RMAN> startup nomount pfile '/tmp/initoracle.ora;Instancia ORACLE iniciada.Total System Global Area 1,2827E+10 bytesFixed Size 2240344 bytesVariable Size 1,1174E+10 bytesDatabase Buffers 1610612736 bytesRedo Buffers 40890368 bytesPerfeito ate aqui tudo bem , vamos para proxima etapa os controlfiles.Etapa 2- Controlfile:RMAN>restore controlfile from '/tmp/c-3903424041-20150314-00';Starting restore at 17/03/15using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=134 orclice type=DISKchannel ORA_DISK_1: restoring control filechannel ORA_DISK_1: restore complete, elapsed time: 00:00:01output file name=/backup/oracle/control/orcl/current.265.825085225output file name=/backup/oracle/control/orcl/current.260.825085225Finished restore at 17/03/15Dica: Aqui eu aumentei o paralelismo do RMAN para 6 , o processo tende a ser mais rapido.Mais uma etapa concluida com sucesso, proxima etapa:Etapa 3 - Restore Database:Agora vem a parte demorada, dependendo do tamanho do seu backup, quantidade de memoria, processador e velocidade de discos.Criaremos um bloco de execucao com run e vamos mudar a localizacao dos datafiles para o ponto de montagem u02 com o set newname for database e tempfileAinda e necessario realizar um switch datafile all para validar as alteracoes no controlfile.RMAN>run {SET NEWNAME FOR DATABASE TO '/u02/oracle/orcl/%b';SET NEWNAME FOR tempfile 1 TO '/u02/oracle/orcl/%b';restore database;switch datafile all;switch tempfile all;}executing command: SET NEWNAMEexecuting command: SET NEWNAMEStarting restore at 17-03-2015 10:39:39Starting implicit crosscheck backup at 17-03-2015 10:39:39allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=767 orclice type=DISKallocated channel: ORA_DISK_2channel ORA_DISK_2: SID=958 orclice type=DISKallocated channel: ORA_DISK_3channel