Oracle Data Guard 19c physical standby (com Broker; instância única, Oracle Restart, RAC)
OracleNível: AvançadoDuração: 2–4 horas (conforme o tamanho dos dados)Cria um physical standby para um banco de dados primary 19c em execução com RMAN DUPLICATE … FROM ACTIVE DATABASE e o adiciona ao Data Guard Broker. O resultado é um standby que recebe e aplica o redo em tempo real, uma configuração do broker com status SUCCESS e um switchover testado (opcionalmente um teste de failover/reinstate e Fast-Start Failover + observer). Primary e standby podem ser instância única, Oracle Restart ou RAC; para a operação diária e as falhas de uma configuração existente, use o guia de operação do Data Guard.
Topologia: Primary (instância única / Oracle Restart / RAC com 2–8 nós) + physical standby (instância única / Oracle Restart / RAC) + observer opcional
Antes de começar
- O software Oracle Database da mesma versão e do mesmo RU do primary está instalado …em todos os nós do standby…no servidor standby… (somente software; sem banco de dados), com o mesmo caminho de ORACLE_HOME (…). Mesma família de sistema operacional e mesmo endian.… O Grid Infrastructure (…cluster…Oracle Restart…) está instalado e em execução no standby com o mesmo RU ou um mais recente.…
- O banco de dados primary é Enterprise Edition. O Data Guard está incluído no EE; abrir o standby (read only) enquanto o apply está em execução exige licença do Active Data Guard.
- Em todos os servidores, o profile do usuário oracle define ORACLE_HOME=…, ORACLE_SID e PATH (……1, …2 … nos nós do primary…… no primary…; o profile do standby é escrito neste guia).… No lado com Grid, o profile do usuário grid define ORACLE_HOME=… e ORACLE_SID=+ASM… (+ASM1, +ASM2 … no RAC)…; asmcmd e lsnrctl são executados com esse profile.…
- Todos os servidores resolvem uns aos outros pelo nome (DNS ou /etc/hosts)…; os nomes SCAN (…………, …………) resolvem para 3 endereços no DNS… e a …/tcp está aberta nas duas direções. A largura de banda da rede comporta a geração de redo…; para SYNC, latência de ida e volta de preferência abaixo de 1–2 ms….
- Disk groups ASM com os mesmos nomes do primary (…, …) estão montados no standby e têm espaço livre suficiente.
- O Clusterware/Oracle Restart está íntegro no standby…; todos os nós do standby estão no cluster (olsnodes)….
- No primary, a redo thread de cada instância está habilitada (v$thread ENABLED = PUBLIC) e todas as threads têm o mesmo número e tamanho de grupos de online redo.
- O standby tem tanto espaço em disco quanto o primary para data files, FRA (… GB) e archive logs.
- Relógios sincronizados com NTP/chrony; fusos horários idênticos.
- O primary tem um arquivo de senhas (REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE) e a senha do SYS é conhecida. A senha não deve conter @, /, " nem espaços (causam problemas nas strings de conexão do RMAN/DGMGRL).
- Se o primary não estiver em modo ARCHIVELOG, é necessária uma reinicialização… (todas as instâncias param)…; há uma janela de manutenção aprovada para isso. Existe um backup RMAN atual do primary.
- O Oracle Client (tipo de instalação Administrator, inclui dgmgrl e mkstore) ou o software Database está instalado no servidor do observer; ele alcança o primary e o standby pela …/tcp.
Fases do guia
- Pré-verificação — Verificar o estado atual do primary
- Preparação do primary — Definir a FRA (se não existir) · Ativar o modo ARCHIVELOG (se necessário) · Ativar force logging e Flashback Database · Definir os parâmetros do Data Guard · Criar os standby redo logs · Verificar o arquivo de senhas
- Oracle Net (tnsnames, listener estático) — Adicionar as entradas do tnsnames.ora (primary…, todos os nós…) · Adicionar os registros estáticos do listener (primary) · Adicionar o registro estático do listener (nó primary …: …) · Abrir a porta do listener no firewall… (todos os nós)…
- Preparação do servidor standby — Extrair a lista de diretórios no primary e enviá-la para o standby · Copiar o arquivo de senhas para o standby · Copiar o arquivo de senhas para o standby (a partir do registro no Clusterware) · Preparar o oratab e o arquivo de ambiente (standby) · Preparar o oratab e o arquivo de ambiente (nó standby …: …) · Criar os diretórios (standby…, todos os nós…) …
- Criação do standby (RMAN DUPLICATE) e Redo Apply — Criar o standby: RMAN DUPLICATE FROM ACTIVE DATABASE · Verificar o estado do standby · Criar os standby redo logs se não existirem (standby) · Remover o pfile temporário (standby) · Standby RAC: gravar os parâmetros de cluster no spfile · Standby RAC: mover o spfile e o arquivo de senhas para o ASM …
- Data Guard Broker e modo de proteção — Mover os arquivos de configuração do broker para um local compartilhado (primary RAC) · Iniciar o broker (primary) · Mover os arquivos de configuração do broker para um local compartilhado (standby RAC) · Iniciar o broker (standby) · Criar a configuração do broker · Definir a apply instance (standby RAC) …
- Teste de switchover — Teste de switchover: tornar o standby o primary · Verificar o estado após o switchover · Switchback: restaurar as funções originais
- Flashback no standby — Ativar o Flashback Database no standby
- Teste de failover e reinstate — Teste de failover 1/4: simular uma queda do primary · Teste de failover 2/4: failover para o standby · Teste de failover 3/4: iniciar o primary antigo em MOUNT · Teste de failover 4/4: reintegrar o primary antigo como standby (REINSTATE) · Restaurar as funções originais após o failover
- Fast-Start Failover e observer — Gravar o tnsnames.ora (observer) · Criar um wallet para o observer · Definir o wallet no sqlnet.ora (observer) · Testar a conexão com o wallet (observer) · Definir as propriedades do Fast-Start Failover · Gravar o script de inicialização do observer (observer) …
- Pós-instalação — Definir a política de exclusão de archive logs (primary) · Definir a política de exclusão de archive logs (standby) · Gravar o script de limpeza de archive logs (standby…, todos os nós…) · Testar o script manualmente com o ambiente do cron (standby…, todos os nós…) · Definir o job do cron (standby…, todos os nós…) · Verificar as permissões do arquivo do cron …