Prepare bases de dados Oracle para o serviço de cópia de segurança e RD

Antes de começar, é recomendável rever o serviço de cópia de segurança e recuperação de desastres para o Oracle.

Antes de poder fazer uma cópia de segurança de bases de dados Oracle, tem de adicionar o servidor Oracle como um anfitrião ao serviço Backup and DR. Para que isto funcione, certifique-se de que consulta os pré-requisitos para fazer uma cópia de segurança de uma base de dados Oracle e, em seguida, siga estes passos de preparação.

Procedimentos de preparação para bases de dados Oracle
Passo Procedimento de preparação
1 Prepare bases de dados Oracle num ambiente Linux ou
Prepare bases de dados Oracle num ambiente Windows
2 Prepare-se para fazer uma cópia de segurança de uma base de dados Oracle com ficheiros de dados num grupo de discos ASM
3 Prepare a autenticação da base de dados Oracle
Ative a monitorização de alterações de blocos da base de dados (opcional)
Proteja a partir de um nó do Oracle Data Guard
Configure a comutação transparente de RAC da cópia de segurança do RMAN para outros nós
Compressão de registos de arquivo do Oracle
Configure os serviços da base de dados Oracle para o equilíbrio de carga em vários nós
Aplique patches ao Oracle 12c

Prepare bases de dados Oracle num ambiente Linux

Antes de proteger uma base de dados Oracle ou se as tarefas de proteção da base de dados falharem, certifique-se de que as seguintes definições estão corretas no servidor da base de dados Oracle.

  • Cada base de dados Oracle a proteger tem de estar em funcionamento. Por exemplo:

    database: actdb
    #ps -ef | grep pmon | grep -i actdb
    oracle   27688     1  0  2015 ?        00:26:24 ora_pmon_actdb
    
  • A base de dados tem de estar em execução no modo de registo de arquivo. Para verificar se a base de dados está a ser executada no modo de registo de arquivo, inicie sessão no servidor de base de dados como utilizador do SO Oracle e defina a variável de ambiente da base 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
    

    Inicie sessão 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>
    
  • A base de dados deve estar a usar o spfile. Verifique se a base 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 a base de dados Oracle RAC, o ficheiro de controlo do instantâneo tem de estar localizado em discos partilhados. Para uma base de dados Oracle RAC no ASM, o ficheiro de controlo de instantâneo tem de estar localizado em discos partilhados.

    Para verificar isto, estabeleça ligação 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 a base 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 ficheiros local.

    Num ambiente RAC, tem de estar definido como grupo de discos ASM partilhado. Para o colocar no grupo de discos do ASM, use:

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

Prepare-se para fazer uma cópia de segurança de uma base de dados Oracle com ficheiros de dados num grupo de discos ASM

Disco de preparação de cópias de segurança e RD num grupo de discos ASM

O parâmetro ASM diskstring tem de estar definido e não é nulo. Inicie sessão no servidor de base de dados como utilizador do SO 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

Ligue-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, obtenha o valor da string do disco ASM correto para os discos ASM existentes antes de continuar com a proteção do Backup and DR. A cópia de segurança de backup e recuperação de desastres adiciona o respetivo caminho da string do disco (/dev/Backup and DR/asm/*) para o disco de preparação da cópia de segurança para mapear para o ASM.

Disco de preparação de cópia de segurança e RD no sistema de ficheiros

Se estiver a proteger uma base de dados Oracle ASM num sistema de ficheiros, tem de definir a opção Converter ASM para sistema de ficheiros como Sim em Detalhes e definições da aplicação. Consulte o artigo Detalhes e definições da aplicação para bases de dados Oracle.

Prepare a autenticação da base de dados Oracle

Os seguintes passos de preparação adicionais só são necessários se planear usar a autenticação de base de dados. A autenticação da base de dados Oracle é descrita no artigo Cópias de segurança e recuperação de desastres através da autenticação da base de dados.

  1. Siga os passos em Prepare bases de dados Oracle num ambiente Linux.

  2. Crie uma conta de utilizador da base de dados para a cópia de segurança do Backup and DR, se não for fornecida:

    create user act_rman_user identified by <password>;
    
  3. Conceda acesso a sysdba a todos os nós do RAC iniciando sessão em sqlplus em todos os nós e executando o seguinte:

    grant create session, resource, sysdba to act_rman_user;
    

    Para o Oracle 12c, esta função pode ser sysbackup em vez de of sysdba, e o nome de utilizador da base 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 através das seguintes instruções:

Crie e valide o nome do serviço Oracle num ambiente não RAC

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

Exemplo: Nome da base de dados: dbstd, Nome da instância: dbstd

  1. Se o nome do serviço Oracle não estiver listado, então: crie a entrada do nome do serviço no ficheiro tnsnames.ora em $ORACLE_HOME/network/admin ou em $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 ficheiro tnsnames.ora estiver numa localização não padrão, forneça o caminho absoluto para o mesmo em Detalhes e definições da aplicação, conforme descrito em Detalhes e definições da aplicação para bases de dados Oracle

  2. Teste a entrada do nome do serviço para a base de dados para se certificar de que está configurada:

    Inicie sessão como utilizador do SO Oracle e defina o ambiente Oracle:

    TNS_ADMIN=(tnsnames.ora file location)
    tnsping act_svc_dbstd
    
  3. Verifique a conta de utilizador da base de dados para se certificar de que a cópia de segurança do Backup and DR se pode ligar:

    sqlplus act_rman_user/act_rman_user@act_svc_dbstd as sysdba
    
  4. Indique o nome do serviço criado (act_svc_dbstd) na definição de nome do serviço Oracle em Detalhes e definições da aplicação, conforme descrito em Detalhes e definições da aplicação para bases de dados Oracle

Crie e valide o nome do serviço Oracle num ambiente RAC

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

Exemplo de RAC de três nós:

  • Nome da base de dados: dbrac

  • Nome da instância 1: dbrac1

  • Nome de Instance2: dbrac2

  • Nome da instância3: dbrac3 com a proteção da base de dados definida a partir do Node3 (nome da instância dbrac3):

  1. Crie uma entrada servicename no ficheiro 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 nome do serviço:

    Inicie sessão como utilizador do SO Oracle e defina o ambiente Oracle:

    TNS_ADMIN=(tnsnames.ora file location)
    tnsping act_svc_dbrac3
    
  3. Verifique a conta de utilizador da base de dados para se certificar de que a cópia de segurança do Backup and DR se pode ligar:

    sqlplus act_rman_user/act_rman_user@act_svc_dbrac3 as sysdba
    
  4. Indique o nome do serviço criado (act_svc_dbrac3) na definição do nome do serviço Oracle em Detalhes e definições da aplicação descritos em Detalhes e definições da aplicação para bases de dados Oracle.

    Se o ficheiro tnsnames.ora estiver numa localização não padrão, indique o caminho absoluto para o ficheiro tnsnames.ora na TNS_Admindefinição de caminho do Oracle em Detalhes e definições da aplicação, conforme descrito em Detalhes e definições da aplicação para bases de dados Oracle

Ative o acompanhamento de alterações de blocos da base de dados (opcional)

O acompanhamento de alterações de blocos da base de dados é descrito no artigo Acompanhamento de alterações de blocos (BCT) da base de dados Oracle

Para verificar se o acompanhamento de alterações de blocos da base de dados está ativado:

sqlplus / as sysdba

No comando SQL:

select * from v$block_change_tracking;

Se o acompanhamento de alterações de blocos da base de dados não estiver ativado, ative-o a partir do sqlplus:

Usar o grupo de discos do ASM

sqlplus / as sysdba

No comando SQL:

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

Usar o sistema de ficheiros

sqlplus / as sysdba

No comando SQL:

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

Proteja a partir de um nó do Oracle Data Guard

Pode proteger uma base de dados Oracle de nós da base de dados principal ou de nós de espera do Oracle Data Guard. Se a proteção estiver definida a partir de um nó do Oracle Data Guard, certifique-se de que define as credenciais do nó principal em Application Details & Settings (Detalhes e definições da aplicação) na consola de gestão.

Para autenticação da base de dados (apenas no Linux)

  • Nome de utilizador/palavra-passe: as credenciais da conta de utilizador da base de dados. Para que esta conta de utilizador esteja disponível no nó do Data Guard com acesso sysdba, o utilizador tem de ser criado com privilégio sysdba no nó principal (consulte a criação de uma conta de utilizador de cópia de segurança com acesso sysdba). Em seguida, o ficheiro de palavras-passe (em $ORACLE_HOME/dbs/) do nó principal tem de ser copiado para o nó do Data Guard.

Para autenticação do SO

  • Nome de utilizador/palavra-passe: na autenticação do SO, não é necessário o privilégio sysdba. Esta conta de utilizador da base de dados precisa do privilégio connect, alter system. Para que esta conta de utilizador esteja disponível no nó do Data Guard, o utilizador tem de ser criado no nó principal.

Se o utilizador não tiver a função sysdba, precisa de grant connect, alter system, select on dba_tablespaces.

Para conceder estes privilégios, na linha de comandos SQL:

    grant connect, alter system, select on dba_tablespaces to act_rman_user;
  • Oracle Data Guard Primary Node Servicename: este é o nome do serviço no ficheiro tnsnames.ora configurado no nó do Data Guard para estabelecer ligação ao nó principal a partir do nó de espera. Oracle Data Guard O nome do serviço do nó principal é obrigatório para a autenticação do SO e da base de dados se a cópia de segurança estiver configurada a partir do nó de espera do Data Guard.

Para ver todos os detalhes e definições, consulte o artigo Detalhes e definições da aplicação para bases de dados Oracle

Nó da base de dados Autenticação do SO Autenticação da base de dados
Primary Não são necessárias credenciais da base de dados. São necessárias credenciais da base de dados. Se não for selecionada nenhuma função, é usada a função sysdba.
Modo de espera São necessárias credenciais da base de dados mesmo para a autenticação do SO (para estabelecer ligação ao registo de comutação principal). As credenciais da base de dados não têm de ter uma função sysdba/sysbackup. Se for usada uma conta sysdba/sysbackup, defina a função de utilizador em Função de utilizador na base de dados em Detalhes e definições da aplicação. São necessárias credenciais da base de dados. As credenciais da base de dados têm de ser para a função sysdba ou sysbackup, e a função de utilizador na base de dados tem de estar definida como sysdba ou sysbackup nos detalhes e definições da aplicação. Para configurar a autenticação da base de dados, consulte o artigo Ativar a autenticação da base de dados para um servidor Oracle.

Configure a comutação em alternativa transparente do RAC da cópia de segurança do RMAN para outros nós

O agente de cópia de segurança e recuperação de desastres tem de estar instalado e em execução em todos os nós que planeia incluir na configuração de comutação por falha da cópia de segurança. A proteção está configurada apenas a partir de um nó.

Em Details & Settings, Cluster Nodes, especifique a escolha do nó de comutação por falha num ambiente Oracle RAC:

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

Onde:

  • Escolha de alternativa: a ordem do nó em que deve ocorrer a alternativa.

  • IP do nó: o endereço IP do nó onde quer executar a cópia de segurança

  • Servicename: o nome do serviço criado e especificado no tnsnames.ora para a cópia de segurança do RMAN do Backup and DR. Pode ser um novo serviço dedicado criado para a cópia de segurança de recuperação de desastres e de cópia de segurança ou o nome SID (nome da instância) da base de dados nesse nó.

  • Função: F, o que indica que é um nó de comutação por falha

Para criar um novo nome de serviço no nó de comutação por falha no ficheiro tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora ou em $GRID_HOME/network/admin/tnsnames.ora)

Exemplo num ambiente Oracle One Node

O RAC One Node consiste em dois nós:

172.15.157.200
172.15.157.201

Tem uma base de dados OneN em execução apenas num dos nós em qualquer altura. OneN está protegido de 172.15.157.200, com as definições do nó do cluster especificadas como 1:172.15.157.201:OneN:F

Se o OneN falhar para 172.15.157.201, a cópia de segurança e a recuperação de desastres seguem-no e iniciam a tarefa de cópia de segurança seguinte a partir de 172.15.157.201 em vez de 200. Se ocorrer uma comutação por falha a meio de uma tarefa de cópia de segurança, a tarefa falha e a tarefa seguinte usa o nó de comutação por falha para iniciar uma nova cópia de segurança.

Exemplo num ambiente Oracle, não num nó:

  • RAC de 2 nós (dbrac1 e dbrac2)

  • A proteção é definida através do nome da base de dados "dbrac" de dbrac1 e a comutação por falha vai ser definida como dbrac2

  • Nome do serviço no nó 2: act_svc_dbrac2

  • IP do Node2 ou IP de procura: 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 definições da aplicação, as entradas dos 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 dos nós do cluster F e M

F: Nó de comutação por falha, só participa quando o nó de proteção não está a fazer a cópia de segurança.

M: nó de manutenção, substitui o nó de proteção se for validado para poder fazer a cópia de segurança.

Compressão de registos de arquivo da Oracle

A cópia de segurança do registo de arquivo de cópia de segurança e RD suporta a compressão do conjunto de cópias de segurança do registo do Oracle. O tipo de compressão que selecionar depende destas definições de configuração do RMAN. Selecione uma opção com base no seu exemplo de utilização.

  • As taxas de compressão mais baixas têm o menor impacto no débito da cópia de segurança. Estas são mais adequadas para ambientes em que os recursos de CPU são o fator limitativo.

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

  • As taxas de compressão elevadas consomem muitos recursos e são mais adequadas para cópias de segurança em redes mais lentas, em que o fator limitativo é a velocidade da rede.

A predefinição é Básico. O plano Basic não requer a compressão avançada da Oracle.

Para verificar o tipo de compressão definido no ambiente, execute o comando show all na linha de comandos do RMAN:

rman target /

    show all

Configure os serviços de base de dados Oracle para o equilíbrio de carga em vários nós

Este procedimento aplica-se apenas a bases de dados Oracle ASM. Neste exemplo, vamos assumir um ambiente RAC de quatro nós. Os nós 3 e 4 vão ser equilibrados em termos de carga para utilização de cópia de segurança.

Consulte:

O equilíbrio de carga entre nós do Oracle RAC requer a autenticação da base de dados Oracle.

Configure a cópia de imagem do RMAN paralela a partir de vários nós

Num ambiente RAC, pode configurar a cópia de segurança para ser executada em paralelo a partir de vários nós.

  1. Instale o agente de cópia de segurança e RD em todos os nós.

  2. Configure o mapeamento do grupo de discos do ASM para o nó 3 e o nó 4 através dos detalhes e das definições da aplicação.

  3. Crie um serviço de base de dados com srvctl para ser executado a partir do nó 3 e do nó 4.

  4. Use este serviço para especificar em Detalhes e definições da aplicação. Escolha o número de canais em Definições avançadas (n.º de canais). O RMAN distribui os canais entre o nó 3 e o nó 4.

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

Configure os serviços de base de dados Oracle para o balanceamento de carga em vários nós

  1. Configure em Detalhes e definições da aplicação, Nós membros do RAC: IP do nó 3 e IP do nó 4.

  2. Crie um serviço de base de dados para o nó de manutenção a ser usado pelo Backup and DR para a cópia de segurança:

    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 em nós de cópia de segurança (nó dbinstance3e dbinstance4 neste exemplo) no ficheiro tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora ou em $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 nome do serviço criado:

    tnsping actservice

  5. Teste o nome do serviço e as credenciais do utilizador:

    sqlplus act_rman_user/act_rman_user@act_service_<dbname> as sysdba
    
  6. Especifique este nome do serviço em Detalhes e definições da aplicação nome do serviço Oracle.

  7. Crie um serviço de cópia de segurança de registo de arquivo dedicado num nó protegido (por exemplo, o nó 3) para ser usado para a cópia de segurança:

    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 cópia de segurança do registo de arquivo criado no ficheiro tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora ou em $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 este nome do serviço no registo de arquivo Application Details & Settings do nome do serviço de cópia de segurança.

Aplique patches ao Oracle 12c

As montagens conscientes da aplicação de cópia de segurança e recuperação de desastres podem falhar se a sua instalação do Oracle 12c não incluir este patch, que pode ser transferido do portal de apoio técnico da Oracle:

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

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

Para ver se a correção está instalada, execute:

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

O que se segue

Antes de adicionar o anfitrião da Oracle, continue para:

  1. (Opcional) Use o Oracle Direct NFS com o Backup and DR
  2. Patches da Oracle e problemas conhecidos

O guia de DBA da Oracle