Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 6 anos, 9 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #109110
    Avatar de Jose Humberto MonegattoJose Humberto Monegatto
    Participante

      Estou com um problema serio , eu tinha um servidor que queimo e consegui recuperar fisicamente os arquivos dbf da pasta C:oraclexeapporacleoradataXE , gostaria de saber se alguém tem uma luz para me ajudar a recuperar esta base de dados, ou se
      existe algum programa para abri os DBF para eu exportar para algum outro programa , eu tentei usar como teste este programa Stellar Phoenix Database Repair for Oracle ele me abre o system.dbf ele me mostra todo conteúdo do meu banco de dados mas não consigo exportar.

      #109111
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Bem, antes de responder xô passar uns conceitos CRÍTICOS antes, se não vc não vai ser capaz de entender a resposta….

        1) entenda que o database Oracle é composto por Múltiplos Arquivos : além dos arquivos de dados, para que o software RDBMS Oracle possa disponibilizar para consultas (ie, ‘abrir’ o database) ele TEM que ter acesso além dos dadatfiles Também aos Controlfiles (arquivos binários de controle interno), aos LOGFILES (arquivos contendo logs de operações a aplicar nos arquivos de dados), o initfile (que contém a Configuração/Parâmetros que o database vai utilizar), os archived redo log files (se o banco está em modo de alta segurança e portanto está mantendo cópias anteriores dos log files – não é o caso normalmente do XE)…
        Na minha versão de Oracle XE (a 11gR2 num Windows de 64 bits) eu tenho :

        SYSTEM:@XE:SQL>select file_name from dba_data_files;

        FILE_NAME

        C:ORACLEXEAPPORACLEORADATAXEUSERS.DBF
        C:ORACLEXEAPPORACLEORADATAXESYSAUX.DBF
        C:ORACLEXEAPPORACLEORADATAXEUNDOTBS1.DBF
        C:ORACLEXEAPPORACLEORADATAXESYSTEM.DBF
        C:ORACLEXEAPPORACLEORADATAXEUSERS_01.DBF
        C:ORACLEXEAPPORACLEORADATAXEUSERS_02.DBF

        SYSTEM:@XE:SQL>select name from v$controlfile;

        NAME

        C:ORACLEXEAPPORACLEORADATAXECONTROL.DBF

        SYSTEM:@XE:SQL>select member from v$logfile;

        MEMBER

        C:ORACLEXEAPPORACLEFAST_RECOVERY_AREAXEONLINELOGO1_MF_2_CZHF392M_.LOG
        C:ORACLEXEAPPORACLEFAST_RECOVERY_AREAXEONLINELOGO1_MF_1_CZHF36R6_.LOG

        SYSTEM:@XE:SQL>select file_name from dba_temp_files;

        FILE_NAME

        C:ORACLEXEAPPORACLEORADATAXETEMP.DBF

        SYSTEM:@XE:SQL>

        SYSTEM:@XE:SQL>show parameter pfile

        NAME TYPE VALUE


        spfile string C:ORACLEXEAPPORACLEPRODUCT11.2.0SERVERDBSSPFILEXE.ORA
        SYSTEM:@XE:SQL>

        ==>> OKDOC ?? Então para eu tentar abrir esse database normalmente com o software Oracle RDBMS XE eu teria que ter ** ALÉM ** dos arquivos .DBF da pasta C:ORACLEXEAPPORACLEORADATAXE, TAMBÉM os arquivos C:ORACLEXEAPPORACLEPRODUCT11.2.0SERVERDBSSPFILEXE.ORA , C:ORACLEXEAPPORACLEFAST_RECOVERY_AREAXEONLINELOGO1_MF_2_CZHF392M_.LOG e C:ORACLEXEAPPORACLEFAST_RECOVERY_AREAXEONLINELOGO1_MF_1_CZHF36R6_.LOG , que cfrme vc vê estão em OUTRAS PASTAS e possuem OUTRAS EXTENSÕES… Ok ??
        E evidentemente : além de vc ter os arquivos em questão presentes, eles TEM que estar TOTALMENTE ÍNTEGROS : quando um servidor crasha e se desliga abruptamente, SE algum dos arquivos em questão justamente nessa hora estiverem sendo gravados é ÓBVIO que vai ter corrupção , Não tem como o RDBMS Oracle ‘falar’ pro Windows : ó, segura um momentinho aí tua tela azul, o fogo que está pegando aí enquanto termino de gravar meus arquivos, simplesmente não dá…. abort é abort…

        2) é COMPLETAMENTE OPCIONAL a extensão .DBF e também o LOCAL onde os arquivos serão gravados : NADA IMPEDE que alguém tenha criado um arquivo de dados sei lá E:DADOSDATAFILE.XYZ , digamos, aí é ESSE arquivo com ESSA extensão E nesse disco dentro DESSA pasta DADOS que vc vai precisar….

        OBS : justamente por permitir criar múltiplos arquivos de vários tipos em múltiplos locais E todos eles serem necessários, é que se recomenda PROFUNDAMENTE, FORTEMENTE, IMPERIOSAMENTE, que vc use a solução de backup nativa da própria Oracle, o chamado RMAN (Recovery MANager) : ele SABE onde está cada arquivo e não esquece de nenhum….

        ===> VOU ASSUMIR nesta resposta que (absurdamente) vc não tinha nenhum tipo de backup (não importa, podia ser um banco de teste, de desenvolvimento, o que fosse, vc TINHA que ter backup!!), E que não criou nenhum arquivo diferente, nem em pasta diferente nem com extensão diferente…

        Agora sim , a resposta : a primeira coisa é (se vc acha que conseguiu localizar TODOS os arquivos que estavam na máquina que pegou fogo/queimou/crashou/deu tela azul/foi dessa pra melhor) é vc tentar abrir o banco : pra isso vc vai ter que instalar o software na máquina nova, conectar no database novo que a instalação do software vai ter criado pra vc, fazer as mesmas consultas que fiz acima e parar esse banco: pra parar vc abre um prompt de comandos DOS no Windows (com usuário Administrador local, E usando a opção de Run as Administrator) e digita :

        net stop OracleServiceXE
        net stop OracleXETNSListener

        Isso feito vc apagar os arquivos todos dele que consultou antes e tentar copiar pras pastas os arquivos todos que vc recuperou do servidor crashado e tenta subir instância e abrir banco, digitando no prompt de comando :

        net start OracleXETNSListener
        net start OracleServiceXE
        oradim -startup -sid XE -starttype inst

        E é isso…

        ==> SE o procedimento acima falhou, assume-se que algum dos arquivos se corrompeu mesmo, e assim o software RDBMS Oracle XE não consegue os acessar certinho : aí sim, vc Pode tentar apelar pra algum dos softwares que prometem recuperar os dados contidos nos arquivos de dados – NENHUM desses softwares te dá 100% de garantia (até porque o formato interno dos arquivos de dados de um RDBMS é ** fechado e não público **), mas é uma Tentativa….
        Eu não cheguei a usar nenhum deles, então não posso afirmar muito nem sobre essa categoria de progs em geral nem especialmente sobre esse “Stellar Phoenix Database Repair for Oracle” mas normalmente pra usar esses programas vc tem que ter um outro database Oracle ativo, íntegro e rodando, vc indica no programa o path onde estão os arquivos todos que vc recuperou do banco morto e o software vai tentar abrir cada um dos arquivos, te indicar que dados encontrou e aí vc indica pro software onde gravar os dados que ele conseguiu salvar dos arquivos do banco morto…
        Olhando na página do produto (que eu não conhecia mas googlei) https://www.stellarinfo.com/database-recovery/oracle-recovery.php ele nos diz :

        “What all points do I need to take care before repairing my Oracle file?

        Oracle 10g, 11g, 12c should be installed on the system, where repair process is to be performed.

        You need to create a new blank database. This new database is used to store all repaired data of corrupt database.

        Make sure that there are no active connections or users with the corrupt database.

        que é o que eu disse acima… Quaisquer dúvidas a mais, tipo ‘qual tela do programa faz o que’ , aciona (se tiver) o Suporte do fornecedor desse tal programa e usa os links de Documentação e de Screenshots da url que indiquei…

        []s

        Chiappa

        #109112
        Avatar photoJosé Laurindo Chiappa
        Moderador

          Ah, ficou faltando um item 3) nos Conceitos que é importante : embora não seja Obrigatório, comumente na tablespace SYSTEM (que deve corresponder a esse seu arquivo SYSTEM.DBF que vc menciona) fica o CATÁLOGO do database, ie, uma lista de conteúdo, uma simples lista de NOME e do TIPO das ‘coisas’ que vc tem no database, os dados tipicamente ficam numa tablespace USERS ou coisa assim, que normalmente corresponde a algum arquivo USERS.DBF ou coisa do tipo…
          Assim, eu Creio que no seu teste anterior vc pediu pro programa tentar ler o arquivo correspondente à tablespace SYSTEM, que NÂO POSSUI DADOS, só uma lista com os nomes e atributos das tabelas – os dados efetivos das tabelas devem estar em OUTROS ARQUIVOS, por isso vc não conseguiu importar, creio eu….
          Como eu disse CONFIRME com o fornecedor do tal programa mas Acredito que foi esse seu problema….
          E outro reforço : deixe pra fazer esse teste de último recurso de tentar abrir datafiles Oracle com software não-Oracle apenas SE realmente não conseguir abrir o database com o software RDBMS Oracle, ok ?

          []s

          Chiappa

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.
        plugins premium WordPress