Prácticas recomendadas para la solución Bare Metal de Oracle

Sabemos que tu objetivo es crear tu entorno de forma sencilla y con la menor cantidad de problemas posible cuando implementas bases de datos de Oracle en la solución Bare Metal. Para ayudarte a lograr este objetivo, recopilamos comentarios de clientes, nuestros arquitectos de soluciones y el personal de asistencia que implementaron bases de datos de Oracle en la solución Bare Metal. La siguiente información te proporciona recomendaciones aprendidas de estos expertos para ayudarte a tener el mayor éxito posible cuando creas tu propio entorno de base de datos de Oracle en la solución Bare Metal.

Implementación de software

Para lograr la implementación más exitosa del software de Oracle, te recomendamos que uses el kit de herramientas de soluciones Bare Metal. El kit de herramientas proporciona varias secuencias de comandos de Ansible y JSON para ayudarte a realizar la instalación del software de Oracle en la solución Bare Metal. Para obtener más información sobre el kit de herramientas de la solución Bare Metal y cómo instalar las bases de datos de Oracle en un entorno de la solución Bare Metal, consulta la guía del usuario de Toolkit.

Sistema operativo

Cuando configures tu sistema operativo en un servidor de la solución Bare Metal, te recomendamos que realices las siguientes acciones.

Valida tus servidores NTP

Todos los servidores de la solución Bare Metal deben sincronizarse con una fuente de tiempo. Selecciona la opción de servidor NTP, ya sea físico o virtual, que mejor se adapte a tus necesidades.

Cuando tus servidores usen NTP para la sincronización de hora, usa el comando timedatectl o ntpstat para ver si el servidor está sincronizado con una fuente de tiempo. En los siguientes ejemplos, se muestra el resultado de estos comandos para un servidor que se sincroniza de forma correcta:

timedatectl show -p NTPSynchronized
NTPSynchronized=yes
synchronised to NTP server (216.239.35.8) at stratum 3
   time correct to within 49 ms
   polling server every 1024 s

Ver el recuento de CPU y la memoria de la VM de Oracle

Para ver información sobre un host de VM de Oracle (OVM), incluidos los detalles de CPU y memoria, usa el comando xm info. Por ejemplo:

/usr/sbin/xm info

Para obtener más información, consulta la documentación de Oracle sobre cómo ver la información del host.

Verifica la configuración de /etc/fstab para conocer las opciones de activación correctas

Para evitar que el proceso de inicio se bloquee, configura siempre los puntos de activación que no sean raíz que crees (como /u01 y /u02) con la opción de activación nofail en lugar de los ajustes predeterminados. En casos excepcionales, los dispositivos de almacenamiento subyacentes podrían no estar disponibles cuando se reinicia un host. Configurar la opción de activación nofail permite que el proceso de inicio continúe cuando el servidor no puede ver los dispositivos de almacenamiento.

En el siguiente ejemplo, se muestra la configuración recomendada para los puntos de activación /u01 y /u02 en el archivo /etc/fstab:

/dev/mapper/3600a098038314352513f4f765339624c1 /u01 xfs nofail 0 0
/dev/mapper/3600a374927591837194d4j371563816c1 /u02 xfs nofail 0 0

Puedes modificar la opción de activación de defaults a nofail sin afectar el sistema operativo. Sin embargo, para aplicar la configuración nueva, debes reiniciar el servidor.

Confirma la configuración de límite de shell

El kit de herramientas de la solución Bare Metal configura los límites de shell necesarios para configurar Oracle RAC. Puedes omitir esta validación si usaste el kit de herramientas de la solución Bare Metal y no cambiaste los límites del shell. Los límites de shell deben establecerse para todas las cuentas del sistema operativo que poseen software de Oracle, incluida Grid Infrastructure. Oracle recomienda la siguiente configuración para Linux:

Límite Valor flexible Valor difícil
Abrir archivos 1024 65536
Cantidad máxima de procesos de usuarios 16384 16384
Tamaño de la pila 10240 32768
Cantidad máxima de memoria bloqueada Al menos el 90% de la memoria Al menos el 90% de la memoria

Usa el comando ulimit para verificar los límites flexibles y rígidos de shell. Por ejemplo, ingresa este comando para verificar el límite flexible de shell:

ulimit -S -n -u -s -l

En el siguiente resultado, se muestra la configuración correcta de límite de soft Shell para un sistema con 384 GB de memoria:

open files                      (-n) 1024
max user processes              (-u) 16384
stack size              (kbytes, -s) 10240
max locked memory       (kbytes, -l) 355263678

Para verificar los límites rígidos de shell, usa el siguiente comando:

ulimit -H -n -u -s -l

En el siguiente resultado, se muestran los límites correctos de shell duro para un sistema con 384 GB de memoria:

open files                      (-n) 65536
max user processes              (-u) 16384
stack size              (kbytes, -s) 32768
max locked memory       (kbytes, -l) 355263678

Si alguno de los límites de shell no está configurado de forma correcta, modifica las entradas en el archivo /etc/security/limits.conf, como se muestra en el siguiente ejemplo:

oracle  soft  nofile  1024
oracle  hard  nofile  65536
oracle  soft  nproc   2047
oracle  hard  nproc   16384
oracle  soft  stack   10240
oracle  hard  stack   32768
oracle  soft  memlock 355263678
oracle  hard  memlock 355263678

grid    soft  nofile  1024
grid    hard  nofile  65536
grid    soft  nproc   2047
grid    hard  nproc   16384
grid    soft  stack   10240
grid    hard  stack   32768
grid    soft  memlock 355263678
grid    hard  memlock 355263678
grep MemTotal /proc/meminfo
MemTotal:       16092952 kB

Cómo evitar cambiar la configuración de varias rutas

Si eliges cambiar la configuración de varias rutas de acceso, no configures el atributo path_grouping_policy si usas multipath.conf para crear nombres con alias para dispositivos. Este cambio anula la política predeterminada establecida en la sección de definición de devices.

En condiciones de funcionamiento normal, el comando multipath -ll debería mostrar un estado similar al siguiente ejemplo. Cada dispositivo incluye dos rutas de acceso activas que están listas.

3600a0980383143524f2b50476d59554e dm-7 NETAPP  ,LUN C-Mode
size=xxxG features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 14:0:3:2 sdf                8:80   active ready running
| `- 16:0:5:2 sdv                65:80  active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  |- 14:0:2:2 sdc                8:32   active ready running
  `- 16:0:3:2 sdq                65:0   active ready running

Usa marcos jumbo

Para evitar la fragmentación de los paquetes a medida que viajan de un servidor a otro en un entorno de RAC, Oracle recomienda configurar las interfaces del servidor con tramas gigantes. Los marcos gigantes tienen un tamaño de MTU de 9,000 bytes y son lo suficientemente grandes como para admitir tamaños de bloque de base de datos de Oracle de 8,192 bytes.

Si deseas configurar marcos gigantes en los servidores de la solución Bare Metal para Oracle RAC, sigue estos pasos:

  1. Consulta la configuración de la red privada de la solución Bare Metal para confirmar que se hayan configurado las tramas gigantes:

    gcloud bms networks describe NETWORK_NAME --project=PROJECT_ID --region=REGION | grep jumboFramesEnabled
    

    Resultado de muestra:

    jumboFramesEnabled: true
    
  2. Identifica las interfaces de red y su tamaño de mtu:

    ip link show | grep mtu
    

    Resultado de muestra:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    2: enp55s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    3: enp55s0f2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    4: enp55s0f3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    5: enp17s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
    6: enp17s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP mode DEFAULT group default qlen 1000
    7: enp173s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
    8: enp173s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP mode DEFAULT group default qlen 1000
    9: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    10: bond1.117@bond1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    11: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    12: bond0.118@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    13: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    14: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT group default qlen 1000
    
  3. Con privilegios de nivel de raíz, agrega MTU=9000 al archivo de configuración de interfaz para todos los servidores del entorno de la solución Bare Metal que usen marcos jumbo. Puedes encontrar el archivo en /etc/sysconfig/network-scripts/ifcfg-interface_name.

    Resultado de muestra:

    BONDING_OPTS="lacp_rate=1 miimon=100 mode=802.3ad xmit_hash_policy=1"
    TYPE=Bond
    BONDING_MASTER=yes
    PROXY_METHOD=none
    BROWSER_ONLY=no
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=no
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=bond1
    UUID=0e7da685-64bf-44f3-812f-9846d747a801
    DEVICE=bond1
    ONBOOT=yes
    AUTOCONNECT_SLAVES=yes
    MTU=9000
    
  4. Reinicia los servicios de herramientas de redes para que se apliquen los cambios:

    service network restart
    
  5. Ejecuta un comando ping para probar tu nueva configuración de MTU:

     ping -c 2 -M do -s 8972 svr001
     PING svr001 (172.16.1.10) 8972(9000) bytes of data.
     8980 bytes from svr001 (172.16.1.10): icmp_seq=1 ttl=64 time=0.153 ms
     8980 bytes from svr001 (172.16.1.10): icmp_seq=2 ttl=64 time=0.151 ms
    
    --- svr001 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 0.151/0.152/0.153/0.001 ms
    

Impacto en la latencia y las copias de seguridad de RMAN de Oracle

Si el proceso de copia de seguridad de Oracle RMAN no está limitado por el parámetro RATE, puede aumentar la capacidad de procesamiento del almacenamiento o las IOPS al límite de rendimiento de un volumen de almacenamiento. Esto hace que se limite la E/S de almacenamiento, lo que aumenta la latencia en el volumen de almacenamiento.

Te recomendamos que implementes el parámetro de canal RATE para limitar la cantidad de ancho de banda o capacidad de procesamiento que puede usar el RMAN de Oracle.

Para obtener más información, consulta la documentación de Oracle: Parámetro del canal RATE

Administración automática de almacenamiento de Oracle

Nuestro equipo de Atención al cliente de Cloud y varios clientes de la solución Bare Metal agregaron Administración automática de almacenamiento (ASM) de Oracle a sus entornos de la solución Bare Metal. Gracias a su experiencia y sabiduría colectivas, recopilamos la siguiente lista de prácticas recomendadas para ayudarte a tener éxito con la instalación de tu propio grupo de discos ASM. Nuestro objetivo es ayudarte a lograr el mejor rendimiento de almacenamiento para el entorno de la solución Bare Metal.

Usa un tamaño de LUN uniforme

El tamaño de LUN que selecciones debe ser representativo de la unidad de crecimiento. ASM funciona mejor con LUN que tienen el mismo tamaño y características de rendimiento similares. Para bases de datos muy grandes, recomendamos un tamaño de LUN de 2 TB para optimizar el rendimiento.

Crear no más de dos grupos de discos de ASM

Debes enviar archivos de datos y una copia de los registros de REDO a un solo grupo de discos DATA. De manera opcional, puedes crear un segundo grupo de discos FRA para almacenar copias de seguridad en el disco y registros de archivos. Cuando almacenas registros REDO en un almacenamiento de alta resiliencia, no necesitas tener dos copias.

Las escrituras de registro de REDO son sensibles a la latencia. Como resultado, solo considera multiplexar registros REDO si el perfil de rendimiento del grupo de discos FRA coincide con el perfil de rendimiento del grupo de discos DATA.

Crea bandas de grupos de discos de ASM en todos los LUN de todos los volúmenes

Cuando crees grupos de discos de ASM, selecciona el grupo de discos en todos los LUN de todos los volúmenes. Si tus LUN pertenecen a un solo volumen, debes incluir todos los LUN en el volumen cuando crees un grupo de discos. Por ejemplo, si un volumen tiene una cantidad X de LUN, debes usar todos los LUN X cuando crees el grupo de discos.

Esta guía también se aplica al uso de varios volúmenes, ya que proporcionamos límites de QoS para los volúmenes. Si usas varios volúmenes para aumentar la capacidad de procesamiento (más de 900 Mbps), debes incluir todos los LUN de cada volumen cuando crees el grupo de discos a fin de lograr el rendimiento requerido.

Usa LUN y volúmenes con las mismas características de rendimiento en el mismo grupo de discos

Si usas varios volúmenes para mejorar la capacidad de procesamiento, usa el mismo tamaño de volumen y características de rendimiento cuando crees grupos de discos de ASM.

No mezcles LUN de volúmenes que tengan características de rendimiento diferentes. Si incluyes LUN y volúmenes con diferentes perfiles de rendimiento en el mismo grupo de discos, los discos que realizan operaciones de E/S pueden tener un límite de rendimiento mucho más bajo y podrían causar aumentos repentinos de latencia.

Por ejemplo, si creas un grupo de discos de ASM con 2 volúmenes desiguales (1 X 16 TiB y 1 X 5 TiB), las operaciones de E/S que realizan los discos en el volumen de 5 TB pueden causar una latencia elevada. El volumen de 5 TiB tiene una capacidad de procesamiento mucho menor y un límite de IOPS, por lo que alcanzaría el nivel de limitación mucho antes del nivel de limitación para el volumen de 16 TiB.

No compartas volúmenes de almacenamiento entre varios clústeres de RAC

Para cada clúster de RAC, aprovisiona un volumen de almacenamiento único. No compartas el mismo volumen de almacenamiento en varios clústeres de RAC. Debido a que los dispositivos de almacenamiento aplican QoS en el nivel del volumen, esta práctica minimiza la posibilidad de vecinos ruidosos que compitan por un solo grupo de IOPS y capacidad de procesamiento.

Por ejemplo, si un solo volumen tiene 8 LUN, no asignes algunos de los LUN a un clúster de base de datos de RAC y los LUN restantes a un clúster de base de datos de RAC diferente. En su lugar, aprovisiona dos volúmenes de almacenamiento independientes y asigna cada volumen a un clúster de RAC independiente y dedicado por volumen.

Conocer las IOPS y la capacidad de procesamiento necesarias antes de crear grupos de discos de ASM

Ten en cuenta las cifras de rendimiento máximo de tu entorno local. Para encontrar esta información, genera informes de AWR durante las horas pico de cargas de trabajo a fin de registrar los valores máximos de capacidad de procesamiento y IOPS de tu sistema. También puedes usar nuestra herramienta de evaluación de bases de datos de Oracle para recopilar las cifras de rendimiento máximo.

Con tus números de rendimiento locales a mano, consulta nuestra tabla de rendimiento de almacenamiento de la solución Bare Metal para calcular la cantidad de almacenamiento que necesitas asignar a tus grupos de discos de ASM y lograr el rendimiento necesario. Cuando tienes requisitos de capacidad de procesamiento mejorada (más de 768 Mbps), puedes crear varios volúmenes y dividir el grupo de discos de ASM en todos los LUN y todos los volúmenes.

Dejar la configuración de rutas múltiples tal como está

No debes cambiar el group_pathing_policy predeterminado en el archivo /etc/multipath.conf. Siempre debes usar el valor predeterminado de group_pathing_policy=group_by_prio para evitar la expulsión de nodos de RAC en caso de fallas en la ruta de almacenamiento.

Para obtener más información sobre cómo dejar intacta la configuración de varias rutas, consulta Cómo evitar cambiar la configuración de varias rutas.

Establece parámetros de configuración importantes para ASM

Si usas Oracle Grid Infrastructure 12.1.0.2 o posterior en Linux, configura ASM con ASMFD o UDEV.

Para versiones anteriores de Oracle Grid Infrastructure, usa ASMLib.

  • Para evitar que Oracle ASM seleccione primero tu dispositivo ASM de ruta única, establece el orden de análisis de la siguiente manera:

    ORACLEASM_SCANORDER="dm"
    ORACLEASM_SCANEXCLUDE="sd"
    

    Requerimos este parámetro de configuración porque el entorno de almacenamiento de la solución Bare Metal usa dispositivos de DM que puedes ver en /proc/partitions.

  • Para verificar si ASMLib está configurado para administrar tus discos de ASM, ejecuta el siguiente comando como usuario raíz:

    /usr/sbin/oracleasm configure | grep SCAN
    

    Si usas ASMLib, el resultado se ve de la siguiente manera:

    ORACLEASM_SCANBOOT=true
    ORACLEASM_SCANORDER="dm"
    ORACLEASM_SCANEXCLUDE="sd"
    ORACLEASM_SCAN_DIRECTORIES=""
    

Crea tu grupo de discos de ASM con redundancia externa

El almacenamiento que proporciona la solución Bare Metal usa NETAPP RAID-DP, que es una forma de RAID 6 que protege los datos incluso si fallan dos discos. Como resultado, te recomendamos que uses la redundancia externa para ASM.

Reinicia los servidores de la solución Bare Metal después de la creación del disco ASM

Después de crear los grupos de discos de ASM, debes reiniciar todos los servidores de la solución Bare Metal en el clúster para asegurarte de que tanto la instancia de ASM como los grupos de discos estén en línea después del reinicio. Sigue este paso proactivo para evitar problemas que puedan ocurrir después de que se compile el clúster de la base de datos en el grupo de discos de ASM.

RAC de Oracle

En esta sección, se explican las prácticas recomendadas para instalar los clústeres de aplicación real (RAC) de Oracle en la solución Bare Metal.

Longitud del nombre del clúster de Oracle Grid Infrastructure

Usa un nombre de clúster que no tenga más de 15 caracteres.

Un nombre de clúster de más de 15 caracteres hace que la secuencia de comandos root.sh falle.

Visualizador de VNC de túnel a través de SSH

El firewall del SO predeterminado del servidor de la solución Bare Metal bloquea los servidores arbitrarios, como el visualizador de VNC. Por lo tanto, usa el túnel de ventana X o del visualizador de VNC a través de SSH:

ssh -L 5901:localhost:5901 bms-host
vncviewer localhost:1

Espacio suficiente para el sistema de archivos raíz

Asegúrate de que el sistema de archivos raíz (/) tenga suficiente espacio libre. Los servidores de la solución Bare Metal vienen con un sistema de archivos raíz de 20 GB, que podría no ser suficiente.

En el servidor de la solución Bare Metal, verifica el tamaño del sistema de archivos raíz “/”. El tamaño predeterminado es de 20 GB, que podría no ser suficiente. Si el tamaño es de 20 GB, auméntalo.

Usa un servidor de nombres como sustituto de Cloud DNS

Si no quieres usar Cloud DNS, instala tu propio servidor de nombres para resolver las direcciones IP del host en el servidor de la solución Bare Metal. La infraestructura de Oracle Grid usa el comando nslookup para obtener el nombre del servidor DNS. El comando nslookup no usa el archivo /etc/hosts.

Lleva a cabo los pasos siguientes:

  1. Instala dnsmasq.

    yum makecache
    yum install dnsmasq
    
  2. Abre el archivo /etc/dnsmasq.conf en modo de edición.

    vi /etc/dnsmasq.conf
    
  3. En el archivo /etc/dnsmasq.conf, agrega las siguientes líneas:

    port=53
    domain-needed
    bogus-priv
    
    strict-order
    expand-hosts
    domain=localdomain
    
    address=/.localdomain/127.0.0.1
    address=//127.0.0.1
    
    listen-address=127.0.0.1
    resolv-file=/etc/dnsmasq-resolv.conf
    
  4. Edita el archivo /etc/dnsmasq-resolv.conf y el archivo /etc/resolv.conf para que contengan solo la siguiente línea:

    nameserver 127.0.0.1
    
  5. Inicia el servicio dnsmasq:

    systemctl restart dnsmasq
    
    systemctl status dnsmasq
    
  6. En ambos nodos, ejecuta el comando nslookup.

    nslookup at-2811641-svr001
    Server:         127.0.0.1
    Address:        127.0.0.1#53
    
    Name:   at-2811641-svr001
    Address: 192.168.1.10
    
    nslookup at-2811641-svr002
    Server:         127.0.0.1
    Address:        127.0.0.1#53
    
    Name:   at-2811641-svr002
    Address: 192.168.1.11
    

Instalar NTP

Cuando instales NTP, asegúrate de que todos los nodos de RAC se sincronicen con la hora del host de salto o de tu servidor NTP interno. Lleva a cabo los pasos siguientes:

  1. Instala NTP.

    yum install ntp
    
  2. Inicia el servicio ntpd.

    systemctl start ntpd
    
  3. En el archivo /etc/ntp.conf, agrega la siguiente línea para sincronizar con el host de bastión, que en este caso es 10.x.x.x. También puedes usar tu servidor NTP interno. En este caso, 192.x.x.x es el servidor de la solución Bare Metal.

    restrict 192.x.x.x mask 255.255.255.0 nomodify notrap
    server 10.x.x.x prefer
    
  4. Para iniciar la sincronización, actualiza el servidor de hora para iniciar la sincronización.

    ntpdate -qu SERVER_NAME
    

Ejecutar la secuencia de comandos raíz en un nodo a la vez

Ejecuta la secuencia de comandos raíz root.sh en un nodo a la vez. Si la ejecución falla en el primer nodo, no continúes con el siguiente nodo.

Resuelve el Localhost.

Debido a que el servidor de la solución Bare Metal no agrega el Localhost al archivo /etc/hosts, resuelve Localhost en 127.0.0.1 de forma manual.

Asegúrate de tener límites de recursos suficientes

Antes de instalar Oracle RAC en el servidor de la solución Bare Metal, asegúrate de que los límites de recursos para los usuarios root y oracle sean suficientes.

Puedes usar el comando ulimit para verificar los límites.

Configura la variable ORACLEASM_SCANORDER

Si usas Oracle ASMLib y, para evitar que Oracle ASM seleccione primero tu dispositivo ASM de ruta única, establece el orden del análisis de la siguiente manera:

ORACLEASM_SCANORDER="dm"
ORACLEASM_SCANEXCLUDE="sd"

Requerimos este parámetro de configuración porque el entorno de almacenamiento de la solución Bare Metal usa dispositivos de DM que puedes ver en el archivo /proc/partitions.

Oracle es una marca registrada de Oracle o sus afiliados.