TR-4981: Redução de custos do Oracle ative Data Guard com o Amazon FSX ONTAP
NetApp
Essa solução fornece visão geral e detalhes para configurar o Oracle Data Guard usando o AWS FSX ONTAP como armazenamento de banco de dados Oracle para reduzir o custo operacional e licenciamento da solução de HA/DR do Oracle Data Guard na AWS.
Finalidade
O Oracle Data Guard garante alta disponibilidade, proteção de dados e recuperação de desastres para dados empresariais em um banco de dados primário e configuração de replicação de banco de dados em espera. O Oracle ative Data Guard capacita os usuários a acessar bancos de dados em espera enquanto a replicação de dados está ativa do banco de dados primário para bancos de dados em espera. O Data Guard é um recurso do Oracle Database Enterprise Edition. Não requer licenciamento separado. Por outro lado, o ative Data Guard é uma opção do Oracle Database Enterprise Edition, portanto, requer licenciamento separado. Vários bancos de dados em espera podem receber replicação de dados de um banco de dados primário na configuração do ative Data Guard. No entanto, cada banco de dados em espera adicional requer uma licença do ative Data Guard e armazenamento extra como o tamanho do banco de dados principal. Os custos operacionais somam-se rapidamente.
Se você está interessado em reduzir o custo da operação do banco de dados Oracle e está planejando configurar um ative Data Guard na AWS, você deve considerar uma alternativa. Em vez do ative Data Guard, use o Data Guard para replicar do banco de dados primário para um único banco de dados físico de espera no armazenamento do Amazon FSX ONTAP. Posteriormente, várias cópias deste banco de dados em espera podem ser clonadas e abertas para acesso de leitura/gravação para atender a muitos outros casos de uso, como relatórios, desenvolvimento, teste, etc. os resultados da rede fornecem efetivamente funcionalidades do ative Data Guard, eliminando a licença do ative Data Guard e o custo de armazenamento extra para cada banco de dados em espera adicional. Nesta documentação, demonstramos como configurar um Oracle Data Guard com seu banco de dados principal existente na AWS e colocar banco de dados de espera físico no armazenamento do Amazon FSX ONTAP. O backup do banco de dados em espera é feito via snapshot e clonado para acesso de leitura/gravação para casos de uso, conforme desejado.
Esta solução aborda os seguintes casos de uso:
-
Entre um banco de dados principal em qualquer armazenamento na AWS e um banco de dados de reserva no armazenamento do Amazon FSX ONTAP.
-
Clone o banco de dados de reserva enquanto fechado para replicação de dados para atender a casos de uso, como relatórios, desenvolvimento, teste etc.
Público-alvo
Esta solução destina-se às seguintes pessoas:
-
Um DBA que configurou o Oracle ative Data Guard na AWS para alta disponibilidade, proteção de dados e recuperação de desastres.
-
Um arquiteto de solução de banco de dados interessado na configuração do Oracle ative Data Guard na nuvem da AWS.
-
Um administrador de armazenamento que gerencia o armazenamento do AWS FSX ONTAP que oferece suporte ao Oracle Data Guard.
-
Proprietário de um aplicativo que gosta de levantar o Oracle Data Guard no ambiente AWS FSX/EC2.
Ambiente de teste e validação de soluções
O teste e a validação dessa solução foram realizados em um ambiente de laboratório do AWS FSX ONTAP e EC2 que pode não corresponder ao ambiente de implantação final. Para obter mais informações, consulte a Fatores-chave para consideração da implantaçãoseção .
Arquitetura
Componentes de hardware e software
Hardware |
||
FSX ONTAP armazenamento |
Versão atual oferecida pela AWS |
Um cluster do FSX HA na mesma VPC e zona de disponibilidade |
EC2 instância para computação |
t2.xlarge/4vCPU/16G |
Três instâncias EC2 T2 xlarge EC2, uma como servidor de banco de dados primário, uma como servidor de banco de dados de reserva e a terceira como um servidor de banco de dados clone |
Software |
||
RedHat Linux |
RHEL-8,6.0_HVM-20220503-x86_64-2-Hourly2-GP2 |
Implantou a assinatura RedHat para testes |
Oracle Grid Infrastructure |
Versão 19,18 |
Aplicado patch RU p34762026_190000_Linux-x86-64.zip |
Banco de dados Oracle |
Versão 19,18 |
Aplicado patch RU p34765931_190000_Linux-x86-64.zip |
Oracle OPatch |
Versão 12.2.0.1.36 |
Último patch p6880880_190000_Linux-x86-64.zip |
Configuração do Oracle Data Guard com configuração hipotética de NY a LA DR
Base de dados |
DB_UNIQUE_NAME |
Nome do serviço Oracle Net |
Primário |
db1_NY |
db1_NY.demo.NetApp.com |
Modo de espera físico |
db1_LA |
db1_LA.demo.NetApp.com |
Fatores-chave para consideração da implantação
-
Como funciona o Oracle Standby Database FlexClone. O AWS FSX ONTAP FlexClone fornece cópias compartilhadas dos mesmos volumes de banco de dados em espera que são graváveis. As cópias dos volumes são, na verdade, ponteiros que ligam de volta aos blocos de dados originais até que uma nova gravação seja iniciada no clone. Em seguida, o ONTAP aloca novos blocos de storage para as novas gravações. Qualquer iOS lido é atendido por blocos de dados originais sob replicação ativa. Assim, o clone é muito eficiente em armazenamento que pode ser usado para muitos outros casos de uso com alocação de armazenamento de novo mínima e incremental para novos iOS de gravação. Isso proporciona uma enorme economia de custos de armazenamento, reduzindo substancialmente o espaço físico do armazenamento do ative Data Guard. A NetApp recomenda minimizar as atividades do FlexClone no caso de transferência do banco de dados do armazenamento primário para o armazenamento de reserva do FSX, a fim de manter o desempenho da Oracle em alto nível.
-
Requisitos de software Oracle. Em geral, um banco de dados de espera físico deve ter a mesma versão inicial do banco de dados que o banco de dados principal, incluindo exceções de conjunto de patches (PSEs), atualizações críticas de patches (CPUs) e atualizações de conjunto de patches (PSUs), a menos que um processo de aplicação de patch em espera do Oracle Data Guard esteja em andamento (conforme descrito em My Oracle Support nota 1265700,1 em "support.oracle.com"
-
Considerações de estrutura de diretório de base de dados em espera. Se possível, os arquivos de dados, arquivos de log e arquivos de controle nos sistemas primário e de espera devem ter os mesmos nomes e nomes de caminho e usar convenções de nomenclatura de arquitetura flexível ideal (OFA). Os diretórios de arquivamento no banco de dados de espera também devem ser idênticos entre sites, incluindo tamanho e estrutura. Essa estratégia permite que outras operações, como backups, switchovers e failovers, executem o mesmo conjunto de etapas, reduzindo a complexidade da manutenção.
-
Force Logging Mode. Para proteger contra gravações diretas não registradas no banco de dados principal que não podem ser propagadas para o banco de dados de espera, ative O REGISTRO DE FORÇA no banco de dados primário antes de executar backups de arquivos de dados para criação em espera.
-
Gerenciamento de armazenamento de banco de dados. Para simplificar a operação, a Oracle recomenda que, quando você configurar o Oracle Automatic Storage Management (Oracle ASM) e o Oracle Managed Files (OMF) em uma configuração do Oracle Data Guard, você o configure simetricamente no(s) banco(s) de dados principal(s) e de espera.
-
EC2 instâncias de computação. Nesses testes e validações, usamos uma instância AWS EC2 T2.xlarge como instância de computação de banco de dados Oracle. A NetApp recomenda o uso de uma instância M5 tipo EC2 como instância de computação para Oracle na implantação de produção, pois ela é otimizada para a carga de trabalho de banco de dados. Você precisa dimensionar a instância EC2 adequadamente para o número de vCPUs e a quantidade de RAM com base nos requisitos reais de carga de trabalho.
-
FSX storage HA clusters implantação de uma ou várias zonas. Nesses testes e validações, implantamos um cluster do FSX HA em uma única zona de disponibilidade da AWS. Para implantação de produção, a NetApp recomenda a implantação de um par de HA do FSX em duas zonas de disponibilidade diferentes. Um cluster FSX é sempre provisionado em um par de HA que é sincronizado espelhado em um par de sistemas de arquivos ativo-passivo para fornecer redundância no nível de armazenamento. A implantação de várias zonas aumenta ainda mais a alta disponibilidade em caso de falha em uma única zona da AWS.
-
* Dimensionamento de cluster de armazenamento FSX.* Um sistema de arquivos de armazenamento Amazon FSX ONTAP oferece até 160.000 IOPS SSD bruto, taxa de transferência de até 4Gbps Gbps e capacidade máxima de 192TiB TB. No entanto, você pode dimensionar o cluster em termos de IOPS provisionadas, taxa de transferência e limite de storage (mínimo de 1.024 GiB) com base em seus requisitos reais no momento da implantação. A capacidade pode ser ajustada dinamicamente em tempo real, sem afetar a disponibilidade da aplicação.
Implantação de solução
Supõe-se que você já tenha seu banco de dados Oracle primário implantado no ambiente AWS EC2 em uma VPC como ponto de partida para a configuração do Data Guard. O banco de dados principal é implantado usando o Oracle ASM para gerenciamento de storage. Dois grupos de discos ASM - DADOS e LOGS são criados para arquivos de dados Oracle, arquivos de log e arquivo de controle etc. para obter detalhes sobre a implantação do Oracle na AWS com ASM, consulte os seguintes relatórios técnicos para obter ajuda.
Seu banco de dados principal da Oracle pode ser executado em um FSX ONTAP ou qualquer outro armazenamento de opções dentro do ecossistema AWS EC2. A seção a seguir fornece procedimentos de implantação passo a passo para configurar o Oracle Data Guard entre uma instância de banco de dados EC2 primário com armazenamento ASM para uma instância de banco de dados EC2 em espera com armazenamento ASM.
Pré-requisitos para implantação
Details
A implantação requer os seguintes pré-requisitos.
-
Uma conta da AWS foi configurada e os segmentos de rede e VPC necessários foram criados na sua conta da AWS.
-
No console do AWS EC2, você precisa implantar no mínimo três instâncias EC2 do Linux, uma como instância principal do Oracle DB, uma como instância de banco de dados Oracle de reserva e uma instância de banco de dados de destino clone para relatórios, desenvolvimento e teste, etc. consulte o diagrama da arquitetura na seção anterior para obter mais detalhes sobre a configuração do ambiente. Consulte também a AWS "Guia do Usuário para instâncias Linux" para obter mais informações.
-
No console do AWS EC2, implante clusters de HA de armazenamento do Amazon FSX ONTAP para hospedar volumes Oracle que armazenam o banco de dados de reserva do Oracle. Se você não estiver familiarizado com a implantação do FSX storage, consulte a documentação "Criando sistemas de arquivos FSX ONTAP" para obter instruções passo a passo.
-
As etapas 2 e 3 podem ser executadas usando o seguinte kit de ferramentas de automação Terraform, que cria uma instância EC2 chamada
ora_01
e um sistema de arquivos FSXfsx_01
chamado . Revise as instruções cuidadosamente e altere as variáveis para se adequar ao seu ambiente antes da execução. O modelo pode ser facilmente revisado para seus próprios requisitos de implantação.git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
Certifique-se de que você alocou pelo MENOS 50g em volume raiz de instância EC2 para ter espaço suficiente para colocar arquivos de instalação Oracle em estágio. |
Prepare o banco de dados principal para o Data Guard
Details
Nesta demonstração, configuramos um banco de dados Oracle primário chamado db1 na instância de banco de dados EC2 principal com dois grupos de discos ASM em configuração de reinicialização autônoma com arquivos de dados no grupo de discos ASM e área de recuperação flash em LOGS do grupo de discos ASM. A seguir ilustra os procedimentos detalhados para configurar o banco de dados primário para o Data Guard. Todas as etapas devem ser executadas como proprietário do banco de dados - usuário oracle.
-
Configuração primária do banco de dados db1 na instância primária de banco de dados EC2 ip-172-30-15-45. Os grupos de discos ASM podem estar em qualquer tipo de armazenamento dentro do ecossistema EC2.
[oracle@ip-172-30-15-45 ~]$ cat /etc/oratab # This file is used by ORACLE utilities. It is created by root.sh # and updated by either Database Configuration Assistant while creating # a database or ASM Configuration Assistant while creating ASM instance. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # # The first and second fields are the system identifier and home # directory of the database respectively. The third field indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # # +ASM:/u01/app/oracle/product/19.0.0/grid:N db1:/u01/app/oracle/product/19.0.0/db1:N [oracle@ip-172-30-15-45 ~]$ /u01/app/oracle/product/19.0.0/grid/bin/crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE ip-172-30-15-45 STABLE ora.LISTENER.lsnr ONLINE ONLINE ip-172-30-15-45 STABLE ora.LOGS.dg ONLINE ONLINE ip-172-30-15-45 STABLE ora.asm ONLINE ONLINE ip-172-30-15-45 Started,STABLE ora.ons OFFLINE OFFLINE ip-172-30-15-45 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.cssd 1 ONLINE ONLINE ip-172-30-15-45 STABLE ora.db1.db 1 ONLINE ONLINE ip-172-30-15-45 Open,HOME=/u01/app/o racle/product/19.0.0 /db1,STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.driver.afd 1 ONLINE ONLINE ip-172-30-15-45 STABLE ora.evmd 1 ONLINE ONLINE ip-172-30-15-45 STABLE --------------------------------------------------------------------------------
-
A partir do sqlplus, ative o registo forçado no primário.
alter database force logging;
-
De sqlplus, ative flashback no primário. Flashback permite restabelecer facilmente o banco de dados principal como um standby após um failover.
alter database flashback on;
-
Configurar a autenticação de transporte de refazer usando o arquivo de senha Oracle - crie um arquivo pwd no diretório principal usando o utilitário orapwd se não estiver definido e copie para o banco de dados de reserva.
-
Crie logs de refazer em espera no banco de dados principal com o mesmo tamanho do arquivo de log on-line atual. Grupos de log são mais um do que grupos de arquivos de log on-line. O banco de dados principal pode então fazer a transição rápida para a função de espera e começar a receber os dados de refazer, se necessário.
alter database add standby logfile thread 1 size 200M;
Validate after standby logs addition: SQL> select group#, type, member from v$logfile; GROUP# TYPE MEMBER ---------- ------- ------------------------------------------------------------ 3 ONLINE +DATA/DB1/ONLINELOG/group_3.264.1145821513 2 ONLINE +DATA/DB1/ONLINELOG/group_2.263.1145821513 1 ONLINE +DATA/DB1/ONLINELOG/group_1.262.1145821513 4 STANDBY +DATA/DB1/ONLINELOG/group_4.286.1146082751 4 STANDBY +LOGS/DB1/ONLINELOG/group_4.258.1146082753 5 STANDBY +DATA/DB1/ONLINELOG/group_5.287.1146082819 5 STANDBY +LOGS/DB1/ONLINELOG/group_5.260.1146082821 6 STANDBY +DATA/DB1/ONLINELOG/group_6.288.1146082825 6 STANDBY +LOGS/DB1/ONLINELOG/group_6.261.1146082827 7 STANDBY +DATA/DB1/ONLINELOG/group_7.289.1146082835 7 STANDBY +LOGS/DB1/ONLINELOG/group_7.262.1146082835 11 rows selected.
-
A partir do sqlplus, crie um arquivo pfile a partir do spfile para edição.
create pfile='/home/oracle/initdb1.ora' from spfile;
-
Revise o arquivo pfile e adicione os seguintes parâmetros.
DB_NAME=db1 DB_UNIQUE_NAME=db1_NY LOG_ARCHIVE_CONFIG='DG_CONFIG=(db1_NY,db1_LA)' LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=db1_NY' LOG_ARCHIVE_DEST_2='SERVICE=db1_LA ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=db1_LA' REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE FAL_SERVER=db1_LA STANDBY_FILE_MANAGEMENT=AUTO
-
A partir do sqlplus, crie spfile no diretório de DADOS ASM a partir do arquivo pfile revisado no diretório /home/oracle.
create spfile='+DATA' from pfile='/home/oracle/initdb1.ora';
-
Localize o spfile recém-criado no grupo de discos de DADOS (usando o utilitário asmcmd, se necessário). Use srvctl para modificar a grade para iniciar o banco de dados a partir de um novo spfile, como mostrado abaixo.
[oracle@ip-172-30-15-45 db1]$ srvctl config database -d db1 Database unique name: db1 Database name: db1 Oracle home: /u01/app/oracle/product/19.0.0/db1 Oracle user: oracle Spfile: +DATA/DB1/PARAMETERFILE/spfile.270.1145822903 Password file: Domain: demo.netapp.com Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Disk Groups: DATA Services: OSDBA group: OSOPER group: Database instance: db1 [oracle@ip-172-30-15-45 db1]$ srvctl modify database -d db1 -spfile +DATA/DB1/PARAMETERFILE/spfiledb1.ora [oracle@ip-172-30-15-45 db1]$ srvctl config database -d db1 Database unique name: db1 Database name: db1 Oracle home: /u01/app/oracle/product/19.0.0/db1 Oracle user: oracle Spfile: +DATA/DB1/PARAMETERFILE/spfiledb1.ora Password file: Domain: demo.netapp.com Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Disk Groups: DATA Services: OSDBA group: OSOPER group: Database instance: db1
-
Modifique tnsnames.ora para adicionar dB_unique_name para resolução de nome.
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/db1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. db1_NY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-45.ec2.internal)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = db1) ) ) db1_LA = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-67.ec2.internal)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = db1) ) ) LISTENER_DB1 = (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-45.ec2.internal)(PORT = 1521))
-
Adicione o nome do serviço de guarda de dados db1_NY_DGMGRL.demo.NetApp para o banco de dados primário ao arquivo listener.ora.
#Backup file is /u01/app/oracle/crsdata/ip-172-30-15-45/output/listener.ora.bak.ip-172-30-15-45.oracle line added by Agent # listener.ora Network Configuration File: /u01/app/oracle/product/19.0.0/grid/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-45.ec2.internal)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = db1_NY_DGMGRL.demo.netapp.com) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/db1) (SID_NAME = db1) ) ) ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON # line added by Agent
-
Encerre e reinicie o banco de dados com srvctl e valide que os parâmetros de proteção de dados estão agora ativos.
srvctl stop database -d db1
srvctl start database -d db1
Isso conclui a configuração principal do banco de dados para o Data Guard.
Prepare o banco de dados em espera e ative o Data Guard
Details
O Oracle Data Guard requer a configuração do kernel do sistema operacional e as pilhas de software Oracle, incluindo conjuntos de patches na instância de banco de dados EC2 em espera para corresponder à instância de banco de dados EC2 primário. Para facilitar o gerenciamento e a simplicidade, a configuração de armazenamento de banco de dados de instância de banco de dados EC2 de reserva também deve corresponder à instância de banco de dados EC2 principal, como nome, número e tamanho dos grupos de discos ASM. A seguir estão os procedimentos detalhados para configurar a instância de banco de dados EC2 em espera para o Data Guard. Todos os comandos devem ser executados como ID de usuário proprietário oracle.
-
Primeiro, revise a configuração do banco de dados primário na instância EC2 primária. Nesta demonstração, configuramos um banco de dados Oracle primário chamado db1 na instância de banco de dados EC2 principal com dois grupos de discos ASM: DADOS e LOGS em configuração de reinicialização autônoma. Os grupos de discos ASM primários podem estar em qualquer tipo de armazenamento dentro do ecossistema EC2.
-
Siga os procedimentos na documentação "TR-4965: Implantação e proteção de banco de dados Oracle no AWS FSX/EC2 com iSCSI/ASM" para instalar e configurar Grid e Oracle na instância de banco de dados EC2 standby para corresponder ao banco de dados primário. O armazenamento do banco de dados deve ser provisionado e alocado para instância de banco de dados EC2 em espera do FSX ONTAP com a mesma capacidade de armazenamento que a instância de banco de dados EC2 principal.
Pare no passo 10 da Oracle database installation
secção. O banco de dados em espera será instanciado a partir do banco de dados primário usando a função de duplicação de banco de dados dbca. -
Depois que o software Oracle estiver instalado e configurado, a partir do diretório Oracle_HOME dbs de reserva, copie a senha oracle do banco de dados principal.
scp oracle@172.30.15.45:/u01/app/oracle/product/19.0.0/db1/dbs/orapwdb1 .
-
Crie o arquivo tnsnames.ora com as seguintes entradas.
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/db1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. db1_NY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-45.ec2.internal)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = db1) ) ) db1_LA = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-67.ec2.internal)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = db1) ) )
-
Adicione o nome do serviço de guarda de dados DB ao arquivo listener.ora.
#Backup file is /u01/app/oracle/crsdata/ip-172-30-15-67/output/listener.ora.bak.ip-172-30-15-67.oracle line added by Agent # listener.ora Network Configuration File: /u01/app/oracle/product/19.0.0/grid/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ip-172-30-15-67.ec2.internal)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = db1_LA_DGMGRL.demo.netapp.com) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/db1) (SID_NAME = db1) ) ) ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON # line added by Agent
-
Defina oracle home e path.
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1
export PATH=$PATH:$ORACLE_HOME/bin
-
Use dbca para instanciar o banco de dados em espera do banco de dados primário db1.
[oracle@ip-172-30-15-67 bin]$ dbca -silent -createDuplicateDB -gdbName db1 -primaryDBConnectionString ip-172-30-15-45.ec2.internal:1521/db1_NY.demo.netapp.com -sid db1 -initParams fal_server=db1_NY -createAsStandby -dbUniqueName db1_LA Enter SYS user password: Prepare for db operation 22% complete Listener config step 44% complete Auxiliary instance creation 67% complete RMAN duplicate 89% complete Post duplicate database operations 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db1_LA/db1_LA.log" for further details.
-
Validar banco de dados em espera duplicado. Banco de dados em espera recém-duplicado aberto inicialmente no modo SOMENTE LEITURA.
[oracle@ip-172-30-15-67 bin]$ export ORACLE_SID=db1 [oracle@ip-172-30-15-67 bin]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Aug 30 18:25:46 2023 Version 19.18.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.18.0.0.0 SQL> select name, open_mode from v$database; NAME OPEN_MODE --------- -------------------- DB1 READ ONLY SQL> show parameter name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cdb_cluster_name string cell_offloadgroup_name string db_file_name_convert string db_name string db1 db_unique_name string db1_LA global_names boolean FALSE instance_name string db1 lock_name_space string log_file_name_convert string pdb_file_name_convert string processor_group_name string NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string db1_LA.demo.netapp.com SQL> SQL> show parameter log_archive_config NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_config string DG_CONFIG=(db1_NY,db1_LA) SQL> show parameter fal_server NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ fal_server string db1_NY SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATA/DB1_LA/DATAFILE/system.261.1146248215 +DATA/DB1_LA/DATAFILE/sysaux.262.1146248231 +DATA/DB1_LA/DATAFILE/undotbs1.263.1146248247 +DATA/DB1_LA/03C5C01A66EE9797E0632D0F1EAC5F59/DATAFILE/system.264.1146248253 +DATA/DB1_LA/03C5C01A66EE9797E0632D0F1EAC5F59/DATAFILE/sysaux.265.1146248261 +DATA/DB1_LA/DATAFILE/users.266.1146248267 +DATA/DB1_LA/03C5C01A66EE9797E0632D0F1EAC5F59/DATAFILE/undotbs1.267.1146248269 +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/DATAFILE/system.268.1146248271 +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/DATAFILE/sysaux.269.1146248279 +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/DATAFILE/undotbs1.270.1146248285 +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/DATAFILE/users.271.1146248293 NAME -------------------------------------------------------------------------------- +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/DATAFILE/system.272.1146248295 +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/DATAFILE/sysaux.273.1146248301 +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/DATAFILE/undotbs1.274.1146248309 +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/DATAFILE/users.275.1146248315 +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/DATAFILE/system.276.1146248317 +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/DATAFILE/sysaux.277.1146248323 +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/DATAFILE/undotbs1.278.1146248331 +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/DATAFILE/users.279.1146248337 19 rows selected. SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- +DATA/DB1_LA/CONTROLFILE/current.260.1146248209 +LOGS/DB1_LA/CONTROLFILE/current.257.1146248209 SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- +DATA/DB1_LA/TEMPFILE/temp.287.1146248371 +DATA/DB1_LA/03C5C01A66EE9797E0632D0F1EAC5F59/TEMPFILE/temp.288.1146248375 +DATA/DB1_LA/03C5EFD07C41A1FAE0632D0F1EAC9BD8/TEMPFILE/temp.290.1146248463 +DATA/DB1_LA/03C5F0DDF35CA2B6E0632D0F1EAC8B6B/TEMPFILE/temp.291.1146248463 +DATA/DB1_LA/03C5F1C9B142A2F1E0632D0F1EACF21A/TEMPFILE/temp.292.1146248463 SQL> select group#, type, member from v$logfile order by 2, 1; GROUP# TYPE MEMBER ---------- ------- ------------------------------------------------------------ 1 ONLINE +LOGS/DB1_LA/ONLINELOG/group_1.259.1146248349 1 ONLINE +DATA/DB1_LA/ONLINELOG/group_1.280.1146248347 2 ONLINE +DATA/DB1_LA/ONLINELOG/group_2.281.1146248351 2 ONLINE +LOGS/DB1_LA/ONLINELOG/group_2.258.1146248353 3 ONLINE +DATA/DB1_LA/ONLINELOG/group_3.282.1146248355 3 ONLINE +LOGS/DB1_LA/ONLINELOG/group_3.260.1146248355 4 STANDBY +DATA/DB1_LA/ONLINELOG/group_4.283.1146248357 4 STANDBY +LOGS/DB1_LA/ONLINELOG/group_4.261.1146248359 5 STANDBY +DATA/DB1_LA/ONLINELOG/group_5.284.1146248361 5 STANDBY +LOGS/DB1_LA/ONLINELOG/group_5.262.1146248363 6 STANDBY +LOGS/DB1_LA/ONLINELOG/group_6.263.1146248365 6 STANDBY +DATA/DB1_LA/ONLINELOG/group_6.285.1146248365 7 STANDBY +LOGS/DB1_LA/ONLINELOG/group_7.264.1146248369 7 STANDBY +DATA/DB1_LA/ONLINELOG/group_7.286.1146248367 14 rows selected. SQL> select name, open_mode from v$database; NAME OPEN_MODE --------- -------------------- DB1 READ ONLY
-
Reinicie o banco de dados em espera
mount
no palco e execute o seguinte comando para ativar a recuperação gerenciada do banco de dados em espera.alter database recover managed standby database disconnect from session;
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount; ORACLE instance started. Total System Global Area 8053062944 bytes Fixed Size 9182496 bytes Variable Size 1291845632 bytes Database Buffers 6744440832 bytes Redo Buffers 7593984 bytes Database mounted. SQL> alter database recover managed standby database disconnect from session; Database altered.
-
Valide o status de recuperação do banco de dados em espera. Observe o
recovery logmerger
emAPPLYING_LOG
ação.SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS; ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ recovery apply slave 0 0 IDLE recovery apply slave 0 0 IDLE recovery apply slave 0 0 IDLE recovery apply slave 0 0 IDLE recovery logmerger 1 30 APPLYING_LOG RFS ping 1 30 IDLE RFS async 1 30 IDLE archive redo 0 0 IDLE archive redo 0 0 IDLE archive redo 0 0 IDLE gap manager 0 0 IDLE ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ managed recovery 0 0 IDLE redo transport monitor 0 0 IDLE log writer 0 0 IDLE archive local 0 0 IDLE redo transport timer 0 0 IDLE 16 rows selected. SQL>
Isso conclui a configuração de proteção do Data Guard para db1 do primário ao modo de espera com a recuperação em espera gerenciada ativada.
Configurar Data Guard Broker
Details
O broker Oracle Data Guard é uma estrutura de gerenciamento distribuída que automatiza e centraliza a criação, manutenção e monitoramento das configurações do Oracle Data Guard. A seção a seguir demonstra como configurar o Data Guard Broker para gerenciar o ambiente do Data Guard.
-
Inicie o corretor de proteção de dados em bancos de dados primários e de espera com o seguinte comando via sqlplus.
alter system set dg_broker_start=true scope=both;
-
A partir do banco de dados principal, conete-se ao Data Guard Borker como SYSDBA.
[oracle@ip-172-30-15-45 db1]$ dgmgrl sys@db1_NY DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Aug 30 19:34:14 2023 Version 19.18.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Welcome to DGMGRL, type "help" for information. Password: Connected to "db1_NY" Connected as SYSDBA.
-
Crie e ative a configuração do Data Guard Broker.
DGMGRL> create configuration dg_config as primary database is db1_NY connect identifier is db1_NY; Configuration "dg_config" created with primary database "db1_ny" DGMGRL> add database db1_LA as connect identifier is db1_LA; Database "db1_la" added DGMGRL> enable configuration; Enabled. DGMGRL> show configuration; Configuration - dg_config Protection Mode: MaxPerformance Members: db1_ny - Primary database db1_la - Physical standby database Fast-Start Failover: Disabled Configuration Status: SUCCESS (status updated 28 seconds ago)
-
Valide o status do banco de dados dentro da estrutura de gerenciamento do Data Guard Broker.
DGMGRL> show database db1_ny; Database - db1_ny Role: PRIMARY Intended State: TRANSPORT-ON Instance(s): db1 Database Status: SUCCESS DGMGRL> show database db1_la; Database - db1_la Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds (computed 1 second ago) Apply Lag: 0 seconds (computed 1 second ago) Average Apply Rate: 2.00 KByte/s Real Time Query: OFF Instance(s): db1 Database Status: SUCCESS DGMGRL>
No caso de uma falha, o Data Guard Broker pode ser usado para fazer failover do banco de dados primário para o modo de espera instantaniousy.
Clone o banco de dados em espera para outros casos de uso
Details
O principal benefício da preparação de banco de dados em espera no AWS FSX ONTAP no Data Guard é que ele pode ser clonado para atender a muitos outros casos de uso com o mínimo de investimento adicional de armazenamento. Na seção a seguir, demonstramos como fazer snapshot e clonar os volumes de banco de dados de reserva montados e em recuperação no FSX ONTAP para outros fins, COMO DESENVOLVIMENTO, TESTE, RELATÓRIO, etc., usando a ferramenta NetApp SnapCenter.
A seguir estão procedimentos de alto nível para clonar um banco de dados de LEITURA/GRAVAÇÃO do banco de dados de espera físico gerenciado no Data Guard usando o SnapCenter. Para obter instruções detalhadas sobre como configurar e configurar o SnapCenter, consulte "Soluções de bancos de dados de nuvem híbrida com SnapCenter"as seções relavant Oracle.
-
Começamos com a criação de uma tabela de teste e a inserção de uma linha na tabela de teste no banco de dados primário. Em seguida, vamos validar se a transação passa para o modo de espera e, finalmente, o clone.
[oracle@ip-172-30-15-45 db1]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Thu Aug 31 16:35:53 2023 Version 19.18.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.18.0.0.0 SQL> alter session set container=db1_pdb1; Session altered. SQL> create table test( 2 id integer, 3 dt timestamp, 4 event varchar(100)); Table created. SQL> insert into test values(1, sysdate, 'a test transaction on primary database db1 and ec2 db host: ip-172-30-15-45.ec2.internal'); 1 row created. SQL> commit; Commit complete. SQL> select * from test; ID ---------- DT --------------------------------------------------------------------------- EVENT -------------------------------------------------------------------------------- 1 31-AUG-23 04.49.29.000000 PM a test transaction on primary database db1 and ec2 db host: ip-172-30-15-45.ec2. internal SQL> select instance_name, host_name from v$instance; INSTANCE_NAME ---------------- HOST_NAME ---------------------------------------------------------------- db1 ip-172-30-15-45.ec2.internal
-
Adicione o cluster de armazenamento FSX ao
Storage Systems
no SnapCenter com o IP de gerenciamento de cluster FSX e a credencial fsxadmin. -
Adicione o aws EC2-user ao
Credential
Settings
no . -
Adicione instância de banco de dados EC2 em espera e clone instância de banco de dados EC2 ao
Hosts
.A instância de banco de dados clone EC2 deve ter pilhas de software Oracle semelhantes instaladas e configuradas. Em nosso caso de teste, a infraestrutura de grade e o Oracle 19Ci instalados e configurados, mas nenhum banco de dados criado. -
Crie uma política de backup personalizada para backup de banco de dados completo offline/montado.
-
Aplique a política de backup para proteger o banco de dados em espera
Resources
no separador . -
Clique no nome do banco de dados para abrir a página backups do banco de dados. Selecione um backup a ser usado para o clone do banco de dados e clique
Clone
no botão para iniciar o fluxo de trabalho do clone. -
`Complete Database Clone`Selecione e nomeie o SID da instância do clone.
-
Selecione o host clone, que hospeda o banco de dados clonado do banco de dados standby. Aceite o padrão para arquivos de dados, arquivos de controle e refazer logs. Dois grupos de discos ASM serão criados no host clone que correspondem aos grupos de discos no banco de dados de espera.
-
Não são necessárias credenciais de banco de dados para autenticação baseada em SO. Combine a configuração inicial do Oracle com a configuração configurada na instância do banco de dados clone EC2.
-
Altere os parâmetros do banco de dados clone, se necessário, e especifique scripts para serem executados antes de cleen, se houver.
-
Insira SQL para executar após o clone. Na demonstração, executamos comandos para desativar o modo de arquivo de banco de dados para um banco de dados dev/test/report.
-
Configure a notificação por e-mail, se desejado.
-
Revise o resumo e clique
Finish
para iniciar o clone. -
Monitore o trabalho clone na
Monitor
guia. Observamos que levou cerca de 8 minutos para clonar um banco de dados de cerca de 300GBMB no tamanho do volume do banco de dados. -
Valide o banco de dados clone do SnapCenter, que é imediatamente registrado
Resources
na guia logo após a operação clone. -
Consulte o banco de dados clone da instância clone EC2. Nós validamos que a transação de teste que ocorreu no banco de dados primário tinha atravessado para clonar o banco de dados.
[oracle@ip-172-30-15-126 ~]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dev [oracle@ip-172-30-15-126 ~]$ export ORACLE_SID=db1dev [oracle@ip-172-30-15-126 ~]$ export PATH=$PATH:$ORACLE_HOME/bin [oracle@ip-172-30-15-126 ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Sep 6 16:41:41 2023 Version 19.18.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.18.0.0.0 SQL> select name, open_mode, log_mode from v$database; NAME OPEN_MODE LOG_MODE --------- -------------------- ------------ DB1DEV READ WRITE NOARCHIVELOG SQL> select instance_name, host_name from v$instance; INSTANCE_NAME ---------------- HOST_NAME ---------------------------------------------------------------- db1dev ip-172-30-15-126.ec2.internal SQL> alter session set container=db1_pdb1; Session altered. SQL> select * from test; ID ---------- DT --------------------------------------------------------------------------- EVENT -------------------------------------------------------------------------------- 1 31-AUG-23 04.49.29.000000 PM a test transaction on primary database db1 and ec2 db host: ip-172-30-15-45.ec2. internal SQL>
Isso conclui o clone e a validação de um novo banco de dados Oracle a partir de banco de dados de reserva no Data Guard no FSX storage para DESENVOLVIMENTO, TESTE, RELATÓRIO ou qualquer outro caso de uso. Vários bancos de dados Oracle podem ser clonados do mesmo banco de dados de reserva no Data Guard.
Onde encontrar informações adicionais
Para saber mais sobre as informações descritas neste documento, consulte os seguintes documentos e/ou sites:
-
Conceitos e Administração do Data Guard
-
WP-7357: Implantação de banco de dados Oracle no EC2 e nas melhores práticas do FSX
-
Amazon FSX ONTAP
-
Amazon EC2