Preparar bancos de dados Oracle para o serviço de Backup e DR

Antes de começar, é recomendável ler Serviço de backup e DR para Oracle.

Antes de fazer backup de bancos de dados Oracle, adicione o servidor Oracle como um host ao serviço de Backup e DR. Para que isso funcione, consulte Pré-requisitos para fazer backup de um banco de dados Oracle e siga estas etapas de preparação.

Procedimentos de preparação para bancos de dados Oracle
Etapa Procedimento de preparação
1 Preparar bancos de dados Oracle em um ambiente Linux ou
Preparar bancos de dados Oracle em um ambiente Windows
2 Preparar o backup de um banco de dados Oracle com arquivos de dados em um grupo de discos ASM
3 Prepare a autenticação do banco de dados Oracle
Ative o rastreamento de alterações de bloqueio do banco de dados (opcional)
Proteja de um nó do Oracle Data Guard
Configure o failover transparente do RAC do backup do RMAN para outros nós
Compressão de registros de arquivamento do Oracle
Configure os serviços do banco de dados Oracle para balanceamento de carga em vários nós
Aplique patch no Oracle 12c

Preparar bancos de dados Oracle em um ambiente Linux

Antes de proteger um database Oracle ou se os jobs de proteção de banco de dados falharem, verifique se as seguintes configurações estão corretas no servidor de banco de dados Oracle.

  • Cada banco de dados Oracle a ser protegido precisa estar em execução. Exemplo:

    database: actdb
    #ps -ef | grep pmon | grep -i actdb
    oracle   27688     1  0  2015 ?        00:26:24 ora_pmon_actdb
    
  • O banco de dados precisa estar sendo executado no modo de registro de arquivo. Para verificar se o banco de dados está sendo executado no modo de registro de arquivo, faça login no servidor de banco de dados como usuário do SO Oracle e defina a variável de ambiente do banco de dados:

    export ORACLE_HOME=<oracle home path>
    (get this from /etc/oratab)
    export ORACLE_SID=<database instance name> (you can get this through
    ps -ef | grep pmon)
    export PATH=$ORACLE_HOME/bin:$PATH
    

    Faça login no sqlplus:

    #sqlplus / as sysdba
    #SQL> archive log list;
    Database log mode   Archive Mode
    Automatic archival        Enabled
    Archive destination        +FRA
    Oldest online log sequence     569
    Next log sequence to archive   570
    Current log sequence        570
    #SQL>
    
  • O banco de dados precisa usar spfile. Verifique se o banco de dados está em execução com spfile:

    #sqlplus / as sysdba
    SQL> show parameter spfile
    NAME      TYPE   VALUE
    ------------------ ----------- ------------
    spfile      string  +DATA/ctdb/spfilectdb.ora
    
  • Para o banco de dados Oracle RAC, o arquivo de controle de snapshot precisa estar localizado em discos compartilhados. Para um banco de dados Oracle RAC no ASM, o arquivo de controle de snapshot precisa estar localizado em discos compartilhados.

    Para verificar isso, conecte-se ao RMAN e execute o comando show all. Configure-o, se necessário:

        rman target /
    

    Em seguida, no RMAN:

       show all
    

    Os parâmetros de configuração do RMAN para o banco de dados com db_unique_name CTDB são:

    CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
    CONFIGURE BACKUP OPTIMIZATION OFF; # default
    CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
    CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
    CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
    CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/mnt/ctdb/snapcf_ctdb.f';
    

    Este exemplo mostra a configuração definida para o sistema de arquivos local.

    Em um ambiente RAC, isso precisa ser definido como grupo de discos ASM compartilhado. Para colocar no grupo de discos do ASM, use:

    CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+<DG name>/snap_<DB name>.f';
    

Preparar o backup de um banco de dados Oracle com arquivos de dados em um grupo de discos ASM

Disco de staging de backup e DR em um grupo de discos do ASM

O parâmetro "diskstring" do ASM precisa ser definido e não pode ser nulo. Faça login no servidor de banco de dados como usuário do SO do ASM e defina a variável de ambiente do ASM:

    # export ORACLE_HOME=(oracle ASM home path)
    (get this from /etc/oratab)
    #export ORACLE_SID=(ASM instance name) (you
    can get this through ps ?ef | grep pmon)
    #export PATH=$ORACLE_HOME/bin:$PATH

Conecte-se a sqlplus:

    #sqlplus / as sysasm
    #sql> show parameter asm_diskstring
    NAME      TYPE   VALUE
    ------------------- ----------- ------------------------------
    asm_diskstring      string  ORCL:*, /dev/sdt1, /dev/sdu1

Se o resultado do valor for nulo, extraia o valor correto da string de disco do ASM para os discos do ASM atuais antes de continuar com a proteção do Backup e DR. O backup do Backup e DR adiciona o caminho da string do disco (/dev/Backup and DR/asm/*) para o disco de preparo de backup mapear para o ASM.

Disco de staging de backup e DR no sistema de arquivos

Se você estiver protegendo um banco de dados Oracle ASM em um sistema de arquivos, defina Converter ASM para sistema de arquivos como Sim em Detalhes e configurações do aplicativo. Consulte Detalhes e configurações do aplicativo para bancos de dados Oracle.

Preparar a autenticação do banco de dados Oracle

As etapas de preparação adicionais a seguir só são necessárias se você planeja usar a autenticação de banco de dados. A autenticação do banco de dados Oracle é descrita em Backup e DR usando a autenticação do banco de dados.

  1. Siga as etapas em Preparar bancos de dados Oracle em um ambiente Linux.

  2. Crie uma conta de usuário do banco de dados para o backup do Backup e DR, se não tiver sido fornecida:

    create user act_rman_user identified by <password>;
    
  3. Conceda acesso de sysdba a todos os nós do RAC fazendo login em sqlplus em todos os nós e executando:

    grant create session, resource, sysdba to act_rman_user;
    

    No Oracle 12c, essa função pode ser sysbackup em vez de of sysdba, e o nome de usuário do banco de dados começa com #.

  4. Verifique se a função sysdba foi concedida em todos os nós no ambiente RAC:

    #sqlplus / as sysasm
    # sql> select * from gv$pwfile_users;
    INST_ID USERNAME SYSDB SYSOP SYSAS
    ---------- --------------  ----- ----- -----
    1 SYS TRUE TRUE FALSE
    2 SYS TRUE TRUE FALSE
    1 ACT_RMAN_USER TRUE TRUE FALSE
    2 ACT_RMAN_USER TRUE TRUE FALSE
    
  5. Teste o nome do serviço com base no tipo de ambiente usando as seguintes instruções:

Criar e verificar o nome do serviço do Oracle em um ambiente não RAC

O nome do serviço Oracle é usado apenas para autenticação do banco de dados. Não é necessário para a autenticação do SO.

Exemplo: Nome do banco de dados: dbstd, Nome da instância: dbstd

  1. Se o nome do serviço Oracle não estiver listado, crie a entrada no arquivo tnsnames.ora em $ORACLE_HOME/network/admin ou $GRID_HOME/network/admin adicionando a entrada:

    act_svc_dbstd =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST
    = (IP of the database server)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = dbstd)
    ) )
    

    Se o arquivo tnsnames.ora estiver em um local não padrão, forneça o caminho absoluto para ele em Detalhes e configurações do aplicativo, conforme descrito em Detalhes e configurações do aplicativo para bancos de dados Oracle.

  2. Teste a entrada do nome do serviço para o banco de dados e verifique se ela está configurada:

    Faça login como usuário do SO Oracle e defina o ambiente Oracle:

    TNS_ADMIN=(tnsnames.ora file location)
    tnsping act_svc_dbstd
    
  3. Verifique a conta de usuário do banco de dados para garantir que o backup do Backup e DR possa se conectar:

    sqlplus act_rman_user/act_rman_user@act_svc_dbstd as sysdba
    
  4. Forneça o nome do serviço criado (act_svc_dbstd) na configuração "Nome do serviço Oracle " em Detalhes e configurações do aplicativo, conforme descrito em Detalhes e configurações do aplicativo para databases Oracle.

Criar e verificar o nome do serviço do Oracle em um ambiente RAC

O nome do serviço Oracle é usado apenas para autenticação do banco de dados. Não é necessário para a autenticação do SO.

Exemplo de RAC de três nós:

  • Nome do banco de dados: dbrac

  • Nome da instância 1: dbrac1

  • Nome da instância2: dbrac2

  • Nome da instância 3: dbrac3 com a proteção do banco de dados definida no Node3 (nome da instância dbrac3):

  1. Crie uma entrada de servicename no arquivo tnsnames.ora em $ORACLE_HOME/network/admin ou em $GRID_HOME/network/admin adicionando a seguinte entrada:

    act_svc_dbrac3 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = (IP of the database server)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (INSTANCE_NAME = dbrac3)
    (SERVICE_NAME = dbrac)
    ) ) )
     Where:
     HOST = This can be SCAN IP in a RAC environment or VIP or IP of the node 3 database server.
    SERVICE_NAME = database name
    INSTANCE_NAME = database instance name on node3
    
  2. Teste o servicename:

    Faça login como usuário do SO Oracle e defina o ambiente Oracle:

    TNS_ADMIN=(tnsnames.ora file location)
    tnsping act_svc_dbrac3
    
  3. Verifique a conta de usuário do banco de dados para garantir que o backup do Backup e DR possa se conectar:

    sqlplus act_rman_user/act_rman_user@act_svc_dbrac3 as sysdba
    
  4. Forneça o nome do serviço criado (act_svc_dbrac3) na configuração "Nome do serviço Oracle " em Detalhes e configurações do aplicativo, conforme descrito em Detalhes e configurações do aplicativo para databases Oracle.

    Se o arquivo tnsnames.ora estiver em um local não padrão, forneça o caminho absoluto para o arquivo em TNS_Admin do Oracle, na configuração Detalhes e configurações do aplicativo, conforme descrito em Detalhes e configurações do aplicativo para databases Oracle.

Ativar o rastreamento de alterações de bloqueio do banco de dados (opcional)

O rastreamento de alterações de bloqueio do banco de dados é descrito em Rastreamento de alterações de bloqueio (BCT) do banco de dados Oracle

Para verificar se o rastreamento de alterações de bloqueio do banco de dados está ativado:

sqlplus / as sysdba

No prompt do SQL:

select * from v$block_change_tracking;

Se o rastreamento de alterações de bloqueio do banco de dados não estiver ativado, faça isso no sqlplus:

Como usar o grupo de discos do ASM

sqlplus / as sysdba

No prompt do SQL:

alter database enable block change tracking using file '+<ASM Disk Group Name>/<database name>/<dbname>.bct';

Como usar o sistema de arquivos

sqlplus / as sysdba

No prompt do SQL:

alter database enable block change tracking using file '$ORACLE_HOME/dbs/<dbname>.bct';

Proteção contra um nó do Oracle Data Guard

É possível proteger um banco de dados Oracle de nós de banco de dados principal ou de nós de espera do Oracle Data Guard. Se a proteção for definida em um nó do Oracle Data Guard, defina as credenciais do nó principal em "Detalhes e configurações do aplicativo" no console de gerenciamento.

Para autenticação de banco de dados (somente Linux)

  • Nome de usuário/senha: as credenciais da conta de usuário do banco de dados. Para que essa conta de usuário esteja disponível no nó do Data Guard com acesso sysdba, ela precisa ser criada com privilégio sysdba no nó principal. Consulte "Criar conta de usuário de backup com acesso sysdba". Em seguida, o arquivo de senha (em $ORACLE_HOME/dbs/) do nó principal precisa ser copiado para o nó do Data Guard.

Para autenticação do SO

  • Nome de usuário/senha: em "Autenticação do SO", o privilégio sysdba não é necessário. Essa conta de usuário do banco de dados precisa do privilégio connect, alter system. Para que essa conta de usuário esteja disponível no nó do Data Guard, ela precisa ser criada no nó principal.

Se o usuário não tiver a função sysdba, ele precisará de grant connect, alter system, select on dba_tablespaces.

Para conceder esses privilégios, no prompt do SQL:

    grant connect, alter system, select on dba_tablespaces to act_rman_user;
  • Nome do serviço do nó principal do Oracle Data Guard: é o nome do serviço no arquivo tnsnames.ora configurado no nó do Data Guard para se conectar ao nó principal do nó de espera. O nome do serviço do nó principal do Oracle Data Guard é necessário para a autenticação do SO e do banco de dados se o backup for configurado no nó de espera do Data Guard.

Para mais detalhes sobre todas as configurações, consulte Detalhes e configurações do aplicativo para bancos de dados Oracle

Nó do banco de dados Autenticação do SO Autenticação de banco de dados
Principal Não são necessárias credenciais de banco de dados. São necessárias credenciais de banco de dados. Se nenhuma função for selecionada, sysdba será usada.
Espera As credenciais do banco de dados são necessárias mesmo para a autenticação do SO (para se conectar ao principal e trocar o registro). As credenciais do banco de dados não precisam ter uma função sysdba/sysbackup. Se uma conta sysdba/sysbackup for usada, defina a função do usuário em Função do usuário no banco de dados em "Detalhes e configurações do aplicativo". São necessárias credenciais de banco de dados. As credenciais do banco de dados precisam ser para a função sysdba ou sysbackup, e Função do usuário no banco de dados precisa ser definida como sysdba ou sysbackup em Detalhes e configurações do aplicativo. Para configurar a autenticação de banco de dados, consulte Como ativar a autenticação de banco de dados para um servidor Oracle.

Configurar o failover transparente do RAC do backup do RMAN para outros nós

O agente de backup e DR precisa estar instalado e em execução em todos os nós que você planeja incluir na configuração de failover de backup. A proteção é configurada apenas em um nó.

Em "Detalhes e configurações", "Nós do cluster", especifique a opção de nó de failover em um ambiente do Oracle RAC:

    <Failover choice>:<Node IP>:<Servicename>:<Role>

Em que:

  • Opção de failover:a ordem de failover dos nós.

  • IP do nó:o endereço IP do nó em que você quer executar o backup

  • Servicename:o nome do serviço criado e especificado no tnsnames.ora para backup do RMAN do Backup e DR. Pode ser um novo serviço dedicado criado para o backup do Backup e DR ou o nome do SID (nome da instância) do banco de dados nesse nó.

  • Função:F, indicando que é um nó de failover

Para criar um novo nome de serviço no nó de failover no arquivo tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora ou $GRID_HOME/network/admin/tnsnames.ora)

Exemplo em um ambiente Oracle One Node

O RAC One Node consiste em dois nós:

172.15.157.200
172.15.157.201

Ele tem um banco de dados OneN em execução apenas em um dos nós a qualquer momento. O OneN é protegido de 172.15.157.200, com as configurações do nó do cluster especificadas como 1:172.15.157.201:OneN:F

Se o OneN fizer failover para 172.15.157.201, o backup e DR vai seguir e iniciar o próximo job de backup de 172.15.157.201 em vez de 200. Se o failover ocorrer no meio de um job de backup, o job vai falhar, e o próximo usará o nó de failover para iniciar um novo backup.

Exemplo em um ambiente Oracle, não em um nó:

  • RAC de dois nós (dbrac1, dbrac2)

  • A proteção é definida usando o nome do banco de dados "dbrac" de dbrac1 e o failover será definido como dbrac2

  • Nome do serviço no node2: act_svc_dbrac2

  • IP do Node2 ou IP de verificação: 172.1.1.0

act_svc_node2 =

  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 172.1.1.0)(PORT = 1521))
  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (INSTANCE_NAME = dbrac2)
  (SERVICE_NAME = dbrac)
  ) )

Em Detalhes e configurações do aplicativo, as entradas de nós do cluster são as seguintes:

Failoverchoice:NodeIP:Servicename:Role

1:172.1.1.1:act_svc_node2:F

O comportamento das entradas F e M de nós de cluster

F: nó de failover, participa apenas quando o nó de proteção não está para realizar o backup.

M: nó de manutenção, substitui o nó de proteção se validado para poder realizar o backup.

Compactação de registros de arquivamento da Oracle

O backup de registros de arquivamento do Backup e DR é compatível com a compactação do conjunto de backup de registros do Oracle. O tipo de compactação selecionado depende dessas configurações de configuração do RMAN. Selecione uma opção com base no seu caso de uso.

  • Taxas de compactação mais baixas criam o menor impacto na capacidade de processamento de backup. Eles são mais adequados para ambientes em que os recursos de CPU são o fator limitante.

  • A compactação média é recomendada para a maioria dos ambientes. Elas oferecem uma boa combinação de taxas de compactação e velocidade.

  • As altas taxas de compactação consomem muitos recursos e são mais adequadas para backups em redes mais lentas, em que o fator limitante é a velocidade da rede.

A configuração padrão é "Básica". O Basic não exige a compactação avançada do Oracle.

Para verificar o tipo de compactação definido no ambiente, execute o comando show all no prompt do RMAN:

rman target /

    show all

Configurar serviços de banco de dados Oracle para balanceamento de carga em vários nós

Esse procedimento se aplica apenas a bancos de dados Oracle ASM. Neste exemplo, suponha um ambiente RAC de quatro nós. Os nós 3 e 4 serão balanceados por carga para uso de backup.

Veja estes tópicos:

O balanceamento de carga entre nós do Oracle RAC exige autenticação do banco de dados Oracle.

Configurar cópia de imagem paralela do RMAN de vários nós

Em um ambiente RAC, é possível configurar o backup para ser executado em paralelo em vários nós.

  1. Instale o agente de Backup e DR em todos os nós.

  2. Configure o mapeamento do grupo de discos do ASM para o nó 3 e o nó 4 usando detalhes e configurações do aplicativo.

  3. Crie um serviço de banco de dados usando srvctl para executar do nó 3 e do nó 4.

  4. Use esse serviço para especificar em Detalhes e configurações do aplicativo. Escolha "Número de canais" em "Configurações avançadas" (# de canais). O RMAN distribui os canais entre o nó 3 e o nó 4.

  5. Defina o nome do serviço do Oracle e os nós membros do RAC.

Configurar serviços do Oracle Database para balanceamento de carga em vários nós

  1. Configure em Detalhes e configurações do aplicativo, nós membros do RAC: IP de node3 e IP de node4.

  2. Crie um serviço de banco de dados para o nó de manutenção que será usado pelo Backup e DR para backup:

    srvctl add service -d <dbname> -s act_service_<dbname>
    -r <dbinstance3>,<dbinstance4> srvctl start service -d <dbname>
    -s act_service_<dbname>
    
  3. Adicione a entrada tns para o nome do serviço Oracle criado nos nós de backup (nós dbinstance3 e dbinstance4 neste exemplo) no arquivo tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora ou $GRID_HOME/network/admin/tnsnames.ora).

    act_service_<dbname> =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <SCAN IP>)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = <DATABASE NAME>)
    ) )
    
  4. Teste o servicename criado:

    tnsping actservice

  5. Teste o servicename e as credenciais do usuário:

    sqlplus act_rman_user/act_rman_user@act_service_<dbname> as sysdba
    
  6. Especifique esse nome em Detalhes e configurações do aplicativo, nome do serviço do Oracle.

  7. Crie um serviço dedicado de backup de registros de arquivamento em um nó protegido (por exemplo, nó 3) para ser usado no backup:

    srvctl add service -d <dbname> -s act_arc_service_<dbname> -r <dbinstance3>
    srvctl start service -d <dbname> -s act_arc_service_<dbname>
    
  8. Adicione a entrada tns para o nome do serviço de backup de registros de arquivamento criado no arquivo tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora ou $GRID_HOME/network/admin/tnsnames.ora).

    act_arc_service_<dbname> =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <SCAN IP>)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (INSTANCE_NAME = <node 3 instance>)
    (SERVICE_NAME = act_arc_service_<dbname>)
    ) )
    
  9. Teste o nome do serviço:

    tnsping act_archservice

  10. Especifique esse servicename em Detalhes e configurações do aplicativo, servicename de backup do registro de arquivo.

Aplicar patch no Oracle 12c

As montagens compatíveis com aplicativos do Backup e DR podem falhar se a instalação do Oracle 12c não incluir esse patch, que pode ser baixado do portal de suporte da Oracle:

Bug do Oracle Database 12c nº 19404068 (ORA-1610 ON RECOVER DATABASE FOR CREATED CONTROLFILE)

  • (Patch 19404068) Linux x86-64 para Oracle 12.1.0.2.0

Para verificar se o patch está instalado, execute:

    $cd $ORACLE_HOME/OPatch
    $./opatch lsinventory -details
    $./opatch lsinventory -details | grep 19404068

A seguir

Antes de adicionar o host do Oracle, continue em:

  1. (Opcional) Usar o Oracle Direct NFS com o Backup e DR
  2. Patches do Oracle e problemas conhecidos

O guia do DBA do Oracle