As encarnações são explicadas em uma resposta a outra pergunta neste site. A resposta menciona encarnações 'órfãs':
…Existem outros fatores que resultam em encarnações ORPHANED e backups OBSOLETE…
Vejo nos documentos do Oracle que V$DATABASE_INCARNATION
inclui uma STATUS
coluna que pode ter valores de ORPHAN
, CURRENT
ou PARENT
, que devem estar relacionados.
O que são encarnações 'órfãs' e quais etapas resultariam em uma linha com STATUS
= ORPHAN
in V$DATABASE_INCARNATION
?
A seguir está um pequeno gráfico que usarei para explicar quando os órfãos são criados nas encarnações de um banco de dados. É uma variação do gráfico que usei para explicar as encarnações na minha resposta à pergunta Alguém pode me explicar o conceito “encarnação” no banco de dados Oracle de forma fácil de entender?
Espero que você aproveite a viagem.
Restaurando o banco de dados para um ponto no tempo (1)
Em algum lugar um pouco depois das 13:00 (13:00) alguém decide que o banco de dados deve ser restaurado para 12:00 (12:00 meio-dia). O DBA aciona vários comandos do RMAN para restaurar o banco de dados para esse ponto no tempo ou clica em uma GUI fantástica para iniciar uma restauração/recuperação de um fornecedor de terceiros.
O RMAN recupera o backup COMPLETO do banco de dados e todos os backups de log de arquivo do disco/fita e os restaura no disco. Na fase de recuperação, o RMAN verificará se todas as informações relevantes estão disponíveis e fará roll forward de todas as transações concluídas para o Point in Time e reverterá todas as transações inacabadas para o Point in Time, para garantir que o banco de dados esteja em um estado consistente.
Antes que o banco de dados possa ser aberto ao público em geral, o banco de dados deve garantir que todos os backups futuros não entrem em conflito com os backups anteriores. É quando uma nova encarnação deve ser criada e isso acontece quando você executa o seguinte comando para abrir o banco de dados:
Você pode executar o seguinte script em sua instância para recuperar uma visão hierárquica de suas encarnações (atuais):
A encarnação atual do banco de dados será semelhante a esta:
Usando o gráfico, podemos ver que passamos do caminho que contém a encarnação 1 para o caminho com a encarnação 2, porque abrimos o banco de dados com
RESETLOGS
e o banco de dados criou uma nova encarnação.Restaurando o banco de dados para um ponto no tempo (2)
Vamos novamente assumir que o banco de dados continua em execução após a primeira ação de restauração/recuperação e um pouco depois das 15:00 (15:00) alguém decide que precisa de uma nova restauração/recuperação de volta para a hora completa às 15:00 (15:00) do mesmo dia.
O RMAN restaurará os arquivos, recuperará o banco de dados e acionará um
ALTER DATABASE OPEN RESETLOGS
para colocar o banco de dados online novamente. O INCARNATION# será agora definido como 3 e o primeiro backup às 16:00 conterá as informações:Se consultarmos as encarnações no banco de dados usando o script acima, obteremos algo assim:
Restaurando o banco de dados para um ponto no tempo (3)
Vamos novamente assumir que o banco de dados continua em execução após a segunda ação de restauração/recuperação e um pouco depois das 17:00 (17:00) alguém decide que precisa haver uma nova restauração/recuperação de volta às 14:00 (14:00) do mesmo dia.
O RMAN restaurará os arquivos, recuperará o banco de dados e acionará um
ALTER DATABASE OPEN RESETLOGS
para colocar o banco de dados online novamente. O INCARNATION# será agora definido como 4 e o primeiro backup às 18:00 conterá as informações:Se consultarmos as encarnações no banco de dados usando o script acima, obteremos algo assim:
O que aconteceu? Temos um órfão!
Encarnações órfãs...
Se você olhar para o gráfico, estamos atualmente na praça às 18:00 (18:00) com a Encarnação 4 e o SCN 400. Agora, se você seguir essa linha de volta ao início, você pode ver que iríamos da encarnação 4 volte para a encarnação 2 e depois volte para a encarnação 1, que é quando o banco de dados foi criado.
Isso também corresponde à saída (simplificada) dos meus scripts.
Então, o que aconteceu com a encarnação 3? A Encarnação 3 é ruim ou obsoleta ou o que dá?
Responda
Não, a encarnação 3 não é ruim, é apenas órfã.
Em uma escala maior com mais tempo entre backups e restaurações, você ainda pode restaurar/recuperar o banco de dados para um ponto no tempo na linhagem da encarnação 3. Você acionaria o seguinte comando:
... e, em seguida, restaure/recupere o banco de dados para esse ponto no tempo, como faria com outra restauração/recuperação de um banco de dados.
O que o
ORPHAN
status lhe diz é que a encarnação 3 não está mais relacionada ao estado atual do banco de dados com a encarnação atual 4. A encarnação órfã 3 não é mais necessária para restaurar/recuperar o banco de dados ao longo da linha do tempo atual....Resultar em Backups Obsoletos
Agora, olhando para os backups de banco de dados em relação à encarnação órfã, o RMAN determina que os backups da encarnação órfã são OBSOLETOS. Mas essa é uma história para uma sessão de perguntas e respostas diferente...
RC_DATABASE_INCARNATION
Passos para reproduzir: