realizar uma recuperacao incompleta do banco de dados,primeiramente restaurando o banco a uma tempo qualquer no passado pararecuperar uma antiga informacao e depois sera apresentado um caso extremo comodevido a falto do Log de Redo On-line, sera feito um recover incompleto dobanco de dados.Para poder realizar as operacoes neste artigo e necessario que o banco dedados esteja configurado para realizar backup, conforme os artigos anteriores. Nestestestes serao usados duas maquinas virtuais com Windows 7, uma maquina virtualsimulara o banco de producao, e a outra sera um banco restaurado a partir dosbackup de producao. A maquina real sera um servidor de backup, onde guardara osbackup feito pelo banco de producao. E evidente que este ambiente e somente para estudo e demostracao nesteartigo, em um ambiente real de producao, casa servidor seria uma maquinaseparada e fisicamente protegida contra acidentes e eventuais roubos. Recuperando o Banco a partir deuma perda logica Em um cenario de uma T.I, por volta das 08h50min da manha do dia 21/11/2012 umdesenvolver exclui um SCHEMA importante do sistema de producao, achando queestava logado em uma base de teste. Entao depois de cerca de 10 minutos depois elede forma desesperada decide acionar o DBA para solucionar o problema. Os demaisSCHEMAS estao funcionando normalmente recebendo milhares de insercoes e cadasegundo que o banco esteja fora do ar representa prejuizo para a empresa.Em cenarios como estes, e importante que o banco de dados esteja com orecurso flashback, pois o Recover Incompleto inspecionara os arquivos dedados restaurados, e neste caso seria necessario restaurar todos os datafiles oque demandaria uma janela de tempo de recuperacao maior.Por isto, ative o flashback database do banco de dados conforme os passosabaixo:SQL> alter system set db_recovery_file_dest=' C:\bck_oracle\flash_recovery_area;SQL> alter system setdb_recovery_file_dest_size=8G;SQL> alter system setdb_flashback_retention_target=240;SQL> shutdown immediate;SQL> startup mount;SQL> alter database flashback on;SQL> alter database open;Feito esta devida configuracao, segue a simulacaoda recuperacao do schema dropado.O DBA entra com usuario SYS e verifica querealmente as tabelas daquele schema nao existem;SQL> connect sys/senha as sysdbaConectado.SQL>select count(*) from schema_importante.aca_aluno;selectcount(*) from schema_importante.aca_alunoERRO na linha 1: ORA-00942: a tabelaou view nao existeEntao o proximo passo e desligar o banco de dados.SQL>shutdown immediate;Bancode dados fechado.Bancode dados desmontado.InstOnciaORACLE desativada.Inicie o banco no Estado montado, obanco nao ficara disponiveis para os usuarios e estara pronto para aguardar arecuperacao.SQL> startup mount;InstOncia ORACLE iniciada.Total System Global Area 612368384 bytesFixed Size 1292060 bytesVariable Size 436209892 bytesDatabase Buffers 171966464 bytesRedoBuffers 2899968 bytesBancode dados montado.Execute o comando de flashback paravoltar o banco de dados como estava as 8h50min.SQL> flashback database to timestamp to_timestamp('21-11-201208:50:00','dd/mm/yyyy hh24:mi:ss'); Flashback concluYdo.Depois abra o banco como comente leitura.SQL> alter database open read only;Verifique se os dados foram restaurados, caso nao apareca, volte a executaro comando flashback voltando ainda mais o tempo.SQL> select count(*) from schema_importante.aca_aluno; COUNT(*)---------- 705Apos confirmado que o Schema foirestaurado no banco de dados, realize a exportacao do schema.C:\>exp system/senha file=c:\bck_oracle\schema_importante.dmpowner=schema_importanteExport: Release 10.2.0.3.0 - Production on Qua Nov 21 09:31:00 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.Conectado a: Oracle Database 10gEnterprise Edition Release 10.2.0.3.0 - Product.sobre exportar tabelas de SCHEMA_IMPORTANTE ... via Caminho Convencional ..... exportando tabela ACA_ALUNO 705 linhasexportada.. exportando tabela ACA_CURSO 8 linhas exportada..