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
