Database
 sql >> Base de Dados >  >> RDS >> Database

Configurando o Active Data Guard Physical Standby na Arquitetura RAC One Node - Parte 1


Este artigo é a parte 1 de uma série de duas partes que descreve as etapas para definir o modo de espera físico do Active Data Guard na arquitetura de um nó RAC.

Introdução

O Oracle Data Guard é um dos principais componentes do Oracle Database High Availability (HA), um conjunto integrado de soluções, que ajuda as organizações a minimizar a inatividade, planejada ou não, para garantir o fluxo de seus negócios. O Active Data Guard é uma opção licenciada para Oracle Database Enterprise Edition que amplia a funcionalidade básica do Data Guard [1] ao permitir recursos avançados, como:consultas, relatórios, atualizações de banco de dados standby que não afetam o banco de dados primário, recuperação automática de blocos de dados corrompidos, backups incrementais, entre outros.

O Oracle RAC One Node utiliza uma arquitetura de disco compartilhado para fornecer uma solução de alta disponibilidade de banco de dados, semelhante ao Oracle Real Application Clusters (RAC). Diferentemente do Oracle RAC, que executa várias instâncias simultaneamente, o Oracle RAC One Node fornece uma solução de failover em apenas uma instância, além disso, pode facilitar a infraestrutura em cluster, sendo facilmente atualizado para configurações do Oracle Real Application Clusters com várias instâncias.


Ambiente

  • O banco de dados primário está usando Oracle RAC com 2 nós
  • O modo de proteção usado será "Desempenho máximo" usando o modo "transporte de redo assíncrono"
  • O recurso "Fast Start Failover" não será usado.
  • Configurações do Data Guard Broker



1. Defina db_unique_name como Banco de dados primário:
sqlplus> altera o conjunto do sistema db_unique_name='analytics' scope=spfile sid='*';

2. Copie o “arquivo de senha Oracle” para o servidor em espera:
scp orapwanalytics oracle@hostdr:/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs

3. Nas instâncias bancárias dos nós 1 e 2 do servidor primário, adicione entradas em listener.ora:

Nó 1:
(SID_DESC =(GLOBAL_DBNAME =analytics1_dgmgrl)(SID_NAME =analytics1)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

Nó 2:
 (SID_DESC =(GLOBAL_DBNAME =analytics2_dgmgrl)(SID_NAME =analytics2)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

4. No servidor em espera, adicione a entrada em listener.ora
 (SID_DESC =(GLOBAL_DBNAME =analytics_DG_DGMGRL)(SID_NAME =analytics_dg)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))



Após essas configurações, é necessário executar o comando “listener reload” para forçar o listener a ler as entradas listener.ora novamente. Atenção! Esta operação afetará a disponibilidade do ouvinte.

5. Adicione entradas no arquivo tnsnames.ora no Banco de Dados Primário e Standby;

5.1. Comentar entrada antiga
 #analytics =# (DESCRIPTION =# (ADDRESS =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))# (CONNECT_DATA =# (SERVER =DEDICATED)# (SERVICE_NAME =analytics)# ) )

5.2. Adicionar novas entradas:
 analytics =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(UR=A)))analytics1 =(DESCRIÇÃO =(ENDEREÇO ​​=(PROTOCOLO =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(SID =analytics1)(UR=A))) analytics2 =(DESCRIÇÃO =(ENDEREÇO ​​=(PROTOCOLO =TCP)(HOST =hostdr02vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(SID =analytics2)(UR=A)) )analytics1_DGMGRL =(DESCRIÇÃO =(ENDEREÇO ​​=(PROTOCOLO =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)(UR=A)))analytics2_DGMGRL =( DESCRIÇÃO =(ENDEREÇO ​​=(PROTOCOLO =TCP)(HOST =hostdr02vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)(UR=A)))

5.3. Entradas do DG:
analytics_DG =(DESCRIÇÃO =(ENDEREÇO ​​=(PROTOCOLO =TCP)(HOST =host01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_dg) (UR =A)))analytics_DG_DGMGRL =(DESCRIÇÃO =(ENDEREÇO ​​=(PROTOCOLO =TCP)(HOST =host01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_dg_dgmgrl)(UR=A)))

6. Teste novas entradas no arquivo tnsnames.ora
 tnsping analyticstnsping analytics1tnsping analytics2tnsping analytics_DGtnsping analytics1_DGMGRLtnsping analytics2_DGMGRLtnsping analytics_DG_DGMGRL

7. Habilite “Force Logging” e “Archivelog mode” no Banco de Dados Primário. Nota:A instância já estava configurada no modo archivelog.
 sqlplus> altera o banco de dados force logging;sqlplus> selecione force_logging, log_mode de v$database;FORCE_LOGGING LOG_MODE--------------------------- ------------ ------------SIM ARCHIVELOG

8. Verifique as configurações de RedoLogs no Banco de Dados Primário. O script usado logfiles.sql está disponível em oracle-base.com.

9. Adicione arquivos de log em espera.

Para determinar o número recomendado de logs de redo em espera, use a seguinte fórmula [2]:

(máximo nº de grupos de arquivos de log +1) * máximo nº de encadeamentos

Meu banco de dados principal tem dois threads e cada um tem quatro grupos de redo online, portanto, devemos ter dez redo logs de espera.

(número máximo de grupos de arquivos de log +1) * número máximo de encadeamentos =((4 + 1) * 2 =10)
 sqlplus> altera banco de dados adiciona arquivo de log de espera thread 1 grupo 41 ('+DG_RECO_DR') tamanho 1024M;sqlplus> altera banco de dados adiciona arquivo de log de espera thread 2 grupo 42 ('+DG_RECO_DR') tamanho 1024M;sqlplus> altera banco de dados adiciona arquivo de log de espera thread 1 grupo 43 ('+DG_RECO_DR') tamanho 1024M;sqlplus> altera banco de dados adiciona arquivo de log em espera thread 2 grupo 44 ('+DG_RECO_DR') tamanho 1024M;sqlplus> altera banco de dados adiciona arquivo de log em espera thread 1 grupo 45 ('+DG_RECO_DR') tamanho 1024M;sqlplus> altera banco de dados adiciona arquivo de log de espera thread 2 grupo 46 ('+DG_RECO_DR') tamanho 1024M;sqlplus> altera banco de dados adiciona arquivo de log de espera thread 1 grupo 47 ('+DG_RECO_DR') tamanho 1024M;sqlplus> altera banco de dados adiciona arquivo de log de espera thread 2 grupo 48 ('+DG_RECO_DR') tamanho 1024M;sqlplus> altera banco de dados adiciona arquivo de log em espera thread 2 grupo 49 ('+DG_RECO_DR') tamanho 1024M;sqlplus> altera banco de dados adiciona arquivo de log em espera thread 2 grupo 50 ('+DG_RECO_DR') tamanho 1024M;

10. No banco de dados Primário crie um pfile que será a base dos arquivos de parâmetros do banco de dados standby.
 crie pfile='/tmp/initanalytics_dg_aux.ora' a partir de spfile;

11. No banco de dados Standby crie o arquivo pfile com as informações do servidor remoto. A maneira mais fácil de criar este arquivo é copiar o arquivo de parâmetros do Primary Database (item 10) para o Standby Database e editá-lo.
$ cd $ORACLE_HOME/dbs$ vi initanalytics_dg_aux.ora#*.audit_file_dest='/u01/app/oracle/admin/analytics/adump'*.audit_file_dest='/u01/app/oracle/admin/analytics_dg/adump '*.audit_trail='db'#.cluster_database=true*.cluster_database=false*.compatible='12.1.0.2.0'#*.control_files='+DG_DATA_DR/analytics/controlfile/current.1257.954609365','+DG_RECO_DR /analytics/controlfile/current.527.954609365'*.control_files='+DG_DATA/analytics_dg/controlfile/current1.ctl','+DG_RECO/analytics_dg/controlfile/current2.ctl'*.db_block_size=8192#*.db_create_file_dest='+ DG_DATA_DR'*.db_create_file_dest='+DG_DATA'#*.db_create_online_log_dest_1='+DG_DATA_DR'*.db_create_online_log_dest_1='+DG_DATA'#*.db_create_online_log_dest_2='+DG_RECO_DR'*.db_create_online_log_='dest'2='+DG_RECO_DR'*.db_create_online_log_='dest'2=' *.db_name='analytics'*.db_files=2000#*.db_recovery_file_dest='+DG_RECO_DR'*.db_recovery_file_dest='+DG_RECO'*.db_recovery_file_dest_size=100G#*.db_unique_name='analytics'*.db_unique_name='analytics_dg' 
12. Crie hierarquias de diretórios.

12.1. Crie um diretório para “auditoria dump” no qual serão criados os arquivos e a auditoria do banco de dados.
 mkdir -p /u01/app/oracle/admin/analytics_dg/adump

12.2. No ASM, crie diretórios para o arquivo de controle e os arquivos de parâmetro:
 mkdir +DG_DATA/analytics_DG/mkdir +DG_DATA/analytics_DG/PARAMETERFILEmkdir +DG_DATA/analytics_DG/CONTROLFILEmkdir +DG_DATA/analytics_DG/BROKERCFGmkdir +DG_RECO/analytics_DGmkdir +DG_RECO/analytics_DG/BROKERCFG

13. Crie spfile e pfile no banco de dados em espera
 $ export ORACLE_SID=analytics_dg$ sqlplus / as sysdba

13.1. Inicie o banco de dados standby com pfile initanalytics_dg_aux.ora e converta o arquivo de parâmetro (pfile) para spfile.
 sqlplus> inicialização nomount pfile='/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs/initanalytics_dg_aux.ora';sqlplus> crie spfile='+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora' de pfile='/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs/initanalytics_dg_aux.ora';

13.2. Crie pfile e neste arquivo, insira a seguinte entrada:
 echo "spfile='+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora'">> initanalytics_dg.ora

13.3. Inicialização da instância com spfile para posterior restauração do banco de dados.
$ export ORACLE_SID=analytics_dg$ sqlplus sys as sysdbasqlplus> desligamento imediato;sqlplus> inicialização nomount;

14. Execute a restauração com a duplicata do banco de dados;
 conectar sys de destino/xxxxxx@analytics1;conectar sys auxiliar/xxxxxx@analytics_dg_dgmgrl;RUN {Alocar canal pr1 tipo de disco de dispositivo;Alocar canal pr2 tipo de disco de dispositivo;alocar canal auxiliar stby1 tipo de disco;alocar canal auxiliar stby2 tipo de disco;DUPLICAR BANCO DE DADOS DE DESTINO PARA STANDBY DO BANCO DE DADOS ATIVO;CANAL DE LIBERAÇÃO pr1; CANAL DE LIBERAÇÃO pr2; CANAL DE LIBERAÇÃO stby1; CANAL DE LIBERAÇÃO stby2;}



No próximo post continuaremos essa saga!


Referências

[1] Práticas recomendadas do Oracle Active Data Guard. Disponível em:https://www.oracle.com/database/technologies/active-data-guard-12c-best-practice.html
[2] Práticas recomendadas de alta disponibilidade do banco de dados Oracle 11g Release 2 (11.2). Disponível em:https://docs.oracle.com/cd/E24693_01/server.11203/e10803/config_dg.htm
[3] Data Guard Broker. Disponível em:https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781