Previous Topic: Gerenciador de recuperação (RMAN) e restauração do banco de dados para um servidor alternativoNext Topic: Restaurar usando a linha de comando


Restauração do banco de dados para outro host usando o RMAN

Você pode restaurar um banco de dados em outro host usando o RMAN.

Restauração do banco de dados em outro host usando o RMAN

  1. Digite os comandos a seguir para obter o valor db_id (ID do banco de dados) do banco de dados a ser restaurado do catálogo do RMAN:
    sqlplus <usuário do rman>/<senha do rman>@<service do rman>
    SQL> select db_key, db_id, bs_key, recid, stamp, backup_type, start_time, status from rc_backup_set;
    
  2. Identifique o valor db_id correspondente ao banco de dados a ser restaurado.
  3. Digite o comando a seguir para determinar o número e o local do arquivo de cada arquivo de dados do banco de dados de origem:
    SVRMGR> select file#, name from v$data file;
    
  4. Copie o arquivo init<$ORACLE_SID>.ora de $ORACLE_HOME/dbs no <host1> para o <host2>.
  5. Edite $ORACLE_HOME/dbs/init<$ORACLE_SID>.ora e ajuste todos os caminhos para refletir a nova estrutura do diretório no <host2>.
  6. Execute o SQL*Net configure para garantir que o catálogo do RMAN esteja visível de ambos bancos de dados instalados em <host1> e <host2>.
  7. Configure o arquivo de senha do Oracle no <host2> digitando o seguinte comando:
    orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=kernel.
    
  8. Digite o comando a seguir para iniciar o banco de dados de destino com a opção nomount:
    SVRMGR> startup nomount pfile=$ORACLE_HOME/dbs/init<$ORACLE_SID>.ora
    
  9. Digite os comandos a seguir para restaurar o arquivo de controle:

    Observação: será necessário o db_id obtido na etapa 2.

    rman rcvcat <nome do usuário do rman>/<senha do rman>@<serviço do rman>
    
    RMAN> set dbid=<valor do db_id do banco de dados de origem>
    
    RMAN> connect target <nome do usuário>/<senha>;
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> restore controlfile;
    
    RMAN> release channel dev1;
    
    RMAN> }
    
  10. Digite o comando a seguir para montar o banco de dados de destino:
    SVRMGR> alter database mount;
    
  11. Determine o novo local de cada arquivo de dados no script do RMAN usando os locais determinados na etapa 3.
  12. Digite os comandos a seguir para restaurar o banco de dados usando os novos locais determinados na etapa 11:
    rman target <nome do usuário>/<senha> rcvcat <nome do usuário do rman>/<senha do rman>@<serviço do rman>
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> set newname for data file 1 to '<caminho novo>'
    
    RMAN> set newname for data file 2 to '<caminho novo>'
    
    ...
    
    RMAN> restore database;
    
    RMAN> switch data file all;
    
    RMAN> release channel dev1;
    
  13. Digite o comando a seguir para recuperar o banco de dados usando os arquivos de controle restaurados:
    SVRMGR> recover database using backup controlfile until cancel;
    
  14. Digite o comando a seguir para abrir o banco de dados usando a opção resetlogs:
    SVRMGR> alter database open resetlogs;
    
  15. Se ocorrer o erro ORA-00344: não é possível recriar log online %s:
    1. Digite os comandos a seguir para renomear cada linha do log redo online:
      SVRMGR> alter database rename file <online redo log #1 path> 
      to <novo caminho nº1 do log redo online>;
      ...
      SVRMGR> alter database rename file <online redo log #n path> 
      to <novo caminho nºn do log redo online>;
      
    2. Digite o comando a seguir para abrir o banco de dados:
      SVRMGR> alter database open resetlogs;