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

Cuando implementas bases de datos de Oracle en la solución Bare Metal, sabemos que tu objetivo es abrir tu entorno con facilidad y con la menor cantidad de problemas posible. Para ayudarte a conseguir este objetivo, hemos recopilado comentarios de clientes, de nuestros arquitectos de soluciones y del personal de asistencia que implementó 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 inicies tu propio entorno de base de datos de Oracle en la solución Bare Metal.

Implementación de software

Para que la implementación del software de Oracle sea más exitosa, te recomendamos que uses el kit de herramientas de la solución 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 bases de datos de Oracle en un entorno de la solución Bare Metal, consulta la guía del usuario del kit de herramientas.

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 una opción de servidor NTP, física o virtual, que mejor se adapte a tus necesidades.

Cuando tus servidores usan NTP para la sincronización del tiempo, 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 correctamente:

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

Cómo ver el recuento de CPU y los detalles de la memoria de la VM de Oracle

Para ver información sobre un host de VM de Oracle (OVM), incluidos los detalles de la CPU y la 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 encontrar las opciones de activación correctas

Para evitar que el proceso de inicio se cuelgue, siempre configura 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 la configuración predeterminada. En casos excepcionales, es posible que los dispositivos de almacenamiento subyacentes no estén disponibles cuando se reinicie 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 ningún impacto en un sistema operativo. Sin embargo, para aplicar la nueva configuración, debes reiniciar el servidor.

Confirma la configuración del 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 de la shell. Se deben establecer límites de shell para todas las cuentas del sistema operativo que sean propietarias del software de Oracle, incluida la infraestructura de Grid. Oracle recomienda la siguiente configuración para Linux:

Límite Valor flexible Valor fijo
Abrir archivos 1024 65536
Cantidad máxima de procesos de usuario 16384 16384
Tamaño de la pila 10240 32768
Memoria máxima 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

El siguiente resultado muestra la configuración correcta de límite flexible de 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

El siguiente resultado muestra los límites rígidos correctos de shell 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 la shell no está configurado correctamente, modifica las entradas del 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

Evita cambiar la configuración de varios segmentos

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

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

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 se transfieren de un servidor a otro en un entorno de RAC, Oracle recomienda configurar las interfaces de tu servidor con tramas jumbo. Los marcos Jumbo tienen un tamaño de MTU de 9,000 bytes y son lo suficientemente grandes como para admitir tamaños de bloques de base de datos de Oracle de 8,192 bytes.

Para configurar Jumbo Frames en servidores de la solución Bare Metal para Oracle RAC, haz lo siguiente:

  1. Consulta la configuración de tu red privada de la solución Bare Metal para confirmar que se hayan configurado los marcos jumbo:

    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 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 los privilegios a nivel de raíz, agrega MTU=9000 al archivo de configuración de la interfaz de todos los servidores del entorno de la solución Bare Metal que usan tramas 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 los cambios se apliquen:

    service network restart
    
  5. Emite 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 de las copias de seguridad de Oracle RMAN y la latencia

Si el proceso de copia de seguridad de Oracle RMAN no está limitado por el parámetro RATE, puede empujar la capacidad de procesamiento o las IOPS de almacenamiento al límite de rendimiento de un volumen de almacenamiento. Esto hace que se reduzca la limitación de 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 Oracle RMAN.

Para obtener más información, consulta la documentación de Oracle: 23.2.1.4 RATE Channel Parameter.

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 la Administración automática de almacenamiento (ASM) de Oracle a sus entornos de Bare Metal. Gracias a su experiencia y sabiduría colectivas, compilamos la siguiente lista de prácticas recomendadas para ayudarte a tener éxito con la instalación de tu propio grupo de discos de ASM. Nuestro objetivo es ayudarte a lograr el mejor rendimiento del almacenamiento para tu 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.

No crees más de dos grupos de discos de ASM.

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

Las operaciones de escritura de registros de REDO son sensibles a la latencia. Como resultado, solo considera la multiplexación de registros REDO si el perfil de rendimiento del grupo de discos FRA coincide con el perfil de rendimiento del grupo de discos DATA.

Agrupar los grupos de discos de ASM en todas las LUN de todos los volúmenes

Cuando crees grupos de discos de ASM, asegúrate de distribuirlos en todas las LUN de todos los volúmenes. Si tus LUN pertenecen a un solo volumen, debes incluir todas las LUN en el volumen cuando crees un grupo de discos. Por ejemplo, si un volumen tiene X LUN, debes usar todas las X LUN 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 en los volúmenes. Si usas varios volúmenes para aumentar la capacidad de procesamiento (>900 Mbps), debes incluir todos los LUN de cada volumen cuando crees el grupo de discos para 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 las mismas características de rendimiento cuando crees grupos de discos de ASM.

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

Por ejemplo, si creas un grupo de discos ASM con 2 volúmenes disparejos (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 y un techo de IOPS mucho más bajos, por lo que alcanzaría el nivel de limitación mucho antes que el nivel de limitación del 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 a nivel del volumen, esta práctica minimiza la posibilidad de que los vecinos ruidosos compitan por un solo grupo de IOPS y capacidad de procesamiento.

Por ejemplo, si un solo volumen tiene 8 LUN, no asignes algunas de las LUN a un clúster de base de datos de RAC y las LUN restantes a un clúster de base de datos de RAC diferente. En su lugar, aprovisiona dos volúmenes de almacenamiento independientes y asígnales cada uno a un clúster de RAC dedicado y separado por volumen.

Conoce los IOPS y la capacidad de rendimiento necesarios antes de crear grupos de discos de ASM

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

Con tus números de rendimiento en las instalaciones a mano, consulta nuestra tabla de rendimiento de almacenamiento de la solución Bare Metal para calcular la cantidad de almacenamiento que debes asignar a tus grupos de discos ASM y lograr el rendimiento requerido. Cuando tienes requisitos de rendimiento mejorados (>768 Mbps), puedes crear varios volúmenes y distribuir el grupo de discos ASM en todos los LUN y todos los volúmenes.

Deja la configuración de varios caminos 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 acceso de almacenamiento.

Para obtener más detalles sobre cómo dejar intacta la configuración de varios segmentos, consulta Evita cambiar la configuración de varios segmentos.

Configura parámetros importantes de ASM

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

Para versiones anteriores de Oracle Grid Infrastructure, usa ASMLib.

  • Para evitar que la ASM de Oracle seleccione primero tu dispositivo de ASM de ruta única, configura 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 DM que puedes ver en /proc/partitions.

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

    /usr/sbin/oracleasm configure | grep SCAN
    

    Si usas ASMLib, el resultado se verá 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 crear el disco de 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 la instancia de ASM y 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 compila el clúster de bases de datos en el grupo de discos de ASM.

Oracle RAC

En esta sección, se explican las prácticas recomendadas para instalar Oracle Real Application Clusters (RAC) 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 falle la secuencia de comandos root.sh.

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

El firewall predeterminado del SO del servidor de la solución Bare Metal bloquea los servidores arbitrarios, como el visor de VNC. Por lo tanto, crea un túnel de X Window o VNC visualizador 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 de los hosts 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
    

Instala NTP

Cuando instales NTP, asegúrate de que todos los nodos RAC se sincronicen con la hora de tu host de salto o 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 es 10.x.x.x en este caso. También puedes usar tu servidor NTP interno. En este caso, 192.x.x.x es tu 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.

    ntpdate -qu SERVER_NAME
    

Ejecuta 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.

Resuelve el Localhost

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

Asegúrate de que los límites de recursos sean 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 el usuario root y el usuario oracle sean suficientes.

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

Configura la variable ORACLEASM_SCANORDER

Si usas Oracle ASMLib, para evitar que la ASM de Oracle seleccione primero tu dispositivo de ASM de ruta única, configura 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 DM que puedes ver en el archivo /proc/partitions.

Oracle es una marca registrada de Oracle o sus afiliados.