Configurar um observador do Data Guard no Google Cloud Compute Engine
Dependendo dos requisitos de alta disponibilidade, convém automatizar o failover entre bancos de dados. Depois de validar a implantação do Data Guard, é possível configurar um observador do Data Guard no Compute Engine para fazer isso. Um observador é um processo que monitora uma configuração do DataGuard para iniciar um failover automatizado, se as condições exigirem.
Este guia aborda a instalação do cliente do banco de dados Oracle 19c em uma máquina virtual (VM) do observador e a configuração do failover do início rápido.
Os exemplos a seguir são usados neste guia:
Nome exclusivo do banco de dados | Nomes de host do servidor | Nomes de instâncias RAC | Papel |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | Principal |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | Espera |
Instalar o software cliente do banco de dados Oracle
Crie uma máquina virtual (VM) no Compute Engine que atenda aos seguintes critérios:
Sistema operacional. Red Hat Enterprise Linux 7.
Rede. Uma sub-rede com regras de firewall que permite o acesso da nuvem privada virtual para hosts da Solução Bare Metal que executam os bancos de dados principal e em espera.
Storage. -- Pelo menos 20 GB alocados para o disco de inicialização.
Faça login na VM e verifique se o nome de host SCAN de cada cluster de banco de dados é resolvido no DNS:
host DBDG_SITE1_SCAN_HOSTNAME host DBDG_SITE2_SCAN_HOSTNAME
Se os nomes de host não forem resolvidos, adicione os endereços IP de cada nome de host SCAN ao arquivo
/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 do Oracle Database. Instale apenas o software. Não é necessário configurar um banco de dados na VM do observador.
O RPM do Oracle Database instala o software em um diretório predefinido. Adicione as seguintes entradas a
/home/oracle/.bash_profile
para adicionar a casa 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
Crie as variáveis de ambiente da Oracle na sessão de terminal:
source ~/.bash_profile
Configurar a conectividade do banco de dados
Defina as configurações do Oracle Net no arquivo
$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) ) )
O Oracle Database versão 12.2 e mais recentes inclui suporte para o observador para ser executado em modo de segundo plano. Para isso, é necessário criar uma carteira para realizar a autenticação sem senha no banco de dados. Para criar uma carteira, faça login como o usuário oracle na VM do observador e:
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 hospeda o observador:
mkdir /home/oracle/wallet
Inicialize a carteira e forneça uma senha para ela quando solicitado:
mkstore -wrl /home/oracle/wallet -create
Crie uma entrada na carteira para cada banco de dados na configuração do Data Guard. O comando
mkstore
solicitará a senha do SYS para o banco de dados, seguida pela senha da carteira fornecida na etapa 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 banco de dados na configuração do Data Guard. O argumento
-listCredential
paramkstore
solicitará a senha da carteira:mkstore -wrl /home/oracle/wallet -listCredential
Faça login na VM do observador como Oracle e, em seguida, teste a conectividade com os bancos de dados principal e em espera. Conecte-se aos bancos de dados principal e secundário com o SQL*Plus usando as 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
fará login diretamente no banco de dados sem solicitar uma senha.
Configurar e ativar o failover de início rápido
Crie um diretório para armazenar a configuração e os arquivos de registro do observador:
mkdir /home/oracle/fsfo
Conecte-se ao agente do Data Guard no banco de dados principal usando a carteira:
dgmgrl CONNECT /@DBDG_SITE1;
Verifique o status do Data Guard para verificar se a configuração está marcada como
SUCCESS
:SHOW CONFIGURATION;
Ative o failover de início rápido (FSFO).
ENABLE FAST_START FAILOVER;
Ativar o FSFO não prepara a configuração para o failover automático. O failover automático requer um observador.
Inicie o Data Guard Observer:
START OBSERVER observer1 IN BACKGROUND FILE IS '/home/oracle/fsfo/observer1_DBDG.dat' LOGFILE IS '/home/oracle/fsfo/observer1_DBDG.log';
Em uma sessão de terminal separada, verifique a configuração:
SHOW CONFIGURATION VERBOSE;
O exemplo a seguir mostra o modo detalhado do comando
show configuration
. Se o status da configuração forSUCCESS
, significa que 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