Estou com problemas para restaurar alguns dados de um backup antigo.
A máquina original foi perdida e minha missão é restaurar os dados. Esta não é uma máquina crítica, mas alguns dados ainda são úteis.
- Oracle no servidor original: 11.2.0.2
- Oracle no servidor de destino: 11.2.0.4
O servidor é redhat- 5.6 original. destino 6.x.
Na máquina nova, com o oracle instalado fiz:
export ORACLE_SID=oldsid
rman TARGET /
E no rman eu defino o sid como o antigo databsae:
SET DBID 3348161342;
Em seguida, restaurou controlfile e spfile do backup. Observação importante : esses arquivos são mais recentes que o backup.
RESTORE CONTROLFILE from '/mount/restorepoint/3348161342_41qtltn4_1_1_20160111.bck
restore spfile from '/mount/restorepoint/sp_OLDDB-3348161342_42qtltn6_1_1_20160111.bck';
Banco de dados em montagem com:
ALTER DATABASE MOUNT;
E especificou onde estão os arquivos de backup:
catalog start with '/mount/restorepoint/rmanfiles';
Porque no banco de dados original também há TDE.
- Criou um diretório para colocar a carteira
- Arquivos sqlnet.ora criados com indicações na localização da carteira
Sistema alterado com:
alter system set encryption wallet open identified by "thetdepassword";
E então novamente em rman:
alter database mount;
RESTORE DATABSE;
Até agora, tudo bem. Mas quando eu trago para o banco de dados OPEN:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
Tudo bem, meu mal. Então eu uso: alter database open RESETLOGS; e estou com o erro:
ORA-01152: file 4 was not restored from a sufficiently old backup
ORA-01110: data file 4: '/ltm/data/oracle/dati/olddb/users01.dbf'
o que estou perdendo?
No script de backup original, as opções devem ser:
BACKUP AS COMPRESSED BACKUPSET INCREMENTAL LEVEL 0 DATABASE
Como posso ler novamente esses dados ?
Eu venho do mundo sqlserver e postgresql, então provavelmente sinto falta de alguma coisa ...
Vamos ver as informações fornecidas pelo utilitário oerr.
De acordo com sua postagem, você não recuperou o banco de dados. Você pode tentar os seguintes comandos para recuperar seu banco de dados.
Como você é novo no Oracle, pode achar o link a seguir útil para restaurar o backup antigo no novo host.
Restaurando um banco de dados em um novo host
Você tem que recuperar o banco de dados. Presumo que você restaurou um backup online que você (ou um backup offline inconsistente, mas vamos ignorar essa possibilidade). O próximo passo é recuperar o banco de dados. Portanto, em sua sessão rman , execute um
ou um
onde '....' é um ponto no tempo (ou SCN ou algo semelhante). Se você usar um ponto no tempo, ele deve ser após o horário de término do backup do arquivo de dados. Caso contrário, os arquivos de dados permanecerão inconsistentes.
O processo de restauração aplicará backups incrementais de nível 1 (se existirem) e arquivará logs em seu banco de dados.
Depois de restaurar o banco de dados, talvez você tenha os próximos problemas porque restaurou um banco de dados 11.2.0.2 para um ambiente 11.2.0.4. Portanto, você deve combinar sua restauração com uma atualização para 11.2.0.4.
As instruções detalhadas para uma atualização para 11.2.0.4 podem ser encontradas no pacote de software 11.2.0.4. Aqui está um pequeno artigo blob que pesquisei no Google ( rkorclappsdbastuff ). A partir disso, vemos que há algumas etapas de pré-atualização (etapa 2 a 5) que você deve executar no banco de dados 11.2.0.2, portanto, você deve ignorá-las: você não pode executar o script de pré-atualização utlu112i.sql e implementar suas recomendações, também não pode calcule as estatísticas do dicionário antes da atualização e você não pode executar utlrp.sql para compilar os objetos inválidos. Você tem que adaptar o spfile restaurado para 11.2.0.4: criar um pfile , alterar/adicionar/remover parâmetros, se necessário, recriar um spfile novamente a partir do spfile. Você não precisa de banco de dados para executar o
create pfile
ecreate spfile
.Agora você pode abrir o banco de dados, mas deve abri-lo no modo de atualização porque é um banco de dados 11.2.0.2 que deve ser atualizado para 11.2.0.4 e você deve abri-lo com logs de redefinição, porque é um banco de dados recuperado sem arquivos de log. Portanto, o comando correto (consulte o Oracle SQL Language Reference ) é
Agora você pode prosseguir com as etapas restantes.
Se você tiver mais de um backup de seu arquivo de controle, tente usar o backup mais antigo. Essencialmente, a mensagem está informando que o arquivo de controle é mais recente que o restante do backup. por exemplo, se você fizer backup do arquivo de controle, faça backup do banco de dados e faça backup do arquivo de controle. Fazer uma restauração usando o segundo backup do arquivo de controle resultará no erro que você está recebendo. Fazer uma restauração usando o backup mais antigo ou o primeiro backup do arquivo de controle deve funcionar.