sexta-feira, 9 de março de 2012

Restaurando DBF no Oracle XE


Numa infeliz ocorrência minha máquina parou de funcionar e eu não possuía as versões mais novas do banco de dados (Oracle XE), após várias pesquisas na net encontrei alguns usuários dizendo que a restauração seria impossível e outros com tentativas frustrantes, mas persisti e tive um resultado feliz, consegui restauras todas as instâncias do banco em uma nova instalação do Oracle XE e numa máquina diferente, abaixo seguem os passos realizados:
Para salvar a base de dados foi feita uma cópia de toda a pasta OracleXE para a outra chamada OracleXE_BKP.



1. Parar os serviços do Oracle:

OracleServiceXE
OracleXETNSListener
2. Guardando uma cópia dos arquivos originais da instalação (Apenas por segurança)
    • Vá até a pasta C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN, recorte os arquivos:
      SQLNET.ORA

      TNSNAMES.ORA
      LISTENER.ORA
      Crie uma pasta chamada ORIGINAL e cole estes arquivos nesta pasta;

    • Vá até a pasta C:\oraclexe\app\oracle\flash_recovery_area\XE\ONLINELOG, recorte todos os arquivos desta pasta, crie uma pasta chamada ORIGINAL e cole estes arquivos nesta pasta;
    • Vá até a pasta C:\oraclexe\app\oracle\product\10.2.0\server\dbs, recorte todos os arquivos desta pasta, crie uma pasta chamada ORIGINAL e cole estes arquivos nesta pasta;
    • Vá até a pasta C:\oraclexe\app\oracle\product\10.2.0\server\config\scripts, recorte o arquivo INIT.ORA, crie uma pasta chamada ORIGINAL e cole este arquivo nesta pasta;
    • Vá até a pasta C:\oraclexe\oradata\XE, recorte todos os arquivos desta pasta, crie uma pasta chamada ORIGINAL e cole estes arquivos nesta pasta.
 3. Restaurando os arquivos

Como a restauração foi feita em uma nova máquina então tive que alterar o HOST dos arquivos abaixo:

          TNSNAMES.ORA
    LISTENER.ORA
    INIT.ORA

** Atenção: Verifique a porta de instalação do Oracle, pois ela pode ser diferente entre as instalações.

TNSNAMES.ORA 
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = [novo_hostname])(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
Verifiquem todas as instâncias que utilizam o HOST antigo, pois elas devem ser alteradas.

LISTENER.ORA 
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = [novo_hostname])(PORT = 1522))
)
)

INIT.ORA 
local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=[novo_hostname])(PORT=1522))"

Copiando arquivos da base antiga (OracleXE_BKP) para a nova instalação do Oracle
  • Copie os arquivos abaixo da pasta C:\oraclexe_bkp\app\oracle\product\10.2.0\server\NETWORK\ADMIN para a pasta C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN
       SQLNET.ORA
       TNSNAMES.ORA
       LISTENER.ORA

  • Copie todos os arquivos da pasta C:\oraclexe_bkp\app\oracle\flash_recovery_area\XE\ONLINELOG para a pasta C:\oraclexe\app\oracle\flash_recovery_area\XE\ONLINELOG
  • Copie todos os arquivos da pasta C:\oraclexe_bkp\app\oracle\product\10.2.0\server\dbs para a pasta pasta C:\oraclexe\app\oracle\product\10.2.0\server\dbs
  • Copie o arquivo INIT.ORA da pasta C:\oraclexe_bkp\app\oracle\product\10.2.0\server\config\scripts para a pasta pasta C:\oraclexe\app\oracle\product\10.2.0\server\config\scripts
  • Copie todos os DBFs da pasta C:\oraclexe_bkp\oradata\XE para a pasta C:\oraclexe\oradata\XE


4. Reinicie os serviços do Oracle


OracleServiceXE
OracleXETNSListener


5. Acesse o Oracle


Tente conectar a uma das instâncias, no meu caso ocorreu erro de senha, então conectei como SYSDBA e alterei as senhas de todas as instâncias.

A partir daí tudo funcionou perfeitamente.
Espero ter ajudado.

Um comentário :

Related Posts Plugin for WordPress, Blogger...