TR-5002: Reducción de costos de Oracle Active Data Guard con Azure NetApp Files
La solución proporciona una descripción general y detalles para configurar Oracle Data Guard utilizando Microsoft Azure NetApp Files (ANF) como almacenamiento de base de datos principal y en espera para reducir los costos operativos y de licencia de la solución Oracle Data Guard HA/DR en la nube de Azure.
Objetivo
Oracle Data Guard garantiza alta disponibilidad, protección de datos y recuperación ante desastres para datos empresariales en una configuración de replicación de base de datos principal y de base de datos en espera. Oracle Active Data Guard permite a los usuarios acceder a bases de datos en espera mientras la replicación de datos está activa desde la base de datos principal a las bases de datos en espera. Data Guard es una característica de Oracle Database Enterprise Edition. No requiere licencia separada. Por otro lado, Active Data Guard es una opción de Oracle Database Enterprise Edition y, por lo tanto, requiere una licencia independiente. Varias bases de datos en espera pueden recibir replicación de datos desde una base de datos principal en la configuración de Active Data Guard. Sin embargo, cada base de datos de reserva adicional requiere una licencia de Active Data Guard y almacenamiento adicional al tamaño de la base de datos principal. Los costos operativos se acumulan rápidamente.
Si desea reducir el costo de su operación de base de datos Oracle y planea configurar un Active Data Guard en la nube de Azure, debería considerar una alternativa. En lugar de Active Data Guard, use Data Guard para replicar desde la base de datos principal a una única base de datos física en espera en el almacenamiento de Azure NetApp Files . Posteriormente, se pueden clonar múltiples copias de esta base de datos en espera y abrirlas para acceso de lectura y escritura para atender muchos otros casos de uso, como informes, desarrollo, pruebas, etc. Los resultados netos ofrecen de manera efectiva las funcionalidades de Active Data Guard y al mismo tiempo eliminan la licencia de Active Data Guard. En esta documentación, demostramos cómo configurar Oracle Data Guard con su base de datos principal existente y su base de datos física en espera en el almacenamiento ANF. Se realiza una copia de seguridad de la base de datos en espera y se clona para acceso de lectura y escritura para casos de uso según lo deseado a través de la herramienta de administración de base de datos NetApp SnapCenter . El equipo de ingeniería de soluciones de NetApp también proporciona un kit de herramientas de automatización para actualizar el clon según un cronograma definido por el usuario para una gestión completa y automatizada del ciclo de vida de la clonación de base de datos sin necesidad de intervención del usuario.
Esta solución aborda los siguientes casos de uso:
-
Implementación de Oracle Data Guard entre una base de datos principal y una base de datos física en espera en el almacenamiento de Microsoft Azure NetApp Files en todas las regiones de Azure.
-
Realice una copia de seguridad y clone la base de datos física en espera para atender casos de uso como informes, desarrollo, pruebas, etc.
-
Gestión del ciclo de vida de actualización de clones de bases de datos de Oracle a través de la automatización.
Audiencia
Esta solución está destinada a las siguientes personas:
-
Un administrador de bases de datos que configura Oracle Active Data Guard en la nube de Azure para alta disponibilidad, protección de datos y recuperación ante desastres.
-
Un arquitecto de soluciones de base de datos interesado en la configuración de Oracle Active Data Guard en la nube de Azure.
-
Un administrador de almacenamiento que administra el almacenamiento de Azure NetApp Files compatible con Oracle Data Guard.
-
Un propietario de una aplicación a quien le gusta implementar Oracle Data Guard en un entorno de nube de Azure.
Entorno de prueba y validación de soluciones
La prueba y validación de esta solución se realizó en una configuración de laboratorio en la nube de Azure que podría no coincidir con el entorno de implementación del usuario real. Para más información, consulte la sección Factores clave a considerar en la implementación .
Arquitectura
Componentes de hardware y software
Hardware |
||
Azure NetApp Files |
Versión actual ofrecida por Microsoft |
Dos grupos de capacidad de 3 TiB, nivel de servicio estándar, QoS automático |
Máquinas virtuales de Azure para servidores de bases de datos |
B4ms estándar (4 vcpu, 16 GiB de memoria) |
Tres máquinas virtuales de base de datos, una como servidor de base de datos principal, una como servidor de base de datos en espera y la tercera como servidor de base de datos clonado |
Software |
||
Red Hat Linux |
Red Hat Enterprise Linux 8.6 (LVM) - x64 Gen2 |
Se implementó una suscripción a RedHat para realizar pruebas |
Base de datos Oracle |
Versión 19.18 |
Parche RU aplicado p34765931_190000_Linux-x86-64.zip |
Oracle OPatch |
Versión 12.2.0.1.36 |
Último parche p6880880_190000_Linux-x86-64.zip |
SnapCenter |
Versión 6.0.1 |
Versión 6.0.1.4487 |
Sistema Nacional de Archivos |
Versión 3.0 |
dNFS habilitado para Oracle |
Configuración de Oracle Data Guard con configuración hipotética de DR de NY a LA
Base de datos |
NOMBRE ÚNICO DE LA BASE DE DATOS |
Nombre del servicio Oracle Net |
Primario |
NTAP_NY |
NTAP_NY.internal.cloudapp.net |
Apoyar |
NTAP_LA |
NTAP_LA.internal.cloudapp.net |
Factores clave a considerar en la implementación
-
Clonación de base de datos en espera. Al recibir y aplicar registros de transacciones de la base de datos principal, la base de datos física en espera se puede clonar y montar en una máquina virtual de base de datos para soportar otras cargas de trabajo como DEV, TEST o Report. El clon puede ser un clon delgado o grueso. En este momento, ANF solo admite clones gruesos, que son una copia completa de la base de datos en espera. La opción de clon delgado de ANF se lanzará en breve. Para copias clonadas finamente de volúmenes de bases de datos, comparte los mismos volúmenes de base de datos de la base de datos en espera y utiliza tecnología de copia en escritura para dar servicio a las E/S de escritura. Por lo tanto, los clones son muy eficientes en términos de almacenamiento y pueden usarse para muchos otros casos de uso con una asignación de almacenamiento nuevo mínima e incremental para nuevas E/S de escritura. Esto proporciona un enorme ahorro en costos de almacenamiento al reducir sustancialmente el espacio de almacenamiento de Active Data Guard. NetApp recomienda minimizar las actividades de FlexClone en caso de que la base de datos cambie del almacenamiento principal al almacenamiento ANF en espera para mantener el rendimiento de Oracle en un alto nivel.
-
Requisitos del software de Oracle. En general, una base de datos física en espera debe tener la misma versión de Database Home que la base de datos principal, incluidas las excepciones de conjunto de parches (PSE), las actualizaciones de parches críticos (CPU) y las actualizaciones de conjunto de parches (PSU), a menos que esté en curso un proceso de aplicación de parches de Oracle Data Guard Standby-First (como se describe en la nota 1265700.1 de My Oracle Support en"soporte.oracle.com" .
-
Consideraciones sobre la estructura del directorio de la base de datos en espera Si es posible, los archivos de datos, archivos de registro y archivos de control en los sistemas principal y en espera deben tener los mismos nombres y nombres de ruta y utilizar las convenciones de nombres de Arquitectura Flexible Óptima (OFA). Los directorios de archivo de la base de datos de reserva también deben ser idénticos entre los sitios, incluido el tamaño y la estructura. Esta estrategia permite que otras operaciones, como copias de seguridad, conmutaciones y conmutaciones por error, ejecuten el mismo conjunto de pasos, lo que reduce la complejidad del mantenimiento.
-
Modo de registro forzado. Para protegerse contra escrituras directas no registradas en la base de datos principal que no se pueden propagar a la base de datos en espera, active FORZAR REGISTRO en la base de datos principal antes de realizar copias de seguridad de archivos de datos para la creación de la base de datos en espera.
-
Dimensionamiento de máquinas virtuales de Azure. En estas pruebas y validaciones, utilizamos una VM de Azure: Standard_B4ms con 4 vCPU y 16 GiB de memoria. Debe dimensionar la máquina virtual de Azure DB adecuadamente para la cantidad de vCPU y la cantidad de RAM en función de los requisitos de carga de trabajo reales.
-
* Configuración de Azure NetApp Files .* Los Azure NetApp Files se asignan en la cuenta de almacenamiento de Azure NetApp como
Capacity Pools
. En estas pruebas y validaciones, implementamos un grupo de capacidad de 3 TiB para alojar la base de datos principal de Oracle en la región Este y una base de datos de reserva en la región Oeste 2. El fondo de capacidad de ANF tiene tres niveles de servicio: Estándar, Premium y Ultra. La capacidad de E/S del grupo de capacidad de ANF se basa en el tamaño del grupo de capacidad y su nivel de servicio. Para la implementación de producción, NetApp recomienda realizar una evaluación completa de los requisitos de rendimiento de su base de datos Oracle y dimensionar el grupo de capacidad de la base de datos en consecuencia. Al crear un grupo de capacidad, puede configurar la calidad de servicio en Automático o Manual y el cifrado de datos en reposo en Simple o Doble. -
Configuración de dNFS. Al usar dNFS, una base de datos Oracle que se ejecuta en una máquina virtual de Azure con almacenamiento ANF puede generar significativamente más E/S que el cliente NFS nativo. La implementación automatizada de Oracle mediante el kit de herramientas de automatización de NetApp configura automáticamente dNFS en NFSv3.
Implementación de la solución
Se supone que ya tiene su base de datos Oracle principal implementada en un entorno de nube de Azure dentro de una VNet como punto de partida para configurar Oracle Data Guard. Lo ideal es que la base de datos principal se implemente en un almacenamiento ANF con montaje NFS. Se crean tres puntos de montaje NFS para el almacenamiento de la base de datos de Oracle: mount /u01 para los archivos binarios de Oracle, mount /u02 para los archivos de datos de Oracle y un archivo de control, mount /u03 para los archivos de registro actuales y archivados de Oracle, y un archivo de control redundante.
Su base de datos Oracle principal también puede ejecutarse en un almacenamiento NetApp ONTAP o en cualquier otro almacenamiento de su elección, ya sea dentro del ecosistema de Azure o en un centro de datos privado. La siguiente sección proporciona procedimientos de implementación paso a paso para configurar Oracle Data Guard entre una base de datos Oracle principal en Azure con almacenamiento ANF y una base de datos Oracle física en espera en Azure con almacenamiento ANF.
Requisitos previos para la implementación
Details
La implementación requiere los siguientes requisitos previos.
-
Se ha configurado una cuenta en la nube de Azure y se han creado las subredes de red y VNet necesarias dentro de su cuenta de Azure.
-
Desde la consola del portal de nube de Azure, debe implementar un mínimo de tres máquinas virtuales Linux de Azure: una como servidor de base de datos Oracle principal, otra como servidor de base de datos Oracle en espera y un servidor de base de datos de destino clonado para informes, desarrollo y pruebas, etc. Consulte el diagrama de arquitectura en la sección anterior para obtener más detalles sobre la configuración del entorno. Revise también Microsoft"Máquinas virtuales de Azure" Para más información.
-
La base de datos Oracle principal debería haberse instalado y configurado en el servidor Oracle DB principal. Por otro lado, en el servidor Oracle DB en espera o en el servidor Oracle DB clonado, solo se instala el software de Oracle y no se crean bases de datos Oracle. Lo ideal sería que el diseño de los directorios de archivos de Oracle coincida exactamente en todos los servidores de base de datos Oracle. Para obtener detalles sobre la recomendación de NetApp para la implementación automatizada de Oracle en la nube de Azure y ANF, consulte los siguientes informes técnicos para obtener ayuda.
-
"TR-4987: Implementación de Oracle simplificada y automatizada en Azure NetApp Files con NFS"
Asegúrese de haber asignado al menos 128G en el volumen raíz de las máquinas virtuales de Azure para tener suficiente espacio para almacenar provisionalmente los archivos de instalación de Oracle.
-
-
Desde la consola del portal de nube de Azure, implemente dos grupos de capacidad de almacenamiento ANF para alojar volúmenes de bases de datos de Oracle. Los grupos de capacidad de almacenamiento de ANF deben estar ubicados en diferentes regiones para imitar una verdadera configuración de DataGuard. Si no está familiarizado con la implementación del almacenamiento ANF, consulte la documentación"Inicio rápido: configurar Azure NetApp Files y crear un volumen NFS" para obtener instrucciones paso a paso.
-
Cuando la base de datos principal de Oracle y la base de datos de Oracle en espera están ubicadas en dos regiones diferentes, se debe configurar una puerta de enlace VPN para permitir el flujo de tráfico de datos entre dos redes virtuales independientes. La configuración de red detallada en Azure está más allá del alcance de este documento. Las siguientes capturas de pantalla brindan una referencia sobre cómo se configuran y conectan las puertas de enlace VPN, y cómo se confirma el flujo del tráfico de datos en el laboratorio.
Puertas de enlace VPN de laboratorio:
La puerta de enlace vnet principal:
Estado de la conexión de la puerta de enlace de Vnet:
Validar que los flujos de tráfico estén establecidos (click en los tres puntos para abrir la página):
Preparar la base de datos principal para Data Guard
Details
En esta demostración, configuramos una base de datos Oracle principal llamada NTAP en el servidor Azure DB principal con tres puntos de montaje NFS: /u01 para el binario de Oracle, /u02 para los archivos de datos de Oracle y un archivo de control de Oracle, /u03 para los registros activos de Oracle, los archivos de registro archivados y un archivo de control de Oracle redundante. A continuación se ilustran los procedimientos detallados para configurar la base de datos principal para la protección de Oracle Data Guard. Todos los pasos deben ejecutarse como propietario de la base de datos Oracle o como predeterminado. oracle
usuario.
-
La base de datos principal NTAP en el servidor de base de datos principal de Azure orap.internal.cloudapp.net se implementa inicialmente como una base de datos independiente con ANF como almacenamiento de base de datos.
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
-
Inicie sesión en el servidor de base de datos principal como usuario Oracle. Inicie sesión en la base de datos a través de sqlplus, habilite el registro forzado en la base de datos principal.
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.
-
Desde sqlplus, habilite el flashback en la base de datos principal. Flashback permite restablecer fácilmente la base de datos principal como reserva después de una conmutación por error.
alter database flashback on;
SQL> alter database flashback on; Database altered.
-
Configure la autenticación de transporte de rehacer usando el archivo de contraseña de Oracle: cree un archivo pwd en el directorio principal usando la utilidad orapwd si no está configurada y cópielo en el directorio de la base de datos en espera $ORACLE_HOME/dbs.
-
Cree registros de rehacer en espera en la base de datos principal con el mismo tamaño que el archivo de registro en línea actual. Los grupos de registros son uno más de los grupos de archivos de registro en línea. La base de datos principal puede luego pasar rápidamente a la función de espera cuando ocurre una conmutación por error y comienza a recibir datos de rehacer. Repita el siguiente comando cuatro veces para crear cuatro archivos de registro en 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
-
Desde sqlplus, cree un pfile a partir de spfile para editarlo.
create pfile='/home/oracle/initNTAP.ora' from spfile;
-
Revise el archivo pfile y agregue los siguientes 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
-
Desde sqlplus, vuelva a crear el spfile a partir del pfile revisado para sobrescribir el spfile existente en el directorio $ORACLE_HOME/dbs.
create spfile='$ORACLE_HOME/dbs/spfileNTAP.ora' from pfile='/home/oracle/initNTAP.ora';
-
Modifique Oracle tnsnames.ora en el directorio $ORACLE_HOME/network/admin para agregar db_unique_name para la resolución de nombres.
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))
Si decide nombrar su servidor de Azure DB de forma diferente al predeterminado, agregue los nombres al archivo de host local para la resolución del nombre de host. -
Agregue el nombre del servicio de protección de datos NTAP_NY_DGMGRL.internal.cloudapp.net para la base de datos principal al archivo 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) ) )
-
Apague y reinicie la base de datos a través de sqlplus y valide que los parámetros de Data Guard ahora estén activos.
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 . .
Esto completa la configuración de la base de datos principal para Data Guard.
Preparar la base de datos en espera y activar Data Guard
Details
Oracle Data Guard requiere la configuración del kernel del sistema operativo y pilas de software de Oracle, incluidos conjuntos de parches en el servidor de base de datos en espera para que coincida con el servidor de base de datos principal. Para una fácil administración y simplicidad, la configuración de almacenamiento de la base de datos del servidor de base de datos en espera idealmente también debería coincidir con la del servidor de base de datos principal, como el diseño del directorio de la base de datos y los tamaños de los puntos de montaje NFS. A continuación se detallan los procedimientos para configurar el servidor Oracle DB en espera y activar Oracle DataGuard para la protección HA/DR. Todos los comandos deben ejecutarse como el ID de usuario propietario de Oracle predeterminado oracle
.
-
Primero, revise la configuración de la base de datos principal en el servidor Oracle DB principal. En esta demostración, configuramos una base de datos Oracle principal llamada NTAP en el servidor de base de datos principal con tres montajes NFS en almacenamiento ANF.
-
Si sigue la documentación de NetApp TR-4987 para configurar el servidor de base de datos en espera de Oracle"TR-4987: Implementación de Oracle simplificada y automatizada en Azure NetApp Files con NFS" , usa una etiqueta
-t software_only_install
en el paso 2 dePlaybook execution
para ejecutar la instalación automatizada de Oracle. La sintaxis del comando revisada se detalla a continuación. La etiqueta permitirá que la pila de software de Oracle se instale y configure, pero no llegará a crear una base de datos.ansible-playbook -i hosts 4-oracle_config.yml -u azureuser -e @vars/vars.yml -t software_only_install
-
La configuración del servidor Oracle DB en espera en el sitio de espera en el laboratorio de demostración.
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
-
Una vez instalado y configurado el software de Oracle, configure la ruta y el directorio de inicio de Oracle. Además, desde el directorio de bases de datos en espera $ORACLE_HOME, copie la contraseña de Oracle de la base de datos principal si no lo ha hecho.
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 .
-
Actualice el archivo tnsnames.ora con las siguientes 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) ) )
-
Agregue el nombre del servicio de protección de datos de base de datos al archivo 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 dbca para crear una instancia de la base de datos en espera desde la base de datos principal 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.
-
Validar la base de datos en espera duplicada. La base de datos en espera recién duplicada se abre inicialmente en modo de SOLO LECTURA.
[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 la base de datos en espera en
mount
Ponga en escena y ejecute el siguiente comando para activar la recuperación administrada de la base de datos en 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.
-
Validar el estado de recuperación de la base de datos en espera. Tenga en cuenta el
recovery logmerger
enAPPLYING_LOG
acción.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>
Esto completa la configuración de protección de Data Guard para NTAP desde el modo principal al modo en espera con la recuperación en espera administrada habilitada.
Configurar Data Guard Broker
Details
Oracle Data Guard Broker es un marco de gestión distribuida que automatiza y centraliza la creación, el mantenimiento y la supervisión de las configuraciones de Oracle Data Guard. La siguiente sección demuestra cómo configurar Data Guard Broker para administrar el entorno de Data Guard.
-
Inicie Data Guard Broker en las bases de datos principal y en la de reserva con el siguiente comando a través de sqlplus.
alter system set dg_broker_start=true scope=both;
-
Desde la base de datos principal, conéctese a 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>
-
Cree y habilite la configuración de 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)
-
Validar el estado de la base de datos dentro del marco de gestión de 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>
En caso de falla, se puede utilizar Data Guard Broker para conmutar por error la base de datos principal a la base de datos en espera de manera instantánea. Si Fast-Start Failover
está habilitado, Data Guard Broker puede conmutar por error la base de datos principal a la base de datos en espera cuando se detecta una falla sin intervención del usuario.
Clonar base de datos en espera para otros casos de uso
Details
El beneficio clave de alojar la base de datos en espera de Oracle en el ANF en la configuración de Oracle Data Guard es que se puede clonar rápidamente para atender a muchos otros casos de uso con una inversión mínima de almacenamiento adicional si se habilita un clon delgado. NetApp recomienda utilizar la herramienta de interfaz de usuario SnapCenter para administrar su base de datos Oracle DataGuard. En la siguiente sección, demostramos cómo crear instantáneas y clonar los volúmenes de base de datos montados y en espera de recuperación en el ANF para otros fines, como DEV, TEST, REPORT, etc., utilizando la herramienta NetApp SnapCenter .
A continuación se presentan procedimientos de alto nivel para clonar una base de datos de LECTURA/ESCRITURA desde la base de datos física en espera administrada en Oracle Data Guard usando SnapCenter. Para obtener instrucciones detalladas sobre cómo configurar SnapCenter para Oracle en ANF, consulte TR-4988"Copia de seguridad, recuperación y clonación de bases de datos Oracle en ANF con SnapCenter" Para más detalles.
-
Comenzamos la validación del caso de uso creando una tabla de prueba e insertando una fila en la tabla de prueba en la base de datos principal. Luego validaremos que la transacción pase al modo en espera y finalmente al clon.
[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>
-
En la configuración de SnapCenter , se agregó un usuario Unix (azureuser para demostración) y una credencial de Azure (azure_anf para demostración).
Credential
enSettings
. -
Utilice la credencial azure_anf para agregar el almacenamiento ANF a
Storage Systems
. Si tiene varias cuentas de almacenamiento ANF en su suscripción de Azure, asegúrese de hacer clic en la lista desplegable para elegir la cuenta de almacenamiento correcta. Hemos creado dos cuentas de almacenamiento Oracle dedicadas para esta demostración. -
Todos los servidores Oracle DB se han agregado a SnapCenter
Hosts
.El servidor de base de datos clonado debe tener pilas de software Oracle idénticas instaladas y configuradas. En nuestro caso de prueba, se instala y configura el software Oracle 19C, pero no se crea ninguna base de datos. -
Cree una política de respaldo adaptada para copias de seguridad completas de bases de datos montadas o sin conexión.
-
Aplicar la política de respaldo para proteger la base de datos en espera en
Resources
pestaña. Cuando se descubre inicialmente, el estado de la base de datos se muestra comoNot protected
. -
Tiene la opción de activar una copia de seguridad manualmente o programarla en un momento determinado después de aplicar una política de copia de seguridad.
-
Después de realizar una copia de seguridad, haga clic en el nombre de la base de datos para abrir la página de copias de seguridad de la base de datos. Seleccione una copia de seguridad que se utilizará para clonar la base de datos y haga clic en
Clone
Botón para iniciar el flujo de trabajo de clonación. -
Seleccione el
Complete Database Clone
y nombrar el SID de la instancia clonada. -
Seleccione el servidor de base de datos clonada, que aloja la base de datos clonada de la base de datos en espera. Acepte los valores predeterminados para los archivos de datos y rehaga los registros. Coloque un archivo de control en el punto de montaje /u03.
-
No se necesitan credenciales de base de datos para la autenticación basada en sistema operativo. Haga coincidir la configuración de inicio de Oracle con lo que está configurado en el servidor de base de datos clonado.
-
Cambie los parámetros de la base de datos clonada si es necesario, como reducir el tamaño de PGA o SGA para una base de datos clonada. Especifique los scripts que se ejecutarán antes de la clonación, si corresponde.
-
Introduzca SQL para ejecutar después de la clonación. En la demostración, ejecutamos comandos para desactivar el modo de archivo de base de datos para una base de datos de desarrollo/prueba/informe.
-
Configure la notificación por correo electrónico si lo desea.
-
Revise el resumen, haga clic
Finish
para iniciar el clon. -
Supervisar el trabajo de clonación en
Monitor
pestaña. Observamos que tomó alrededor de 14 minutos clonar una base de datos con un tamaño de volumen de base de datos de aproximadamente 950 GB. -
Validar la base de datos clonada de SnapCenter, que se registra inmediatamente en
Resources
Pestaña justo después de la operación de clonación. -
Consulta la base de datos clonada desde el servidor de base de datos clonada. Validamos que la transacción de prueba que ocurrió en la base de datos principal hubiera recorrido hasta la base de datos clonada.
[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
Esto completa la demostración del clon de base de datos en espera de Oracle en el almacenamiento ANF de Oracle Data Guard en Azure para DEV, TEST, REPORT o cualquier otro caso de uso. Es posible clonar varias bases de datos Oracle desde la misma base de datos en espera en Oracle Data Guard en ANF.
Dónde encontrar información adicional
Para obtener más información sobre la información descrita en este documento, revise los siguientes documentos y/o sitios web:
-
Azure NetApp Files
-
TR-4988: Copia de seguridad, recuperación y clonación de bases de datos Oracle en ANF con SnapCenter
-
TR-4987: Implementación de Oracle simplificada y automatizada en Azure NetApp Files con NFS
-
Conceptos y administración de Oracle Data Guard