Após a recuperação incompleta e a abertura de um banco de dados 9i resetlogs
, executamos um backup completo que foi concluído com sucesso. O backup inclui um comando para excluir backups obsoletos após a conclusão:
delete noprompt obsolete device type sbt;
O RMAN está configurado para usar REDUNDÂNCIA 2:
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
No entanto, todos os backups da versão antiga foram imediatamente marcados como obsoletos e excluídos sem levar em consideração a redundância.
- Esse comportamento teria sido diferente se tivéssemos um
RECOVERY WINDOW
configurado em vez deREDUNDANCY 2
? - Esse comportamento é o mesmo em versões posteriores do Oracle?
edit: saída adicionada de LIST INCARNATION
:
RMAN> list incarnation;
List of Database Incarnations
DB Key Inc Key DB Name DB ID CUR Reset SCN Reset Time
------- ------- -------- ---------------- --- -------------- ----------
1 1 LIVE 3494832994 NO 1 19-JAN-04
2 2 LIVE 3494832994 NO 11966702870498 01-JAN-14
3 3 LIVE 3494832994 YES 12041003378277 04-JUL-18
Para os iniciantes de RMAN interessados
As políticas do RMAN
REDUNDANCY
eRECOVERY WINDOW
são mutuamente exclusivas. Isso significa que você pode definir um ou outro.Política de redundância
Ter definido
REDUNDANCY 2
sempre manterá apenas os dois últimos backups e excluir (ou marcar como obsoleto) quaisquer outros backups anteriores, que não são mais necessários para trazer de volta o banco de dados a um estado consistente.Observação:
se você tiver backups de NÍVEL 1 e ARCHIVELOG entre os backups FULL e/ou NÍVEL 0, eles devem ser mantidos até que não sejam mais necessários.
informação adicional
De acordo com o arquivo PDF Oracle Database - Backup and Recovery Reference , sua política de retenção
REDUNDANCY 2
não deve ter excluído seus backups mais antigos:O exemplo acima usa um valor de 1, mas está afirmando claramente que os backups anteriores de backups completos não são excluídos até que sejam maiores que o valor configurado.
Respondendo suas perguntas
Depende , .... (ver 2. e "Possíveis problemas")
De acordo com a documentação, a
retention policy
configuração ainda parece ser a mesma para todas as versões:Possíveis problemas
Reproduzindo com Oracle 12c
Como o Oracle RDBMS 9i é praticamente obsoleto e nosso ambiente está quase atualizado, só consegui reiterar/reproduzir as etapas em um ambiente 12c.
Configuração RMAN
O RMAN foi configurado usando os padrões:
Backups RMAN
Os backups do RMAN foram executados emitindo um
backup database;
comando simples:Verificando backups, verificando backups obsoletos e listando encarnações
Após um certo período de backups, verifiquei novamente o catálogo do RMAN:
Verificado que nenhum backup obsoleto estava por aí:
E listou as encarnações atuais:
Executar a primeira restauração/recuperação
Os seguintes comandos foram emitidos para restaurar/recuperar o banco de dados em um estado consistente:
A restauração foi bem-sucedida e nenhum backup foi marcado como obsoleto, embora a encarnação tenha sido alterada após a restauração e com a
ALTER DATABASE OPEN RESETLOGS
emissão.Listagem de encarnações alternativas
Uma representação alternativa das encarnações pode ser obtida com o seguinte comando:
Resultado:
A vantagem de consultar o catálogo local na instância do banco de dados é a representação da encarnação como um caminho a seguir
Executar segunda restauração/recuperação
Os seguintes comandos foram emitidos para restaurar/recuperar o banco de dados em um estado consistente novamente:
Ok, atingimos um "colisão" de encarnação no caminho de restauração. Atualmente, estamos na encarnação 3, como pode ser visto na lista de encarnações abaixo, que copiei acima:
...e o backup que estamos buscando é após o RESETLOGS para a encarnação 2. Vamos resetar a encarnação para 2 e prosseguir com o backup:
Parece funcionar. Vamos reiniciar a restauração/recuperação novamente:
A restauração foi bem-sucedida e nenhum backup foi marcado como obsoleto, embora a encarnação tenha sido alterada após a restauração e
ALTER DATABASE OPEN RESETLOGS
tenha sido emitido novamente. Agora estamos em uma encarnação mais recente e ainda nãoObsolete Backups
relatados.Lista de encarnações atuais após a segunda restauração (SQL)
Iniciar backup
Depois de restaurar pela segunda vez, vamos fazer backup do banco de dados novamente:
Verificar obsoleto
Vamos agora verificar quais arquivos (de backup) se tornaram obsoletos:
Verificar encarnações (SQL)
Como pode ser visto, a encarnação 3 agora está órfã, porque sua linha direta de herança em relação ao estado atual do banco de dados está quebrada. Após a primeira restauração, voltamos no tempo e restauramos novamente o banco de dados, o que resulta no caminho de encarnação
1 -> 2 -> 4
sendo a linha direta dos ancestrais atuais para o banco de dados aberto.Como a linha direta para restaurar o banco de dados atual é ao longo das encarnações de 1, 2, 4, não há necessidade do RMAN manter os backups obsoletos listados acima. Eles podem ser excluídos com segurança.
Excluir obsoleto
Vamos em frente e excluir os backups obsoletos:
List Backup Summary
Now that we have deleted some backup files and RMAN has performed some internal cleaning, let's have a look at the backup summary:
As we can see we still have "at least" two complete backup that will allow us to restore the database two backups in the past. RMAN (in 12c) did not delete any other backups along the incarnation path or outside of the orphaned incarnation.
Conclusion
Regarding the deleted backups after your initial restore in 9i I believe there are two possible scenarios:
Reference Material
Do alto da minha cabeça. A encarnação está configurada para impedir que você restaure backups muito antigos. Desta forma, eles são obsoletos.
No entanto, você ainda pode usá-los para restaurar, mas nesse caso você precisa alterar a encarnação para a encarnação 'anterior'. Ao mesmo tempo, seus backups mais recentes se tornam obsoletos.
Esse comportamento ainda é o mesmo.