TR-5002: Redução de custos do Oracle ative Data Guard com o Azure NetApp Files
NetApp
A solução fornece uma visão geral e detalhes para configurar o Oracle Data Guard usando o Microsoft Azure NetApp Files (ANF) como storage de banco de dados primário e de reserva para reduzir o custo operacional e de licenciamento da solução de HA/DR do Oracle Data Guard na nuvem do Azure.
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 de banco de dados Oracle e está planejando configurar um ative Data Guard na nuvem do Azure, 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 em espera no armazenamento Azure NetApp Files. 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. Nesta documentação, demonstramos como configurar um Oracle Data Guard com seu banco de dados primário e banco de dados de espera físico existente no storage do ANF. O banco de dados em espera é feito backup e clonado para acesso de leitura/gravação para casos de uso, conforme desejado, através da ferramenta de gerenciamento de banco de dados NetApp SnapCenter. A equipe de engenharia de soluções da NetApp também fornece um kit de ferramentas de automação para atualizar o clone no cronograma definido pelo usuário para um gerenciamento completo e automatizado do ciclo de vida do clone do banco de dados sem necessidade de intervenção do usuário.
Esta solução aborda os seguintes casos de uso:
-
Implementação do Oracle Data Guard entre um banco de dados primário e um banco de dados de espera físico no armazenamento do Microsoft Azure NetApp Files em todas as regiões do Azure.
-
Faça backup e clone o banco de dados de reserva físico para atender a casos de uso, como relatórios, desenvolvimento, teste, etc.
-
Gerenciamento do ciclo de vida de atualização do clone de banco de dados Oracle por meio da automação.
Público-alvo
Esta solução destina-se às seguintes pessoas:
-
Um DBA que configura o Oracle ative Data Guard na nuvem Azure 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 do Azure.
-
Um administrador de storage que gerencia o armazenamento Azure NetApp Files que suporta o Oracle Data Guard.
-
Proprietário de um aplicativo que gosta de levantar o Oracle Data Guard em um ambiente de nuvem do Azure.
Ambiente de teste e validação de soluções
O teste e a validação desta solução foram executados em uma configuração de laboratório em nuvem do Azure que pode não corresponder ao ambiente de implantação real do usuário. Para obter mais informações, consulte a Fatores-chave para consideração da implantaçãoseção .
Arquitetura
Componentes de hardware e software
Hardware |
||
Azure NetApp Files |
Versão atual oferecida pela Microsoft |
Dois pools de capacidade de 3 TIB, nível de serviço padrão, QoS automático |
VMs do Azure para servidores de banco de dados |
Padrão B4ms (4 vcpus, 16 GiB de memória) |
Três VMs de banco de dados, uma como o servidor de banco de dados principal, uma como o servidor de banco de dados de reserva e a terceira como um servidor de banco de dados clone |
Software |
||
RedHat Linux |
Red Hat Enterprise Linux 8,6 (LVM) - x64 Gen2 |
Implantou a assinatura RedHat para testes |
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 |
SnapCenter |
Versão 6.0.1 |
Construir 6.0.1.4487 |
NFS |
Versão 3,0 |
DNFS habilitado para Oracle |
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 |
NTAP_NY |
NTAP_NY.internal.cloudapp.net |
Em espera |
NTAP_LA |
NTAP_LA.internal.cloudapp.net |
Fatores-chave para consideração da implantação
-
* Standby Database Clone.* Ao receber e aplicar logs de transações do banco de dados primário, o banco de dados de espera físico pode ser clonado e montado em uma VM de banco de dados para oferecer suporte a outras cargas de trabalho, como DESENVOLVIMENTO, TESTE ou relatório. O clone pode ser um clone fino ou espesso. Neste momento, o ANF só é compatível com clone thick, que é uma cópia completa do banco de dados de reserva. A opção de thin clone do ANF será lançada em breve. Para cópias clonadas de volumes de banco de dados, ele compartilha os mesmos volumes de banco de dados de banco de dados em espera e utiliza tecnologia copy-on-write para atender a gravação do iOS. 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 alternar o banco de dados do storage primário para o storage ANF de reserva, a fim de manter a performance 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.
-
Dimensionamento de VM do Azure. Nesses testes e validações, usamos uma VM do Azure - Standard_B4ms com 4 vCPUs and16 GiB de memória. Você precisa dimensionar a VM de banco de dados do Azure adequadamente para o número de vCPUs e a quantidade de RAM com base nos requisitos reais de carga de trabalho.
-
Configuração do Azure NetApp Files. Os Azure NetApp Files são alocados na conta de storage do Azure NetApp como
Capacity Pools
. Nesses testes e validações, implantamos um pool de capacidade TIB de 3 TB para hospedar o Oracle Primary na região Leste e um banco de dados de espera na região Oeste 2. O pool de capacidade do ANF tem três níveis de serviço: Standard, Premium e Ultra. A capacidade de IO do pool de capacidade do ANF é baseada no tamanho do pool de capacidade e em seu nível de serviço. Para implantação de produção, a NetApp recomenda fazer uma avaliação completa do requisito de taxa de transferência do banco de dados Oracle e dimensionar o pool de capacidade do banco de dados de acordo com isso. Em uma criação de pool de capacidade, você pode definir QoS para Auto ou Manual e criptografia de dados em repouso Single ou Double. -
Configuração DNFS. Com o DNFS, um banco de dados Oracle executado em uma máquina virtual do Azure com storage do ANF pode gerar mais I/o do que o cliente NFS nativo. A implantação automatizada do Oracle usando o kit de ferramentas de automação do NetApp configura automaticamente o DNFS no NFSv3.
Implantação de solução
Supõe-se que você já tenha seu banco de dados Oracle primário implantado em um ambiente de nuvem do Azure dentro de um VNet como ponto de partida para a configuração do Oracle Data Guard. Idealmente, o banco de dados principal é implantado no storage ANF com montagem NFS. Três pontos de montagem NFS são criados para o armazenamento de banco de dados Oracle: Montar /u01 para os arquivos binários Oracle, montar /u02 para os arquivos de dados Oracle e um arquivo de controle, montar /u03 para os arquivos de log atuais e arquivados Oracle e um arquivo de controle redundante.
Seu banco de dados principal da Oracle também pode ser executado em um storage NetApp ONTAP ou em qualquer outra opção de storage no ecossistema do Azure ou em um data center privado. A seção a seguir fornece procedimentos passo a passo de implantação para configurar um Oracle Data Guard entre um Oracle DB primário no Azure com storage ANF para um Oracle DB de reserva física no Azure com storage ANF.
Pré-requisitos para implantação
Details
A implantação requer os seguintes pré-requisitos.
-
Uma conta na nuvem do Azure foi configurada e as sub-redes VNet e rede necessárias foram criadas na sua conta Azure.
-
No console do portal da nuvem do Azure, você precisa implantar no mínimo três VMs do Azure Linux, uma como o servidor Oracle DB primário, uma como o servidor Oracle DB de reserva e um servidor DB de destino clone para geração de 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 Microsoft "Máquinas virtuais do Azure" para obter mais informações.
-
O banco de dados Oracle primário deve ter sido instalado e configurado no servidor Oracle DB primário. Por outro lado, no servidor Oracle DB de reserva ou no servidor Oracle DB clone, apenas o software Oracle é instalado e nenhum banco de dados Oracle é criado. Idealmente, o layout dos diretórios do Oracle Files deve corresponder exatamente em todos os servidores Oracle DB. Para obter detalhes sobre a recomendação do NetApp para implantação automatizada da Oracle na nuvem do Azure e no ANF, consulte os relatórios técnicos a seguir para obter ajuda.
-
"TR-4987: Implantação Oracle simplificada e automatizada no Azure NetApp Files com NFS"
Certifique-se de ter alocado pelo menos 128G no volume raiz das VMs do Azure para ter espaço suficiente para preparar os arquivos de instalação do Oracle.
-
-
No console do portal de nuvem do Azure, implante dois pools de capacidade de storage do ANF para hospedar volumes de banco de dados Oracle. Os pools de capacidade de storage do ANF devem estar em diferentes regiões para imitar uma configuração verdadeira do DataGuard. Se você não estiver familiarizado com a implantação de storage do ANF, consulte a documentação "Início rápido: Configurar o Azure NetApp Files e criar um volume NFS" para obter instruções passo a passo.
-
Quando o banco de dados Oracle primário e o banco de dados Oracle de reserva estão situados em duas regiões diferentes, um gateway VPN deve ser configurado para permitir o fluxo de tráfego de dados entre dois VNets separados. A configuração de rede detalhada no Azure está além do escopo deste documento. As capturas de tela a seguir fornecem alguma referência sobre como os gateways VPN são configurados, conetados e o fluxo de tráfego de dados é confirmado no laboratório.
Gateways Lab VPN:
O gateway vnet primário:
Estado da ligação do gateway Vnet:
Valide que os fluxos de tráfego estão estabelecidos (clique em três pontos para abrir a página):
Prepare o banco de dados principal para o Data Guard
Details
Nesta demonstração, configuramos um banco de dados Oracle primário chamado NTAP no servidor de banco de dados Azure primário com três pontos de montagem NFS: /u01 para o binário Oracle, /u02 para os arquivos de dados Oracle e um arquivo de controle Oracle, /u03 para os logs ativos Oracle, arquivos de log arquivados e um arquivo de controle Oracle redundante. A seguir ilustra os procedimentos detalhados para configurar o banco de dados primário para a proteção do Oracle Data Guard. Todas as etapas devem ser executadas como o proprietário do banco de dados Oracle ou o usuário padrão oracle
.
-
O NTAP do banco de dados primário no servidor de banco de dados primário Azure orap.internal.cloudapp.net é implantado inicialmente como banco de dados autônomo com o ANF como storage de banco de dados.
orap.internal.cloudapp.net: resource group: ANFAVSRG Location: East US size: Standard B4ms (4 vcpus, 16 GiB memory) OS: Linux (redhat 8.6) pub_ip: 172.190.207.231 pri_ip: 10.0.0.4 [oracle@orap ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.7G 4.0K 7.7G 1% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 209M 7.5G 3% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/mapper/rootvg-rootlv 22G 413M 22G 2% / /dev/mapper/rootvg-usrlv 10G 2.1G 8.0G 21% /usr /dev/sda1 496M 181M 315M 37% /boot /dev/mapper/rootvg-homelv 2.0G 47M 2.0G 3% /home /dev/sda15 495M 5.8M 489M 2% /boot/efi /dev/mapper/rootvg-varlv 8.0G 1.1G 7.0G 13% /var /dev/mapper/rootvg-tmplv 12G 120M 12G 1% /tmp /dev/sdb1 32G 49M 30G 1% /mnt 10.0.2.36:/orap-u02 500G 7.7G 493G 2% /u02 10.0.2.36:/orap-u03 450G 6.1G 444G 2% /u03 10.0.2.36:/orap-u01 100G 9.9G 91G 10% /u01 [oracle@orap ~]$ 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. # # NTAP:/u01/app/oracle/product/19.0.0/NTAP:N
-
Faça login no servidor de banco de dados principal como usuário oracle. Faça login no banco de dados via sqlplus, ative o Registro forçado no primário.
alter database force logging;
[oracle@orap admin]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Tue Nov 26 20:12:02 2024 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 database force logging; Database altered.
-
A partir do sqlplus, ative flashback no banco de dados principal. Flashback permite restabelecer facilmente o banco de dados principal como um standby após um failover.
alter database flashback on;
SQL> alter database flashback on; Database altered.
-
Configurar a autenticação de transporte de refazer usando o arquivo de senha Oracle - crie um arquivo pwd no primário usando o utilitário orapwd se ele não estiver definido e copie-o para o diretório ORACLE_Home/dbs.
-
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, então, pode fazer a transição rápida para a função de espera quando um failover acontece e começa a receber dados de refazer. Repita o seguinte comando quatro vezes para criar quatro ficheiros de registo em espera.
alter database add standby logfile thread 1 size 200M;
SQL> alter database add standby logfile thread 1 size 200M; Database altered. SQL> / Database altered. SQL> / Database altered. SQL> / Database altered. SQL> set lin 200 SQL> col member for a80 SQL> select group#, type, member from v$logfile; GROUP# TYPE MEMBER ---------- ------- -------------------------------------------------------------------------------- 3 ONLINE /u03/orareco/NTAP/onlinelog/redo03.log 2 ONLINE /u03/orareco/NTAP/onlinelog/redo02.log 1 ONLINE /u03/orareco/NTAP/onlinelog/redo01.log 4 STANDBY /u03/orareco/NTAP/onlinelog/o1_mf_4__2m115vkv_.log 5 STANDBY /u03/orareco/NTAP/onlinelog/o1_mf_5__2m3c5cyd_.log 6 STANDBY /u03/orareco/NTAP/onlinelog/o1_mf_6__2m4d7dhh_.log 7 STANDBY /u03/orareco/NTAP/onlinelog/o1_mf_7__2m5ct7g1_.log
-
A partir do sqlplus, crie um pfile a partir do spfile para edição.
create pfile='/home/oracle/initNTAP.ora' from spfile;
-
Revise o arquivo pfile e adicione os seguintes parâmetros.
vi /home/oracle/initNTAP.ora
Update the following parameters if not set: DB_NAME=NTAP DB_UNIQUE_NAME=NTAP_NY LOG_ARCHIVE_CONFIG='DG_CONFIG=(NTAP_NY,NTAP_LA)' LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=NTAP_NY' LOG_ARCHIVE_DEST_2='SERVICE=NTAP_LA ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=NTAP_LA' REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE FAL_SERVER=NTAP_LA STANDBY_FILE_MANAGEMENT=AUTO
-
A partir do sqlplus, recrie spfile do pfile revisado para sobrescrever o spfile existente no diretório ORACLE_Home/dbs.
create spfile='$ORACLE_HOME/dbs/spfileNTAP.ora' from pfile='/home/oracle/initNTAP.ora';
-
Para adicionar dB_unique_name para resolução de nome, é necessário adicionar dB_unique_name para a resolução de nome.
vi $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/NTAP/network/admin/tnsnames.ora # Generated by Oracle configuration tools. NTAP_NY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orap.internal.cloudapp.net)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = NTAP) ) ) NTAP_LA = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oras.internal.cloudapp.net)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = NTAP) ) ) LISTENER_NTAP = (ADDRESS = (PROTOCOL = TCP)(HOST = orap.internal.cloudapp.net)(PORT = 1521))
Se você optar por nomear seu servidor de banco de dados do Azure de forma diferente do padrão, adicione os nomes ao arquivo de host local para resolução do nome do host. -
Adicione o nome do serviço de guarda de dados NTAP_NY_DGMGRL.internal.cloudapp.net para o banco de dados primário ao arquivo listener.ora.
vi $ORACLE_HOME/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19.0.0/NTAP/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER.NTAP = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orap.internal.cloudapp.net)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER.NTAP = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = NTAP_NY_DGMGRL.internal.cloudapp.net) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/NTAP) (SID_NAME = NTAP) ) )
-
Encerre e reinicie o banco de dados via sqlplus e valide que os parâmetros de proteção de dados estão agora ativos.
shutdown immediate;
startup;
SQL> show parameter name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cdb_cluster_name string cell_offloadgroup_name string db_file_name_convert string db_name string NTAP db_unique_name string NTAP_NY global_names boolean FALSE instance_name string NTAP lock_name_space string log_file_name_convert string pdb_file_name_convert string processor_group_name string NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string NTAP_NY.internal.cloudapp.net SQL> sho parameter log_archive_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest string log_archive_dest_1 string LOCATION=USE_DB_RECOVERY_FILE_ DEST VALID_FOR=(ALL_LOGFILES,A LL_ROLES) DB_UNIQUE_NAME=NTAP_ NY log_archive_dest_10 string log_archive_dest_11 string log_archive_dest_12 string log_archive_dest_13 string log_archive_dest_14 string log_archive_dest_15 string NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_16 string log_archive_dest_17 string log_archive_dest_18 string log_archive_dest_19 string log_archive_dest_2 string SERVICE=NTAP_LA ASYNC VALID_FO R=(ONLINE_LOGFILES,PRIMARY_ROL E) DB_UNIQUE_NAME=NTAP_LA log_archive_dest_20 string log_archive_dest_21 string . .
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 no servidor de banco de dados de reserva para corresponder ao servidor de banco de dados primário. Para facilitar o gerenciamento e a simplicidade, a configuração de armazenamento de banco de dados do servidor de banco de dados de reserva também deve corresponder ao servidor de banco de dados primário, como o layout do diretório de banco de dados e os tamanhos dos pontos de montagem NFS. A seguir estão procedimentos detalhados para configurar o servidor Oracle DB de reserva e ativar o Oracle DataGuard para proteção HA/DR. Todos os comandos devem ser executados como o ID de usuário padrão do proprietário do Oracle oracle
.
-
Primeiro, revise a configuração do banco de dados primário no servidor Oracle DB primário. Nesta demonstração, configuramos um banco de dados Oracle primário chamado NTAP no servidor de banco de dados primário com três montagens NFS no storage ANF.
-
Se você seguir o documento NetApp TR-4987 para configurar o servidor de banco de dados em espera do Oracle "TR-4987: Implantação Oracle simplificada e automatizada no Azure NetApp Files com NFS", use uma tag
-t software_only_install
na etapa 2 doPlaybook execution
para executar a instalação automatizada do Oracle. A sintaxe de comando revisada está listada abaixo. A tag permitirá que a pilha de software Oracle seja instalada e configurada, mas pare de criar um banco de dados.ansible-playbook -i hosts 4-oracle_config.yml -u azureuser -e @vars/vars.yml -t software_only_install
-
A configuração de espera do servidor Oracle DB no local de espera no laboratório de demonstração.
oras.internal.cloudapp.net: resource group: ANFAVSRG Location: West US 2 size: Standard B4ms (4 vcpus, 16 GiB memory) OS: Linux (redhat 8.6) pub_ip: 172.179.119.75 pri_ip: 10.0.1.4 [oracle@oras ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.7G 0 7.7G 0% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 265M 7.5G 4% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/mapper/rootvg-rootlv 22G 413M 22G 2% / /dev/mapper/rootvg-usrlv 10G 2.1G 8.0G 21% /usr /dev/sda1 496M 181M 315M 37% /boot /dev/mapper/rootvg-varlv 8.0G 985M 7.1G 13% /var /dev/mapper/rootvg-homelv 2.0G 52M 2.0G 3% /home /dev/mapper/rootvg-tmplv 12G 120M 12G 1% /tmp /dev/sda15 495M 5.8M 489M 2% /boot/efi /dev/sdb1 32G 49M 30G 1% /mnt 10.0.3.36:/oras-u01 100G 9.5G 91G 10% /u01 10.0.3.36:/oras-u02 500G 8.1G 492G 2% /u02 10.0.3.36:/oras-u03 450G 4.8G 446G 2% /u03
-
Depois que o software Oracle estiver instalado e configurado, defina o oracle Home e PATH. Além disso, a partir do diretório Oracle_HOME dbs de reserva, copie a senha oracle do banco de dados principal se você não tiver feito isso.
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/NTAP
export PATH=$PATH:$ORACLE_HOME/bin
scp oracle@10.0.0.4:$ORACLE_HOME/dbs/orapwNTAP .
-
Atualize o arquivo tnsnames.ora com as seguintes entradas.
vi $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/NTAP/network/admin/tnsnames.ora # Generated by Oracle configuration tools. NTAP_NY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orap.internal.cloudapp.net)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = NTAP) ) ) NTAP_LA = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oras.internal.cloudapp.net)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = NTAP) ) )
-
Adicione o nome do serviço de guarda de dados DB ao arquivo listener.ora.
vi $ORACLE_HOME/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19.0.0/NTAP/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER.NTAP = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oras.internal.cloudapp.net)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = NTAP) ) ) SID_LIST_LISTENER.NTAP = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = NTAP_LA_DGMGRL.internal.cloudapp.net) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/NTAP) (SID_NAME = NTAP) ) ) LISTENER = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oras.internal.cloudapp.net)(PORT = 1521)) )
-
Inicie o dbca para instanciar o banco de dados em espera a partir do banco de dados primário NTAP.
dbca -silent -createDuplicateDB -gdbName NTAP -primaryDBConnectionString orap.internal.cloudapp.net:1521/NTAP_NY.internal.cloudapp.net -sid NTAP -initParams fal_server=NTAP_NY -createAsStandby -dbUniqueName NTAP_LA
[oracle@oras admin]$ dbca -silent -createDuplicateDB -gdbName NTAP -primaryDBConnectionString orap.internal.cloudapp.net:1521/NTAP_NY.internal.cloudapp.net -sid NTAP -initParams fal_server=NTAP_NY -createAsStandby -dbUniqueName NTAP_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/NTAP_LA/NTAP_LA.log" for further details.
-
Valide a base de dados de espera duplicada. Banco de dados em espera recém-duplicado aberto inicialmente no modo SOMENTE LEITURA.
[oracle@oras admin]$ 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. # # NTAP:/u01/app/oracle/product/19.0.0/NTAP:N [oracle@oras admin]$ export ORACLE_SID=NTAP [oracle@oras admin]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Tue Nov 26 23:04:07 2024 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 --------- -------------------- NTAP 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 NTAP db_unique_name string NTAP_LA global_names boolean FALSE instance_name string NTAP lock_name_space string log_file_name_convert string pdb_file_name_convert string processor_group_name string NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string NTAP_LA.internal.cloudapp.net SQL> show parameter log_archive_config NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_config string DG_CONFIG=(NTAP_NY,NTAP_LA) SQL> show parameter fal_server NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ fal_server string NTAP_NY SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /u02/oradata/NTAP/system01.dbf /u02/oradata/NTAP/sysaux01.dbf /u02/oradata/NTAP/undotbs01.dbf /u02/oradata/NTAP/pdbseed/system01.dbf /u02/oradata/NTAP/pdbseed/sysaux01.dbf /u02/oradata/NTAP/users01.dbf /u02/oradata/NTAP/pdbseed/undotbs01.dbf /u02/oradata/NTAP/NTAP_pdb1/system01.dbf /u02/oradata/NTAP/NTAP_pdb1/sysaux01.dbf /u02/oradata/NTAP/NTAP_pdb1/undotbs01.dbf /u02/oradata/NTAP/NTAP_pdb1/users01.dbf NAME -------------------------------------------------------------------------------- /u02/oradata/NTAP/NTAP_pdb2/system01.dbf /u02/oradata/NTAP/NTAP_pdb2/sysaux01.dbf /u02/oradata/NTAP/NTAP_pdb2/undotbs01.dbf /u02/oradata/NTAP/NTAP_pdb2/users01.dbf /u02/oradata/NTAP/NTAP_pdb3/system01.dbf /u02/oradata/NTAP/NTAP_pdb3/sysaux01.dbf /u02/oradata/NTAP/NTAP_pdb3/undotbs01.dbf /u02/oradata/NTAP/NTAP_pdb3/users01.dbf 19 rows selected. SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- /u02/oradata/NTAP/control01.ctl /u03/orareco/NTAP_LA/control02.ctl SQL> col member form a80 SQL> select group#, type, member from v$logfile order by 2, 1; GROUP# TYPE MEMBER ---------- ------- -------------------------------------------------------------------------------- 1 ONLINE /u03/orareco/NTAP_LA/onlinelog/o1_mf_1_mndl6mxh_.log 2 ONLINE /u03/orareco/NTAP_LA/onlinelog/o1_mf_2_mndl7jdb_.log 3 ONLINE /u03/orareco/NTAP_LA/onlinelog/o1_mf_3_mndl8f03_.log 4 STANDBY /u03/orareco/NTAP_LA/onlinelog/o1_mf_4_mndl99m7_.log 5 STANDBY /u03/orareco/NTAP_LA/onlinelog/o1_mf_5_mndlb67d_.log 6 STANDBY /u03/orareco/NTAP_LA/onlinelog/o1_mf_6_mndlc2tw_.log 7 STANDBY /u03/orareco/NTAP_LA/onlinelog/o1_mf_7_mndlczhb_.log 7 rows selected.
-
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 6442449688 bytes Fixed Size 9177880 bytes Variable Size 1090519040 bytes Database Buffers 5335154688 bytes Redo Buffers 7598080 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.SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS; ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ post role transition 0 0 IDLE 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 18 APPLYING_LOG managed recovery 0 0 IDLE RFS async 1 18 IDLE RFS ping 1 18 IDLE archive redo 0 0 IDLE redo transport timer 0 0 IDLE ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ gap manager 0 0 IDLE archive redo 0 0 IDLE archive redo 0 0 IDLE redo transport monitor 0 0 IDLE log writer 0 0 IDLE archive local 0 0 IDLE 17 rows selected. SQL>
Isso conclui a configuração de proteção do Data Guard para NTAP do primário para o 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 tanto no banco de dados primário quanto no 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@orap ~]$ dgmgrl sys@NTAP_NY DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Dec 11 20:53:20 2024 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 "NTAP_NY" Connected as SYSDBA. DGMGRL>
-
Crie e ative a configuração do Data Guard Broker.
DGMGRL> create configuration dg_config as primary database is NTAP_NY connect identifier is NTAP_NY; Configuration "dg_config" created with primary database "ntap_ny" DGMGRL> add database NTAP_LA as connect identifier is NTAP_LA; Database "ntap_la" added DGMGRL> enable configuration; Enabled. DGMGRL> show configuration; Configuration - dg_config Protection Mode: MaxPerformance Members: ntap_ny - Primary database ntap_la - Physical standby database Fast-Start Failover: Disabled Configuration Status: SUCCESS (status updated 3 seconds ago)
-
Valide o status do banco de dados na 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 instantaniouly de reserva. Se Fast-Start Failover
estiver ativado, o Data Guard Broker pode fazer failover do banco de dados primário para o modo de espera quando uma falha é detetada sem uma intervenção do usuário.
Clone o banco de dados em espera para outros casos de uso
Details
O principal benefício da hospedagem do banco de dados de reserva Oracle no ANF na configuração do Oracle Data Guard é que ele pode ser clonado rapidamente para atender a muitos outros casos de uso, com o mínimo de investimento adicional de storage se um thin clone estiver ativado. A NetApp recomenda usar a ferramenta de IU do SnapCenter para gerenciar seu banco de dados Oracle DataGuard. Na seção a seguir, demonstramos como snapshot e clonar os volumes de banco de dados montados e em standby de recuperação no ANF para outros fins, COMO DESENVOLVIMENTO, TESTE, RELATÓRIO etc., usando a ferramenta NetApp SnapCenter.
Abaixo 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 Oracle Data Guard usando o SnapCenter. Para obter instruções detalhadas sobre como configurar e configurar o SnapCenter para Oracle no ANF, consulte TR-4988 "Backup, recuperação e clone de banco de dados Oracle no ANF com o SnapCenter" para obter detalhes.
-
Começamos a validação da usecase criando uma tabela de teste e inserindo uma linha na tabela de teste no banco de dados primário. Em seguida, vamos validar que a transação passa para o modo de espera e, finalmente, o clone.
[oracle@orap ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 11 16:33:17 2024 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=ntap_pdb1; Session altered. SQL> create table test(id integer, dt timestamp, event varchar(100)); Table created. SQL> insert into test values(1, sysdate, 'a test transaction at primary database NTAP on DB server orap.internal.cloudapp.net'); 1 row created. SQL> commit; Commit complete. SQL> select * from test; ID ---------- DT --------------------------------------------------------------------------- EVENT -------------------------------------------------------------------------------- 1 11-DEC-24 04.38.44.000000 PM a test transaction at primary database NTAP on DB server orap.internal.cloudapp. net SQL> select instance_name, host_name from v$instance; INSTANCE_NAME ---------------- HOST_NAME ---------------------------------------------------------------- NTAP orap SQL>
-
Na configuração do SnapCenter, um usuário unix (azureuser para demonstração) e uma credencial do Azure (azure_anf para demonstração) foram adicionados ao
Credential
noSettings
. -
Use a credencial azure_anf para adicionar o storage do ANF ao
Storage Systems
. Se você tiver várias contas de storage do ANF na sua subciência do Azure, clique na lista suspensa para escolher a conta de storage certa. Criamos duas contas de armazenamento Oracle dedicadas para esta demonstração. -
Todos os servidores Oracle DB foram adicionados ao SnapCenter
Hosts
.O servidor de banco de dados clone deve ter pilhas de software Oracle identtical instaladas e configuradas. Em nosso caso de teste, o software Oracle 19Ci é instalado e configurado, mas nenhum banco de dados foi 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 . Quando inicialmente descoberto, o status do banco de dados é exibidoNot protected
como . -
Você tem a opção de acionar um backup manualmente ou colocá-lo em um horário definido após uma política de backup aplicada.
-
Após um backup, 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. -
Selecione
Complete Database Clone
e nomeie o SID da instância do clone. -
Selecione o servidor de banco de dados clone, que hospeda o banco de dados clonado do banco de dados em espera. Aceite o padrão para arquivos de dados, refazer logs. Coloque um controlfile no ponto de montagem /u03.
-
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 o que está configurado no servidor clone DB.
-
Altere os parâmetros do banco de dados clone, se necessário, como diminuir o tamanho PGA ou SGA para um banco de dados clone. Especifique scripts para serem executados antes do clone, 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. -
Monitorize o trabalho clone
Monitor
no separador. Observamos que levou cerca de 14 minutos para clonar um banco de dados de cerca de 950GBMB 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 do servidor de banco de dados clone. Validamos que a transação de teste que ocorreu no banco de dados primário tinha passado para o banco de dados clone.
[oracle@orac ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 11 20:16:09 2024 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 --------- -------------------- ------------ NTAPDEV READ WRITE NOARCHIVELOG SQL> select instance_name, host_name from v$instance; INSTANCE_NAME ---------------- HOST_NAME ---------------------------------------------------------------- NTAPDEV orac SQL> alter pluggable database all open; Pluggable database altered. SQL> alter pluggable database all save state; Pluggable database altered. SQL> alter session set container=ntap_pdb1; Session altered. SQL> select * from test; ID ---------- DT --------------------------------------------------------------------------- EVENT -------------------------------------------------------------------------------- 1 11-DEC-24 04.38.44.000000 PM a test transaction at primary database NTAP on DB server orap.internal.cloudapp. net
Isso conclui a demonstração do clone do banco de dados de reserva do Oracle no Oracle Data Guard no storage do Azure ANF 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 Oracle Data Guard no ANF.
Onde encontrar informações adicionais
Para saber mais sobre as informações descritas neste documento, consulte os seguintes documentos e/ou sites:
-
Azure NetApp Files
-
TR-4988: Backup, recuperação e clonagem de bancos de dados Oracle no ANF com SnapCenter
-
TR-4987: Implantação Oracle simplificada e automatizada no Azure NetApp Files com NFS
-
Conceitos e Administração do Oracle Data Guard