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.
OracleServiceXE2. Guardando uma cópia dos arquivos originais da instalação (Apenas por segurança)
OracleXETNSListener
- Vá até a pasta C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN, recorte os arquivos:
SQLNET.ORA
TNSNAMES.ORALISTENER.ORACrie 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.
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
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.