Tópico anterior: Restaurar em tempo definidoPróximo tópico: Restauração do banco de dados para outro host usando o RMAN


Gerenciador de recuperação (RMAN) e restauração do banco de dados para um servidor alternativo

Ao restaurar um banco de dados para um servidor alternativo, usando o RMAN diretamente, os seguintes pré-requisitos são obrigatórios:

Por exemplo, considere o seguinte cenário:

Observação: o cenário usado no procedimento a seguir pressupõe que o banco de dados obtido em backup do <Server-A> será restaurado no <Server-B> e seu nome de banco de dados será preservado. Também presume que a estrutura do diretório dos hosts origem e de destino seja a mesma. Além disso, esse cenário presume que o Oracle 10gR2 esteja sendo usado.

Para restaurar um banco de dados para um servidor alternativo, execute as seguintes etapas:

  1. Edite /etc/oratab a partir desse servidor Server-B e adicione a seguinte linha na instância do banco de dados original src como usuário oracle:
    src:/opt/oracle/10gR2:N
    
  2. Execute a ferramenta do Oracle netca (assistente de configuração de rede oracle) para configurar um nome TNS do banco de dados de catálogo RMAN catdb e assegure que ele esteja visível a partir do banco de dados instalado no Server-B como usuário oracle.
  3. Crie a mesma estrutura de diretório original que Server-A com o usuário oracle.

    Por exemplo:

    $cd $ORACLE_BASE/admin
    $mkdir src
    $mkdir adump  bdump  cdump  dpdump  pfile  udump
    $mkdir -p $ORACLE_BASE/oradata/src
    $mkdir -p $ORACLE_BASE/flash_recovery_area/SRC
    
  4. Execute orasetup para configurar o agente Oracle para o banco de dados original no servidor alternativo (Server-B).
    # /opt/CA/ABoraagt/orasetup
    
    

    Quando o orasetup solicita que você use um catálogo do Gerenciador de recuperação para manusear backups de banco de dados, especifique “y”™.

    Você está planejando usar um catálogo do Gerenciador de recuperação para manusear backups de banco de dados (Recomendado)? (S/N) S
    
    

    Quando o orasetup solicita que o nome da instância Oracle RAC seja especificado, forneça a ID da instância original.

    ID da instância do Oracle a ser usada por este agente [<Enter> para concluir]: src
    O valor do ambiente ORACLE_HOME para esta instância do Oracle: (padrão:/opt/oracle/10gR2):
    
    

    Quando o orasetup solicita que você especifique o nome do serviço do Gerenciador de recuperação, especifique o nome TNS configurado para o banco de dados de catálogo do RMAN.

    Como você configurou o Gerenciador de recuperação, forneça o nome do serviço Gerenciador de recuperação para o banco de dados src.
    Nome do serviço do Gerenciador de recuperação: catdb
    
  5. Edite o arquivo sbt.cfg no Server-B na pasta /opt/CA/ABoraagt. Remova o seguinte “#” e digite o nome do host para Server-A.
    Nó # a partir de onde o backup original foi feito
    SBT_ORIGINAL_CLIENT_HOST=Server-A.
    
  6. Verifique se é possível usar o comando ping com o nome do host do servidor do CA ARCserve Backup para Server-B e vice-versa.
  7. Adicione uma pfile ao servidor alternativo (Server-B).
  8. Inicialize o banco de dados src com a opção "sem montagem" usando o pfile criado.
    $export ORACLE_SID=src
    $sqlplus /nolog
    SQL>conn sys/passw0rd as sysdba
    SQL>startup nomount pfile=$ORACLE_HOME/dbs/init$ORACLE_SID.ora
    SQL>exit
    
  9. Restaure o spfile usando o catálogo RMAN.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<valor do db_id do banco de dados de origem> 
    RMAN> connect target system/passw0rd;
    RMAN>run {
    2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/CA/ABoraagt/libobk64.so';
    3>restore spfile;
    4>release channel ch1;
    5>}
    

    Observação: no caso de um banco de dados Oracle de 32 bits, o SBT_LIBRARY usa libobk32.so. Para um banco de dados Oracle de 64 bits, o SBT_LIBRARY usa libobk64.so.

    A tarefa de restauração é executada na fila de tarefas do Servidor do CA ARCserve Backup. Quando a tarefa estiver concluída, o banco de dados spfile restaura para caminho $ORACLE_HOME/dbs.

    Encerre o banco de dados.

    RMAN>shutdown immediate;
    RMAN>exit
    

    Reinicie o banco de dados com a opção "sem montagem" usando o spfile que acabou de ser restaurado.

    $sqlplus /nolog
    SQL>conn sys/passw0rd as sysdba
    SQL>startup nomount
    SQL>quit
    
  10. Restaure o arquivo de controle.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<valor do db_id do banco de dados de origem> 
    RMAN> connect target system/passw0rd;
    RMAN> run { 
    2> allocate channel dev1 type 'sbt_tape' 
    parms='SBT_LIBRARY=/opt/CA/ABoraagt/libobk64.so'; 
    3> restore controlfile; 
    4> release channel dev1; 
    5> } 
    

    Como alternativa, se você restaurar o arquivo de controle de uma determinada seção de backup para executar uma restauração com horário definido, execute as etapas a seguir:

    $ rman catalog rman/rman@catdb
    RMAN> set dbid=<valor do db_id do banco de dados de origem> 
    RMAN> connect target system/passw0rd;
    RMAN> run { 
    2> allocate channel dev1 type 'sbt_tape' 
    parms='SBT_LIBRARY=/opt/CA/ABoraagt/libobk64.so'; 
    3> restore controlfile from ‘Y’; 
    4> release channel dev1; 
    5> } 
    

    Para obter “Y”™, que indica as informações da seção de backup, faça o seguinte:

    RMAN> set dbid=<dbid>; 
    RMAN> list backup of controlfile; 
    

    A tarefa de restauração é executada na fila de tarefas do Servidor do CA ARCserve Backup. Quando a tarefa estiver concluída, os arquivos de controle do banco de dados serão restaurados para o caminho $ORACLE_HOME/oradata/$ORACLE_SID.

  11. Quando o arquivo de controle estiver restaurado, monte o banco de dados.
    $sqlplus / as sysdba
    SQL>alter database mount;
    SQL>exit
    
  12. Restaure o banco de dados e arquive os logs.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<valor do db_id do banco de dados de origem>
    RMAN> connect target system/passw0rd;
    RMAN>run {
    2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/CA/ABoraagt/libobk64.so';
    3>restore database;
    4>restore archivelog all;
    5>release channel ch1;
    6>}
    

    A tarefa de restauração é executada na fila de tarefas do Servidor do CA ARCserve Backup. Quando a tarefa estiver concluída, os arquivos de banco de dados e os logs de arquivo são restaurados.

  13. Use o arquivo de controle do backup para recuperar o banco de dados e, em seguida, abra o banco de dados.
    $sqlplus / as sysdba
    SQL> recover database using backup controlfile until cancel
    
  14. Digite o comando a seguir para abrir o banco de dados usando a opção resetlogs:
    SQL> alter database open resetlogs;