Realmente a explicação na prática é bem mais fácil de entender, muito
obrigado Chiappa mas eu prefiro ver meu banco trabalhando no modo archive
mesmo. Mantenha a saúde do Oracle e do servidor em dia que provavelmente
vai ser muito difícil ele ficar "doente".

Abraços.


Em 29 de maio de 2014 19:31, carlos silva [email protected]
[oracle_br] <[email protected]> escreveu:

>
>
> Excelente explicação Chiappa, obrigado!!
>
>
> Em Quinta-feira, 29 de Maio de 2014 19:02, "[email protected]
> [oracle_br]" <[email protected]> escreveu:
>
>
> okdoc .... Só para comprovar o que eu falei nesta e na outra thread sobre
> recuperação de bancos em noarchive, um exemplinho :
>
> -> banco está MESMO em noarchive :
>
> C:\Users\jlchiappa>sqlplus sys/oracle as sysdba
>
> Conectado a:
> Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
> With the Partitioning, OLAP, Data Mining and Real Application Testing
> options
>
> SYS:AS SYSDBA@O11GR2:SQL>archive log list;
> Modo log de banco de dados   Modo Sem Arquivamento
> Arquivamento automático             Desativado
> Destino de arquivamento            USE_DB_RECOVERY_FILE_DEST
> A sequencia de log on-line mais antiga     30
> Sequencia de log atual           32
> SYS:AS SYSDBA@O11GR2:SQL>exit
>
> -> faço um backup :
>
> C:\Users\jlchiappa>rman target=sys/oracle
>
> conectado ao banco de dados de destino: O11GR2 (DBID=1684355035)
>
> RMAN> shutdown immediate;
>
> banco de dados fechado
> banco de dados desmontado
> encerramento de instância Oracle
>
> RMAN> connect target sys/oracle
>
> RMAN> startup mount;
>
> instância Oracle iniciada
> banco de dados montado
>
> Total da Área Global do Sistema     251084800 bytes
>
> Fixed Size                     1373880 bytes
> Variable Size                163580232 bytes
> Database Buffers              79691776 bytes
> Redo Buffers                   6438912 bytes
>
> RMAN> backup database;
>
> Iniciando backup em 29/05/14
> canal alocado: ORA_DISK_1
> canal ORA_DISK_1: SID=63 tipo de dispositivo=DISK
> canal ORA_DISK_1: iniciando conjunto de backup completo de arquivo de dados
> canal ORA_DISK_1: especificando arquivo[s] de dados no conjunto de backups
> número do arquivo=00001 nome=D:\APP\ORACLE\ORADATA\O11GR2\SYSTEM01.DBF do
> arquivo de dados de entrada
> número do arquivo=00002 nome=D:\APP\ORACLE\ORADATA\O11GR2\SYSAUX01.DBF do
> arquivo de dados de entrada
> .....
> handle de
> componente=D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\BACKUPSET\2014_05_29\O1_MF_NNNDF_TAG20140529T153312_9RGZC9NF_.BKP
> tag=TAG20140529T153312 comentário=NONE
> canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:00:45
> canal ORA_DISK_1: iniciando conjunto de backup completo de arquivo de dados
> canal ORA_DISK_1: especificando arquivo[s] de dados no conjunto de backups
> incluindo arquivo de controle atual no conjunto de backups
> incluindo SPFILE atual do conjunto de backups
> canal ORA_DISK_1: iniciando o componente 1 em 29/05/14
> canal ORA_DISK_1: componente 1 finalizado em 29/05/14
> handle de
> componente=D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\BACKUPSET\2014_05_29\O1_MF_NCSNF_TAG20140529T153312_9RGZDQV5_.BKP
> tag=TAG20140529T153312 comentário=NONE
> canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:00:01
> Finalizado backup em 29/05/14
>
> RMAN> alter database open;
>
> banco de dados aberto
>
> RMAN> exit
>
> --> vamos marcar onde estão os controlfiles :
>
> C:\Users\jlchiappa>sqlplus sys/oracle as sysdba
>
> SYS:AS SYSDBA@O11GR2:SQL>show parameters control
>
> NAME                                 TYPE        VALUE
> ------------------------------------ -----------
> ------------------------------
> control_file_record_keep_time        integer     7
> control_files                        string
> D:\APP\ORACLE\ORADATA\O11GR2\C
>                                                  ONTROL01.CTL,
> D:\APP\ORACLE\FL
>
> ASH_RECOVERY_AREA\O11GR2\CONTR
>                                                  OL02.CTL
> control_management_pack_access       string      DIAGNOSTIC+TUNING
>
> -> só agora, depois do backup, vou criar uma tabela e gravar dados  :
>
> SYS:AS SYSDBA@O11GR2:SQL>create table SYSTEM.TAB_TESTE (c1 number, c2
> varchar2(40));
>
> Tabela criada.
>
> SYS:AS SYSDBA@O11GR2:SQL>insert into SYSTEM.TAB_TESTE values (1,'Linha
> 1');
>
> 1 linha criada.
>
> SYS:AS SYSDBA@O11GR2:SQL>commit;
>
> Commit concluído.
>
> => agora vou simular um crash com perda de controlfile :
>
> SYS:AS SYSDBA@O11GR2:SQL>shutdown abort;
> Instância ORACLE desativada.
> SYS:AS SYSDBA@O11GR2:SQL>exit
> Desconectado de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
> - Production
> With the Partitioning, OLAP, Data Mining and Real Application Testing
> options
>
> C:\Users\jlchiappa>del D:\APP\ORACLE\ORADATA\O11GR2\CONTROL01.CTL
>
> C:\Users\jlchiappa>del
> D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\CONTROL02.CTL
>
> -> tolamente tente startar a instãncia e abrir o database :
>
> C:\Users\jlchiappa>sqlplus sys/oracle as sysdba
>
> SQL*Plus: Release 11.2.0.1.0 Production on Qui Mai 29 15:49:06 2014
>
> Copyright (c) 1982, 2010, Oracle.  All rights reserved.
>
> Conectado a uma instância inativa.
>
> SYS:AS SYSDBA@O11GR2:SQL>startup
> Instância ORACLE iniciada.
>
> Total System Global Area  251084800 bytes
> Fixed Size                  1373880 bytes
> Variable Size             163580232 bytes
> Database Buffers           79691776 bytes
> Redo Buffers                6438912 bytes
> ORA-00205: erro na identificac?o do arquivo de controle, verifique o log
> de alertas para obter mais informac?es
>
> --> ops, um componente Crucial do database não foi localizado...
>
> SYS:AS SYSDBA@O11GR2:SQL>exit
> Desconectado de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
> - Production
> With the Partitioning, OLAP, Data Mining and Real Application Testing
> options
>
> -> então TENHO que o recuperar de um backup :
>
> C:\Users\jlchiappa>rman target=sys/oracle nocatalog
>
> RMAN> shutdown immediate;
>
> encerramento de instância Oracle
>
> RMAN> exit
>
> Recovery Manager completo.
>
> C:\Users\jlchiappa>rman target=sys/oracle nocatalog
>
> RMAN> startup nomount;
>
> -> restauro a partir do meu backup piece, pois não tenho Autobackup ativo :
>
> RMAN> restore controlfile from
> 'D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\BACKUPSET\2014_05_29\O1_MF_NCSNF_TAG20140529T153312_9RGZDQV5_.BKP';
>
> Iniciando restore em 29/05/14
> utilizando o canal ORA_DISK_1
>
> canal ORA_DISK_1: restaurando arquivo de controle
> canal ORA_DISK_1: restauraçao concluída, tempo decorrido: 00:00:01
> nome do arquivo de saída=D:\APP\ORACLE\ORADATA\O11GR2\CONTROL01.CTL
> nome do arquivo de
> saída=D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\CONTROL02.CTL
> Finalizado restore em 29/05/14
>
> RMAN> exit
>
> Recovery Manager completo.
>
> --> primeira demonstração : como eu disse o SCN do controlfile da hora do
> backup está ** ATRASADO ** em relação aos SCNs nos datafiles (lembrar que
> eu fiz alterações no banco após o backup E a cada alteração (ou a cada
> poucos segundos) o SCN avança, então ao menos o datafile da tablespace
> system está com um SCN diferente do SCN registrado no controlfile na hora
> do backup, que foi recuperado - então se eu tolamente tentar abrir o banco,
> não vou mais receber msg de falta de arquivos de controlfile 9eles FORAm
> recuperados) mas vou receber uma msg indicando inconsistência  :
>
> C:\Users\jlchiappa>dir D:\APP\ORACLE\ORADATA\O11GR2\CONTROL01.CTL
>  O volume na unidade D é Dados
>  O Número de Série do Volume é 5A47-CDE9
>
>  Pasta de D:\APP\ORACLE\ORADATA\O11GR2
>
> 29/05/2014  16:16         9.748.480 CONTROL01.CTL
>                1 arquivo(s)      9.748.480 bytes
>                0 pasta(s)   325.478.424.576 bytes disponíveis
>
> C:\Users\jlchiappa>dir
> D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\CONTROL02.CTL
>  O volume na unidade D é Dados
>  O Número de Série do Volume é 5A47-CDE9
>
>  Pasta de D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2
>
> 29/05/2014  16:16         9.748.480 CONTROL02.CTL
>                1 arquivo(s)      9.748.480 bytes
>                0 pasta(s)   325.478.424.576 bytes disponíveis
>
> C:\Users\jlchiappa>sqlplus sys/oracle as sysdba
>
> SQL*Plus: Release 11.2.0.1.0 Production on Qui Mai 29 16:18:34 2014
>
> Copyright (c) 1982, 2010, Oracle.  All rights reserved.
>
> Conectado a:
> Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
> With the Partitioning, OLAP, Data Mining and Real Application Testing
> options
>
> SYS:AS SYSDBA@O11GR2:SQL>shutdown immediate;
> ORA-01507: banco de dados nao montado
>
> Instância ORACLE desativada.
> SYS:AS SYSDBA@O11GR2:SQL>startup
> Instância ORACLE iniciada.
>
> Total System Global Area  251084800 bytes
> Fixed Size                  1373880 bytes
> Variable Size             163580232 bytes
> Database Buffers           79691776 bytes
> Redo Buffers                6438912 bytes
> Banco de dados montado.
> ORA-01589: use a opçao RESETLOGS ou NORESETLOGS para o banco de dados
> aberto
>
> SYS:AS SYSDBA@O11GR2:SQL>alter database open resetlogs;
> alter database open resetlogs
> *
> ERRO na linha 1:
> ORA-01194: o arquivo 1 necessita de mais recuperaçao para ser consistente
> ORA-01110: 1 do arquivo de dados:
> 'D:\APP\ORACLE\ORADATA\O11GR2\SYSTEM01.DBF'
>
> SYS:AS SYSDBA@O11GR2:SQL>exit
>
> ==> chegamos no ponto que eu queria : o controlfile tá lá recuperado, os
> datafiles tão todos de onde nunca saíram mas o RDBMS corretamente DETECTOU
> a inconsistência no tempo entre o conteúdo dos controlfiles e de um dos
> datafiles.... Não tenho outra opção (oficialmente, de modo seguro) para
> fazer os datafiles ficarem com o mesmo SCN que não seja os restaurar do
> mesmo backup de onde veio o controlfile :
>
> C:\Users\jlchiappa>rman target=sys/oracle nocatalog
>
> Gerenciador de Recuperaçao: Release 11.2.0.1.0 - Production on Qui Mai 29
> 16:23:06 2014
>
> Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights
> reserved.
>
> conectado ao banco de dados de destino: O11GR2 (DBID=1684355035, nao
> aberto)
> usar o arquivo de controle do banco de dados de destino em vez do catálogo
> de recuperaçao
>
> RMAN> list backup;
>
> Lista de Conjuntos de Backup
> ===================
>
> BS Key  Type LV Size       Device Type Elapsed Time Horário de Conclusao
> ------- ---- -- ---------- ----------- ------------ --------------------
> 1       Full    9.36M      DISK        00:00:01     29/05/14
>         Chave BP: 1   Status: AVAILABLE  Compactado: NO  Tag:
> TAG20140529T153121
>         Nome do Componente:
> D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\BACKUPSET\2014_05_29\O1_MF_NCSNF_TAG20140529T153121_9RGZ7TMP_.BKP
>   SPFILE Incluído: Horário de modificaçao: 29/05/14
>   SPFILE db_unique_name: O11GR2
>   Arquivo de Controle Incluído: SCN Ckp: 1663586      Tempo Ckp: 29/05/14
>
> BS Key  Type LV Size       Device Type Elapsed Time Horário de Conclusao
> ------- ---- -- ---------- ----------- ------------ --------------------
> 2       Full    1.12G      DISK        00:00:37     29/05/14
>         Chave BP: 2   Status: AVAILABLE  Compactado: NO  Tag:
> TAG20140529T153312
>         Nome do Componente:
> D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\BACKUPSET\2014_05_29\O1_MF_NNNDF_TAG20140529T153312_9RGZC9NF_.BKP
>   Lista de Arquivos de Dados no conjunto de backup 2
>   File LV Type Ckp SCN    Tempo de Verif. Name
>   ---- -- ---- ---------- --------------- ----
>   1       Full 1664069    29/05/14
> D:\APP\ORACLE\ORADATA\O11GR2\SYSTEM01.DBF
>   2       Full 1664069    29/05/14
> D:\APP\ORACLE\ORADATA\O11GR2\SYSAUX01.DBF
>   3       Full 1664069    29/05/14
> D:\APP\ORACLE\ORADATA\O11GR2\UNDOTBS01.DBF
>   4       Full 1664069    29/05/14
> D:\APP\ORACLE\ORADATA\O11GR2\USERS01.DBF
>   5       Full 1664069    29/05/14
> D:\APP\ORACLE\ORADATA\O11GR2\EXAMPLE01.DBF
>
> RMAN> restore database;
>
> Iniciando restore em 29/05/14
> Iniciando implicit crosscheck backup em 29/05/14
> canal alocado: ORA_DISK_1
> canal ORA_DISK_1: SID=63 tipo de dispositivo=DISK
> Fez a verificaçao cruzada de 2 objetos
> Finalizado implicit crosscheck backup em 29/05/14
>
> Iniciando implicit crosscheck copy em 29/05/14
> utilizando o canal ORA_DISK_1
> Finalizado implicit crosscheck copy em 29/05/14
>
> procurando todos os arquivos na área de recuperaçao
> catalogando arquivos...
> catalogaçao concluída
>
> Lista de Arquivos Catalogados
> =======================
> Nome do Arquivo:
> D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\BACKUPSET\2014_05_29\O1_MF_NCSNF_TAG20140529T153312_9RGZDQV5_.BKP
>
> utilizando o canal ORA_DISK_1
>
> canal ORA_DISK_1: iniciando restauraçao de conjunto de backups de arquivo
> de dados
> canal ORA_DISK_1: especificando arquivo(s) de dados para restauraçao a
> partir do conjunto de backups
> canal ORA_DISK_1: restaurando o arquivo de dados 00001 em
> D:\APP\ORACLE\ORADATA\O11GR2\SYSTEM01.DBF
> canal ORA_DISK_1: restaurando o arquivo de dados 00002 em
> D:\APP\ORACLE\ORADATA\O11GR2\SYSAUX01.DBF
> canal ORA_DISK_1: restaurando o arquivo de dados 00003 em
> D:\APP\ORACLE\ORADATA\O11GR2\UNDOTBS01.DBF
> canal ORA_DISK_1: restaurando o arquivo de dados 00004 em
> D:\APP\ORACLE\ORADATA\O11GR2\USERS01.DBF
> canal ORA_DISK_1: restaurando o arquivo de dados 00005 em
> D:\APP\ORACLE\ORADATA\O11GR2\EXAMPLE01.DBF
> canal ORA_DISK_1: lendo da parte de backup
> D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\BACKUPSET\2014_05_29\O1_MF_NNNDF_TAG20140529T153312_9RGZC9NF_.BKP
> canal ORA_DISK_1: handle de
> componente=D:\APP\ORACLE\FLASH_RECOVERY_AREA\O11GR2\BACKUPSET\2014_05_29\O1_MF_NNNDF_TAG20140529T153312_9RGZC9NF_.BKP
> tag=TAG20140529T153312
> canal ORA_DISK_1: restaurada a parte de backup 1
> canal ORA_DISK_1: restauraçao concluída, tempo decorrido: 00:00:45
> Finalizado restore em 29/05/14
>
> -> tenho que fazer o RECOVER...
>
> RMAN> recover database;
>
> Iniciando recover em 29/05/14
> utilizando o canal ORA_DISK_1
>
> iniciar recuperaçao de mídia
>
> --> Agora vem a segunda coisa que eu queria demonstrar, e que falei numa
> outra thread : como o meu banco é ridiculamente minusculamente pequeno, eu
> tive a Imensa sorte de ter os logs que continham as alterações feitas após
> o backup nos redo log files online , olhe a msg que o RMAN me deu :
>
> o log arquivado para thread 1 com sequencia 32 já está no disco como
> arquivo D:\APP\ORACLE\ORADATA\O11GR2\REDO02.LOG
> nome do arquivo de log arquivado=D:\APP\ORACLE\ORADATA\O11GR2\REDO02.LOG
> thread=1 sequencia=32
> recuperaçao da mídia concluída, tempo decorrido: 00:00:03
> Finalizado recover em 29/05/14
>
> ==> como eu disse na outra thread, isso MUITO MUITO MUITO DIFICILMENTE vai
> acontecer num banco de verdade, numa produção, absolutamente NÂO SE PODE
> contar com qualquer recuperação após o exato instante do backup, mas neste
> caso em particular eu dei essa imensa sorte... OK, banco recuperado, abro
> ele :
>
> RMAN> alter database open resetlogs;
>
> banco de dados aberto
>
> RMAN> exit
>
> ==> veja que não perdi a operação feita imediatamente depouis do backup,
> MESMo estando em modo noarchive :
>
> C:\Users\jlchiappa>sqlplus sys/oracle as sysdba
>
> Conectado a:
> Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
> With the Partitioning, OLAP, Data Mining and Real Application Testing
> options
>
> SYS:AS SYSDBA@O11GR2:SQL>select * from SYSTEM.TAB_TESTE ;
>
>         C1 C2
> ---------- ----------------------------------------
>          1 Linha 1
>
> SYS:AS SYSDBA@O11GR2:SQL>
>
> c.q.d.
>
>  []s
>
>   Chiappa
>
>
>  
>



-- 
Atenciosamente
Erik da Silva Castilho
Bacharel Sistemas de Informação
Supervisor IT at Consórcio Nacional Recon

Responder a