Tópico anterior: Restaurar espaços para tabelasPróximo tópico: Solução de problemas


Restaurar arquivos de controle

Se os arquivos de controle do banco de dados forem perdidos ou danificados, é possível restaurá-los executando uma recuperação em nível de arquivo. Após a recuperação em nível de arquivo ser bem-sucedida, você precisa recuperar manualmente os arquivos de controle.

Siga estas etapas:

  1. Efetue logon no computador de destino como um usuário raiz.
  2. Encerre a instância do Oracle.
    SQL>shutdown abort
    
  3. Inicie o banco de dados no estado nomount.
    SQL>startup nomount
    
  4. Liste o caminho para todos os arquivos de controle.
    SQL> show parameter control_files;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    control_files                        string      /opt/oracle/oradata/lynx/control01,ctl, /opt/oracle/flash_recovery_area/lynx/control02,ctl
    
  5. Restaure os arquivos de controle, usando o Assistente de restauração. Para obter mais informações sobre o processo de restauração, consulte Como executar uma recuperação em nível de arquivo em nós Linux.
  6. Especifique as seguintes informações sobre o Assistente de restauração e envie a tarefa:
    1. Ao selecionar os arquivos e as pastas, insira o nome do arquivo de controle necessário e pesquise. Repita esta etapa até que todos os arquivos de controle sejam selecionados.

      Exemplo: insira "control01.ctl" e pesquise.

    2. Na página Computador de destino, especifique as seguintes informações:
      • Selecione Restaurar no local original.
      • Digite o nome do host ou o endereço IP do Oracle Server de destino.
      • Digite o nome de usuário raiz e a senha do Oracle Server de destino.
      • Selecione Substituir os arquivos existentes para a opção Resolvendo conflitos.
  7. Depois que todos os arquivos de controle forem restaurados, monte o banco de dados e abra-o.
    $sqlplus / as sysdba
    SQL>alter database mount;
    
  8. Recupere o banco de dados com o comando RECOVER e adicione a cláusula USING BACKUP CONTROLFILE.
    SQL> RECOVER DATABASE USING BACKUP CONTROLFILE
    
  9. Aplique os logs arquivados solicitados.

    Observação: se o log arquivado necessário estiver ausente, isso indica que um registro de repetição necessário está localizado nos logs de repetição online. Isso ocorre porque as alterações não arquivadas estão localizadas nos logs online quando a instância falha. É possível especificar o caminho completo de um arquivo de log de repetição online e pressionar Enter (pode ser necessário executar isso algumas vezes até localizar o log correto).

    Exemplo:

    SQL> RECOVER DATABASE USING BACKUP CONTROLFILE 
    ORA-00279: change 1035184 generated at 27/05/14 18:12:49 needed for thread 1
    ORA-00289: suggestion :
    /opt/oracle/flash_recovery_area/LYNX/archivelog/2014_05_27/o1_mf_1_6_%u_.arc
    ORA-00280: change 1035184 for thread 1 is in sequence #6
    Especificar log: {<RET>=suggested | filename | AUTO | CANCEL}
    /opt/oracle/oradata/lynx/redo03,log
    Log applied.
    Recuperação de mídia concluída.
    
  10. Abra o banco de dados com a cláusula RESETLOGS após concluir o processo de recuperação.
    SQL>alter database open resetlogs;
    

Os arquivos de controle são recuperados com êxito.