Configure um observador do Data Guard no Google Cloud Compute Engine
Consoante os seus requisitos de alta disponibilidade, pode querer automatizar a comutação por falha entre bases de dados. Depois de validar a implementação do Data Guard, tem a opção de configurar um observador do Data Guard no Compute Engine para o fazer. Um observador é um processo que monitoriza uma configuração do Data Guard para iniciar uma comutação por falha automática se as condições o justificarem.
Este guia aborda a instalação do cliente da base de dados Oracle 19c numa máquina virtual (VM) observadora e a configuração da comutação por falha de início rápido.
Os exemplos seguintes são usados ao longo deste guia:
Nome exclusivo da base de dados | Nomes de anfitrião do servidor | Nomes das instâncias do RAC | Função |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | Primary |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | Modo de espera |
Instale o software cliente da base de dados Oracle
Crie uma máquina virtual (VM) no Compute Engine que cumpra os seguintes critérios:
Sistema operativo. Red Hat Enterprise Linux 7.
Redes. Uma sub-rede com regras de firewall que permitem o acesso a partir da sua nuvem privada virtual aos anfitriões da Solução Bare Metal que executam as bases de dados primárias e de reserva.
Armazenamento. -- Pelo menos 20 GB alocados ao disco de arranque.
Inicie sessão na VM e verifique se o nome de anfitrião SCAN de cada cluster de base de dados é resolvido no DNS:
host DBDG_SITE1_SCAN_HOSTNAME host DBDG_SITE2_SCAN_HOSTNAME
Se os nomes de anfitrião não forem resolvidos, adicione os endereços IP para cada nome de anfitrião SCAN ao ficheiro
/etc/hosts
na VM. Substitua os endereços IP de exemplo pelos endereços IP de cada cluster:# Site 1 SCAN Hosts 192.0.2.10 DBDG_SITE1_SCAN_HOSTNAME 192.0.2.11 DBDG_SITE1_SCAN_HOSTNAME 192.0.2.12 DBDG_SITE1_SCAN_HOSTNAME # Site 2 SCAN Hosts 198.51.100.10 DBDG_SITE2_SCAN_HOSTNAME 198.51.100.11 DBDG_SITE2_SCAN_HOSTNAME 198.51.100.12 DBDG_SITE2_SCAN_HOSTNAME
Instale o RPM da base de dados Oracle. Instale apenas o software. Não tem de configurar uma base de dados na VM do observador.
O RPM da base de dados Oracle instala software num diretório predefinido. Adicione as seguintes entradas a
/home/oracle/.bash_profile
para adicionar o diretório base do software Oracle ao caminho:cat >> /home/oracle/.bash_profile << EOL export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export PATH=\$PATH:\$ORACLE_HOME/bin EOL
Obtenha as variáveis de ambiente da Oracle na sessão do terminal:
source ~/.bash_profile
Configure a conetividade da base de dados
Configure as definições da Oracle Net no ficheiro
$ORACLE_HOME/network/admin/tsnames.ora
:DBDG_SITE1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DBDG_SITE1) (UR=A) ) ) DBDG_SITE2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DBDG_SITE2) (UR=A) ) )
A versão 12.2 e superior da base de dados Oracle inclui suporte para o observador ser executado no modo de segundo plano. Para o fazer, tem de criar uma carteira para realizar a autenticação sem palavra-passe na base de dados. Inicie sessão como o utilizador oracle na VM do observador e execute as seguintes tarefas para criar uma carteira:
Adicione as seguintes entradas a
$ORACLE_HOME/network/admin/sqlnet.ora
:WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /home/oracle/wallet)) ) SQLNET.WALLET_OVERRIDE = TRUE
Crie o diretório da carteira na VM que aloja o observador:
mkdir /home/oracle/wallet
Inicialize a carteira e, em seguida, forneça uma palavra-passe para a carteira quando lhe for pedido:
mkstore -wrl /home/oracle/wallet -create
Crie uma entrada na carteira para cada base de dados na configuração do Data Guard. O comando
mkstore
pede a palavra-passe SYS para a base de dados, seguida da palavra-passe da carteira fornecida no passo anterior:mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
Confirme se a carteira contém credenciais para cada base de dados na configuração do Data Guard. O argumento
-listCredential
paramkstore
pede a palavra-passe da carteira:mkstore -wrl /home/oracle/wallet -listCredential
Inicie sessão na VM do observador como Oracle e, em seguida, teste a conetividade às bases de dados primárias e de reserva. Estabeleça ligação às bases de dados principal e secundária com o SQL*Plus através das credenciais da carteira:
sqlplus /@DBDG_SITE1 as sysdba sqlplus /@DBDG_SITE2 as sysdba
Se a configuração da carteira for bem-sucedida, o comando
sqlplus
inicia sessão diretamente na base de dados sem pedir uma palavra-passe.
Configure e ative a comutação por falha de início rápido
Crie um diretório para armazenar a configuração do observador e os ficheiros de registo:
mkdir /home/oracle/fsfo
Faça a ligação ao agente do Data Guard na base de dados principal através da carteira:
dgmgrl CONNECT /@DBDG_SITE1;
Veja o estado do Data Guard para verificar se a configuração está marcada como
SUCCESS
:SHOW CONFIGURATION;
Ative a comutação em caso de falha de início rápido (FSFO):
ENABLE FAST_START FAILOVER;
A ativação do FSFO não torna a configuração preparada para a comutação por falha automática. A ativação pós-falha automática requer um observador.
Iniciar observador do Data Guard:
START OBSERVER observer1 IN BACKGROUND FILE IS '/home/oracle/fsfo/observer1_DBDG.dat' LOGFILE IS '/home/oracle/fsfo/observer1_DBDG.log';
Numa sessão de terminal separada, valide a configuração:
SHOW CONFIGURATION VERBOSE;
O exemplo seguinte mostra o modo detalhado do comando
show configuration
. Se o estado da configuração forSUCCESS
, a configuração está concluída.Configuration - DBDG Protection Mode: MaxAvailability Members: DBDG_SITE1 - Primary database DBDG_SITE2 - Physical standby database (*) Fast-Start Failover target Properties: FastStartFailoverThreshold = '30' OperationTimeout = '30' TraceLevel = 'USER' FastStartFailoverLagLimit = '45' CommunicationTimeout = '180' ObserverReconnect = '0' FastStartFailoverAutoReinstate = 'TRUE' FastStartFailoverPmyShutdown = 'TRUE' BystandersFollowRoleChange = 'ALL' ObserverOverride = 'FALSE' ExternalDestination1 = '' ExternalDestination2 = '' PrimaryLostWriteAction = 'CONTINUE' ConfigurationWideServiceName = 'DBDG_CFG' Fast-Start Failover: Enabled in Potential Data Loss Mode Lag Limit: 45 seconds Threshold: 30 seconds Active Target: DBDG_SITE2 Potential Targets: "DBDG_SITE2" DBDG_SITE2 valid Observer: observer1 Shutdown Primary: TRUE Auto-reinstate: TRUE Observer Reconnect: (none) Observer Override: FALSE Configuration Status: SUCCESS