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.
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 comspfile
:#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.
Siga os passos em Prepare bases de dados Oracle num ambiente Linux.
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>;
Conceda acesso a
sysdba
a todos os nós do RAC iniciando sessão emsqlplus
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 deof sysdba
, e o nome de utilizador da base de dados começa com #.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
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
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 OracleTeste 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
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
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ânciadbrac3
):
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
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
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
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_Admin
definiçã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
edbrac2
)A proteção é definida através do nome da base de dados "dbrac" de
dbrac1
e a comutação por falha vai ser definida comodbrac2
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:
Configure a cópia de imagem do RMAN paralela a partir de vários nós
Configure os serviços de base de dados Oracle para o equilíbrio de carga em vários nós
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.
Instale o agente de cópia de segurança e RD em todos os nós.
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.
Crie um serviço de base de dados com srvctl para ser executado a partir do nó 3 e do nó 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.
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
Configure em Detalhes e definições da aplicação, Nós membros do RAC: IP do nó 3 e IP do nó 4.
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>
Adicione a entrada tns para o nome do serviço Oracle criado em nós de cópia de segurança (nó
dbinstance3
edbinstance4
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>) ) )
Teste o nome do serviço criado:
tnsping actservice
Teste o nome do serviço e as credenciais do utilizador:
sqlplus act_rman_user/act_rman_user@act_service_<dbname> as sysdba
Especifique este nome do serviço em Detalhes e definições da aplicação nome do serviço Oracle.
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>
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>) ) )
Teste o nome do serviço:
tnsping act_archservice
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:
O guia de DBA da Oracle
- Cópia de segurança e RD para bases de dados Oracle
- Pré-requisitos para proteger uma base de dados Oracle
- Patches da Oracle e problemas conhecidos
- Prepare bases de dados Oracle para proteção
- Descubra e proteja uma base de dados Oracle
- Detalhes e definições para bases de dados Oracle
- Use o dNFS com a cópia de segurança e a RD
- Proteja uma base de dados Oracle descoberta
- Monte uma base de dados Oracle como uma montagem padrão
- Crie uma cópia virtual instantânea de uma base de dados Oracle
- Restaure e recupere uma base de dados Oracle
- Recuperação instantânea de uma base de dados Oracle através da montagem e migração
- Aprovisione um ambiente com um fluxo de trabalho de cópia de segurança e RD