TR-5002: Reducción de costes de Oracle Active Data Guard con Azure NetApp Files
Allen Cao, Niyaz Mohamed, NetApp
La solución ofrece una descripción general y detalles para configurar Oracle Data Guard con Microsoft Azure NetApp Files (ANF) como almacenamiento de bases de datos primaria y en espera para reducir el coste operativo y de licencias de la solución HA/DR de Oracle Data Guard en la nube de Azure.
Específico
Oracle Data Guard garantiza una alta disponibilidad, protección de datos y recuperación de desastres para los datos empresariales en una configuración de replicación de base de datos primaria y 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 primaria a bases de datos en espera. Data Guard es una función de Oracle Database Enterprise Edition. No se requiere licencia independiente. Por otro lado, Active Data Guard es una opción de Oracle Database Enterprise Edition, por lo tanto, requiere una licencia independiente. Varias bases de datos en espera pueden recibir la replicación de datos de una base de datos primaria en la configuración de Active Data Guard. Sin embargo, cada base de datos en espera adicional requiere una licencia de Active Data Guard y almacenamiento adicional como tamaño de la base de datos primaria. Los costes operativos se suman rápidamente.
Si está interesado en reducir el coste de la operación de la base de datos Oracle y está planeando configurar un Active Data Guard en la nube de Azure, debería considerar una alternativa. En lugar de Active Data Guard, utilice Data Guard para replicar de la base de datos primaria a una única base de datos física en espera en el almacenamiento de Azure NetApp Files. Posteriormente, se pueden clonar y abrir varias copias de esta base de datos en espera para el acceso de lectura/escritura para servir a muchos otros casos de uso, como informes, desarrollo, pruebas, etc. Los resultados netos proporcionan de manera efectiva funcionalidades de Active Data Guard y eliminan la licencia de Active Data Guard. En esta documentación, mostramos cómo configurar Oracle Data Guard con la base de datos primaria y física en espera existentes en el almacenamiento ANF. Se realiza una copia de seguridad de la base de datos en espera y se clona para obtener acceso de lectura/escritura para casos de uso como se desee a través de la herramienta de gestión de bases de datos NetApp SnapCenter. El equipo de ingeniería de soluciones de NetApp también ofrece un kit de herramientas de automatización para actualizar la clonación en una programación definida por el usuario y así gestionar el ciclo de vida de clones de bases de datos de forma automatizada y completa sin necesidad de intervención del usuario.
Esta solución aborda los siguientes casos prácticos:
-
Implementación de Oracle Data Guard entre una base de datos primaria y una base de datos física en espera en el almacenamiento de Microsoft Azure NetApp Files en todas las regiones de Azure.
-
Realice backups y clone la base de datos física en espera para utilizar casos de uso como creación de informes, desarrollo, pruebas, etc.
-
Gestión del ciclo de vida de actualización del clon de bases de datos de Oracle a través
Destinatarios
Esta solución está dirigida a las siguientes personas:
-
Un administrador de bases de datos que configura Oracle Active Data Guard en el cloud de Azure para alta disponibilidad, protección de datos y recuperación ante desastres.
-
Un arquitecto de soluciones de bases de datos interesado en la configuración de Oracle Active Data Guard en la nube de Azure.
-
Un administrador de almacenamiento que gestiona el almacenamiento de Azure NetApp Files compatible con Oracle Data Guard.
-
Propietario de una aplicación al que le gusta poner en marcha Oracle Data Guard en un entorno de cloud de Azure.
Entorno de prueba y validación de la solución
Las pruebas y la validación de esta solución se llevaron a cabo en un entorno de laboratorio de cloud de Azure que podría no coincidir con el entorno de puesta en marcha real del usuario. Para obtener más información, consulte la sección Factores clave a tener en cuenta la puesta en marcha.
Arquitectura
Componentes de hardware y software
Hardware |
||
Azure NetApp Files |
Versión actual ofrecida por Microsoft |
Dos pools de capacidad de 3 TiB, nivel de servicio estándar, calidad de servicio automática |
Máquinas virtuales de Azure para servidores de bases de datos |
B4ms estándar (4 vcpu, 16 GiB de memoria) |
Tres equipos virtuales de base de datos, uno como servidor de base de datos primaria, uno como servidor de base de datos en espera y el tercero como servidor de base de datos clonado |
Software |
||
Red Hat Linux |
Red Hat Enterprise Linux 8,6 (LVM) - x64 Gen2 |
Suscripción RedHat implementada para 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 |
Cree 6.0.1.4487 |
NFS |
Versión 3.0 |
DNFS activado para Oracle |
Configuración de Oracle Data Guard con configuración hipotética de NY a LA DR
Base de datos |
DB_UNIQUE_NAME |
Nombre de Servicio de Red de Oracle |
Primario |
NTAP_NY |
NTAP_NY.internal.cloudapp.net |
En espera |
NTAP_LA |
NTAP_LA.internal.cloudapp.net |
Factores clave a tener en cuenta la puesta en marcha
-
Standby Database Clone. Al recibir y aplicar registros de transacciones de la base de datos primaria, la base de datos física en espera puede clonarse y montarse en un equipo virtual de base de datos para soportar otras cargas de trabajo como DESARROLLO, PRUEBA o informe. El clon puede ser un clon fino o grueso. En este momento, ANF solo admite clonado grueso, que es una copia completa de la base de datos en espera. La opción de clonación fina de ANF se lanzará en breve. Para realizar copias clonadas de volúmenes de bases de datos, comparte los mismos volúmenes de bases de datos en espera y utiliza la tecnología copy-on-write para dar servicio a iOS de escritura. Así, el clon resulta muy eficiente del almacenamiento que se puede utilizar en muchos otros casos de uso con una asignación de nuevo almacenamiento mínima e incremental para nuevas I/O de escritura. Esto proporciona un enorme ahorro en costes de almacenamiento al reducir de forma considerable el espacio físico de almacenamiento de Active Data Guard. NetApp recomienda minimizar las actividades de FlexClone en caso de cambiar de un almacenamiento principal al almacenamiento ANF en espera para mantener un rendimiento de Oracle a un nivel alto.
-
Requisitos de software de Oracle. En general, una base de datos física en espera debe tener la misma versión del directorio raíz de la base de datos que la base de datos primaria, incluidas las excepciones de juego de parches (PSE), las actualizaciones de parches críticos (CPU), y y Actualizaciones de Juegos de Parches (PSU), a menos que esté en curso un proceso de aplicación de Parches Primero en Espera de Oracle Data Guard (como se describe en la nota 1265700,1 de My Oracle Support en "support.oracle.com"
-
Consideraciones sobre la estructura del directorio de la base de datos en espera. Si es posible, los archivos de datos, los archivos de registro y los archivos de control en los sistemas primario y en espera deben tener los mismos nombres y nombres de ruta de acceso y usar las convenciones de nomenclatura de Arquitectura Flexible Óptima (OFA). Los directorios de archivado de la base de datos en espera también deben ser idénticos entre las ubicaciones, incluido el tamaño y la estructura. Esta estrategia permite que otras operaciones, como backups, conmutaciones y recuperaciones tras fallos, ejecuten el mismo conjunto de pasos, lo que reduce la complejidad de mantenimiento.
-
Forzar modo de registro. Para proteger contra las escrituras directas no registradas en la base de datos primaria que no se pueden propagar a la base de datos en espera, active FORZAR REGISTRO en la base de datos primaria antes de realizar copias de seguridad de archivos de datos para la creación en espera.
-
Azure VM Sizing. En estas pruebas y validaciones, utilizamos una VM de Azure - Standard_B4ms con 4 vCPU and16 GiB de memoria. Necesita ajustar el tamaño de la máquina virtual de Azure DB correctamente para el número de vCPU y la cantidad de RAM en función de los requisitos reales de la carga de trabajo.
-
Configuración 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 pool de capacidad de 3 TiB para alojar Oracle primario en la región Este y una base de datos en espera en la región West 2. El pool de capacidad de ANF tiene tres niveles de servicio: Standard, Premium y Ultra. La capacidad de I/O del pool de capacidad de ANF se basa en el tamaño del pool de capacidad y su nivel de servicio. En el caso de la puesta en marcha de producción, NetApp recomienda realizar una evaluación completa de los requisitos de rendimiento de la base de datos de Oracle y ajustar el tamaño del pool de capacidad de la base de datos en consecuencia. En la creación de un pool de capacidad, puede establecer la calidad de servicio en Automática o Manual y el cifrado de datos en reposo Única o Doble. -
Configuración dNFS. Al utilizar dNFS, una base de datos de Oracle que se ejecuta en una máquina virtual de Azure con almacenamiento ANF puede generar una tasa significativamente superior de I/O que el cliente NFS nativo. La puesta en marcha automatizada de Oracle mediante el kit de herramientas de automatización de NetApp configura automáticamente dNFS en NFSv3.
Puesta en marcha de la solución
Se asume que ya tiene su base de datos Oracle principal implementada en un entorno de cloud de Azure dentro de vnet como punto de partida para configurar Oracle Data Guard. Lo ideal es que la base de datos primaria se ponga en marcha en un almacenamiento ANF con montaje NFS. Se crean tres puntos de montaje NFS para el almacenamiento de la base de datos Oracle: Monte /u01 para los archivos binarios de Oracle, monte /u02 para los archivos de datos de Oracle y un archivo de control, monte /u03 para los archivos log actuales y archivados de Oracle y un archivo de control redundante.
Su base de datos de Oracle principal también puede ejecutarse en un almacenamiento de NetApp ONTAP o en cualquier otra opción de almacenamiento dentro del ecosistema de Azure o en un centro de datos privado. En la siguiente sección se proporcionan procedimientos de implementación paso a paso para configurar un Oracle Data Guard entre una base de datos Oracle primaria en Azure con almacenamiento ANF en 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 de cloud de Azure y se han creado las subredes de red y vnet necesarias en su cuenta de Azure.
-
Desde la consola del portal de la nube de Azure, necesita desplegar al menos tres máquinas virtuales de Azure Linux, una como servidor principal de Oracle DB, una como servidor de Oracle DB en espera y un servidor de base de datos de destino de clonación 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. Consulte también Microsoft "Máquinas virtuales Azure" para obtener más información.
-
La base de datos Oracle primaria debe haberse instalado y configurado en el servidor de Oracle DB primario. Por otro lado, en el servidor de Oracle DB en espera o en el servidor de Oracle DB clonado, sólo se instala el software de Oracle y no se crea ninguna base de datos Oracle. Lo ideal sería que el diseño de los directorios de ficheros de Oracle coincidiera exactamente en todos los servidores Oracle DB. Para obtener más detalles sobre las recomendaciones de NetApp para la puesta en marcha automatizada de Oracle en el cloud de Azure y ANF, consulte los siguientes informes técnicos para obtener ayuda.
-
"TR-4987: Implementación simplificada y automatizada de Oracle 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 espacio suficiente para almacenar en zona intermedia los archivos de instalación de Oracle.
-
-
Desde la consola del portal de nube de Azure, implemente dos pools de capacidad de almacenamiento de ANF para alojar los volúmenes de bases de datos de Oracle. Los pools de capacidad de almacenamiento de ANF deben estar situados en diferentes regiones para imitar una configuración de DataGuard real. Si no está familiarizado con la puesta en marcha del almacenamiento de ANF, consulte la documentación "Inicio rápido: Configure Azure NetApp Files y cree un volumen NFS" para obtener instrucciones paso a paso.
-
Cuando la base de datos Oracle primaria y la base de datos Oracle en espera se encuentran en dos regiones diferentes, se debe configurar un gateway VPN para permitir el flujo de tráfico de datos entre dos VNets independientes. La configuración de redes detallada en Azure no está dentro del alcance de este documento. Las siguientes capturas de pantalla proporcionan alguna referencia sobre cómo se configuran, conectan las puertas de enlace VPN y se confirma el flujo de tráfico de datos en el laboratorio.
Pasarelas VPN Lab:
La puerta de enlace vnet primaria:
Estado de conexión de la puerta de enlace de vnet:
Compruebe que se han establecido los flujos de tráfico (haga clic en tres puntos para abrir la página):
Prepare la base de datos primaria para Data Guard
Details
En esta demostración, hemos configurado una base de datos Oracle primaria llamada NTAP en el servidor de la base de datos Azure primaria 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 redundante de Oracle. A continuación se muestran los procedimientos detallados para configurar la base de datos primaria para la protección de Oracle Data Guard. Todos los pasos se deben ejecutar como el propietario de la base de datos Oracle o el usuario por defecto oracle
.
-
La base de datos primaria NTAP en el servidor de base de datos de Azure primario orap.internal.cloudapp.net se implementa inicialmente como 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
-
Conéctese al servidor de base de datos principal como usuario oracle. Conéctese a la base de datos a través de sqlplus, active el registro forzado en primary.
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, active el flashback en la base de datos primaria. El flashback permite restablecer fácilmente la base de datos primaria como base de datos en espera después de un failover.
alter database flashback on;
SQL> alter database flashback on; Database altered.
-
Configurar la autenticación de transporte de redo con el archivo de contraseñas de Oracle: Cree un archivo pwd en el archivo primario mediante la utilidad orapwd si no está definida y cópielo en el directorio $ORACLE_HOME/dbs de la base de datos en espera.
-
Cree redo logs en espera en la base de datos primaria con el mismo tamaño que el archivo log en línea actual. Los grupos de registros son uno más que los grupos de archivos de registro en línea. A continuación, la base de datos primaria puede realizar una transición rápida al rol en espera cuando se produce un failover y comienza a recibir datos de redo. Repita el siguiente comando cuatro veces para crear cuatro archivos log 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 archivo pfile a partir de spfile para su edición.
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 spfile desde 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 asignar un nombre diferente al servidor de base de datos de Azure, agregue los nombres al archivo de host local para la resolución del nombre de host. -
Agregue el nombre de servicio de data guard NTAP_NY_DGMGRL.internal.cloudapp.net para la base de datos primaria 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) ) )
-
Cierre y reinicie la base de datos a través de sqlplus y valide que los parámetros de Data Guard 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 . .
De esta forma finaliza la configuración de la base de datos primaria para Data Guard.
Preparar la base de datos en espera y activar Data Guard
Details
Oracle Data Guard necesita la configuración del núcleo del sistema operativo y las pilas de software de Oracle, incluidos los juegos de parches en el servidor de base de datos en espera, para que coincidan con el servidor de base de datos primaria. Para facilitar la gestión y simplificar, la configuración del almacenamiento de la base de datos del servidor de base de datos en espera debería coincidir también con el servidor de base de datos primaria, 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 describen los procedimientos detallados para configurar el servidor de Oracle DB en espera y activar Oracle DataGuard para la protección HA/DR. Todos los comandos se deben ejecutar como el identificador de usuario propietario de Oracle por defecto oracle
.
-
En primer lugar, revise la configuración de la base de datos primaria en el servidor de Oracle DB primario. En esta demostración, hemos configurado una base de datos Oracle primaria denominada NTAP en el servidor de la base de datos primaria con tres montajes NFS en el almacenamiento ANF.
-
Si sigue la documentación TR-4987 de NetApp para configurar el servidor de base de datos Oracle en espera "TR-4987: Implementación simplificada y automatizada de Oracle en Azure NetApp Files con NFS", utilice una etiqueta
-t software_only_install
en el paso 2 dePlaybook execution
para ejecutar la instalación automática de Oracle. La sintaxis del comando revisada se muestra a continuación. La etiqueta permitirá que la pila de software de Oracle se instale y configure, pero no podrá crear una base de datos.ansible-playbook -i hosts 4-oracle_config.yml -u azureuser -e @vars/vars.yml -t software_only_install
-
Configuración del servidor de Oracle DB en espera en la ubicación en espera del 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, defina el directorio raíz y la ruta de acceso de oracle. Además, desde el directorio dbs $ORACLE_HOME en espera, copie la contraseña de oracle de la base de datos primaria 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 instanciar la base de datos en espera desde la base de datos primaria 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 SÓLO 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
mount
en la etapa y ejecute el siguiente comando para activar la recuperación gestionada 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. Observe la
recovery logmerger
pulgAPPLYING_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>
De esta forma se completa la configuración de protección de Data Guard para NTAP de primaria a en espera con la recuperación en espera gestionada activada.
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. En la siguiente sección se muestra cómo configurar Data Guard Broker para gestionar el entorno de Data Guard.
-
Inicie Data Guard Broker tanto en la base de datos primaria como en la base de datos en espera con el siguiente comando a través de sqlplus.
alter system set dg_broker_start=true scope=both;
-
Desde la base de datos primaria, 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>
-
Crear y activar 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)
-
Valide el estado de la base de datos en el 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 fallo, Data Guard Broker se puede utilizar para conmutar por error la base de datos primaria a la instancia en espera. Si Fast-Start Failover
está activado, Data Guard Broker puede realizar un failover de la base de datos primaria a la base de datos en espera cuando se detecta un fallo sin intervención del usuario.
Clonar base de datos en espera para otros casos de uso
Details
La ventaja principal de alojar la base de datos Oracle en espera en ANF en la configuración de Oracle Data Guard es que puede clonarse rápidamente para servir a muchos otros casos de uso con una inversión mínima de almacenamiento adicional si se activa una clonación ligera. NetApp recomienda utilizar la herramienta de interfaz de usuario de SnapCenter para gestionar la base de datos de Oracle DataGuard. En la siguiente sección, mostramos cómo realizar snapshots y clonar los volúmenes de bases de datos en espera montados y bajo recuperación en ANF para otros fines, como DESARROLLO, PRUEBAS, INFORMES, etc., con la herramienta NetApp SnapCenter.
A continuación se muestran procedimientos de alto nivel para clonar una base de DATOS DE LECTURA/ESCRITURA desde la base de datos física en espera gestionada en Oracle Data Guard mediante SnapCenter. Para obtener instrucciones detalladas sobre cómo instalar y configurar SnapCenter para Oracle en ANF, consulte TR-4988 "Oracle Database Backup, Recovery y Clone en ANF con SnapCenter" para obtener más detalles.
-
Comenzamos la validación de casos de uso creando una tabla de prueba e insertando una fila en la tabla de prueba de la base de datos primaria. A continuación, validaremos que la transacción pasa al modo de 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 ha agregado un usuario unix (azureuser para demo) y una credencial de Azure (azure_anf para demo)
Credential
enSettings
. -
Utilice la credencial azure_anf para agregar el almacenamiento ANF a
Storage Systems
. Si tienes varias cuentas de almacenamiento de ANF en tu subinscripción de Azure, asegúrate de hacer clic en la lista desplegable para elegir la cuenta de almacenamiento adecuada. Hemos creado dos cuentas de almacenamiento Oracle dedicadas para esta demostración. -
Todos los servidores de Oracle DB se han agregado a SnapCenter
Hosts
.El servidor de la base de datos clonada debe tener instaladas y configuradas pilas de software de Oracle idénticas. En nuestro caso de prueba, el software Oracle 19C se instala y configura pero no se crea ninguna base de datos. -
Cree una política de backup adaptada para un backup completo de base de datos sin conexión o montado.
-
Aplicar política de copia de seguridad para proteger la base de datos en espera en
Resources
el separador. Cuando se detecta inicialmente, el estado de la base de datos se muestra comoNot protected
. -
Tiene la opción de activar una copia de seguridad manualmente o ponerla en una programación a una hora determinada después de aplicar una política de copia de seguridad.
-
Después de realizar un backup, haga clic en el nombre de la base de datos para abrir la página Database Backups. Seleccione un backup que se usará para la clonación de la base de datos y, a continuación, haga clic en
Clone
el botón para iniciar el flujo de trabajo de clonado. -
Seleccione la
Complete Database Clone
y asigne el nombre al SID de la instancia del clon. -
Seleccione el clon DB server, que aloja la base de datos clonada desde la base de datos en espera. Acepte el valor por defecto para los archivos de datos, redo logs. 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 el sistema operativo. Coincida con el valor del directorio raíz de Oracle con lo configurado en el servidor de base de datos de clonación.
-
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 del clon, si los hubiera.
-
Introduzca SQL para ejecutar después del clon. 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 y haga clic en
Finish
para iniciar el clon. -
Supervise el trabajo de clonado en
Monitor
la pestaña. Observamos que tardaba unos 14 minutos en clonar una base de datos de unos 950GB GB de tamaño de volumen de base de datos. -
Valide la base de datos del clon desde SnapCenter, que se registra de inmediato en
Resources
tabulador justo después de la operación de clonación. -
Consulte la base de datos clonada del servidor de base de datos clonada. Validamos que la transacción de prueba que se producía en la base de datos principal se había cruzado 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 de Oracle en espera en el almacenamiento de Oracle Data Guard en Azure ANF para DESARROLLO, PRUEBAS, INFORMES o cualquier otro caso de uso. Es posible clonar varias bases de datos de Oracle a partir de la misma base de datos en espera en Oracle Data Guard en ANF.
Dónde encontrar información adicional
Si quiere más información sobre la información descrita en este documento, consulte los siguientes documentos o sitios web:
-
Azure NetApp Files
-
TR-4988: Backup, recuperación y clonado de bases de datos de Oracle en ANF con SnapCenter
-
TR-4987: Implementación simplificada y automatizada de Oracle en Azure NetApp Files con NFS
-
Oracle Data Guard Concepts and Administration