Prácticas recomendadas para Oracle en Solución Bare Metal

Cuando implementas bases de datos de Oracle en Solución Bare Metal, sabemos que tu objetivo es configurar el entorno fácilmente y con el menor número de problemas posible. Para ayudarte a conseguir este objetivo, hemos recogido las opiniones de clientes, arquitectos de soluciones y personal de asistencia que han implementado bases de datos de Oracle en Bare Metal Solution. La siguiente información incluye recomendaciones de estos expertos para ayudarte a tener el mayor éxito posible al configurar 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 lo más exitosa posible, te recomendamos que utilices el kit de herramientas de Bare Metal Solution. El kit de herramientas proporciona varias secuencias de comandos de Ansible y JSON para ayudarte a instalar el software de Oracle en 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 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 hagas lo siguiente.

Validar los servidores NTP

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

Cuando tus servidores usen NTP para sincronizar la hora, usa el comando timedatectl o ntpstat para ver si el servidor está sincronizado con una fuente de hora. En los siguientes ejemplos se muestra el resultado de estos comandos en 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

Ver el número de CPUs y los detalles de la memoria de Oracle VM

Para ver información sobre un host de Oracle VM (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.

Consulta los ajustes de /etc/fstab para ver las opciones de montaje correctas

Para evitar que el proceso de arranque se bloquee, configura siempre los puntos de montaje que no sean raíz (como /u01 y /u02) con la opción de montaje nofail en lugar de los ajustes predeterminados. En casos excepcionales, es posible que los dispositivos de almacenamiento subyacentes no estén disponibles cuando se reinicie un host. Si se define la opción de montaje nofail, el proceso de arranque puede continuar aunque el servidor no pueda ver los dispositivos de almacenamiento.

En el siguiente ejemplo se muestra la configuración recomendada para los puntos de montaje /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 montaje de defaults a nofail sin que afecte al sistema operativo. Sin embargo, para aplicar los nuevos ajustes, debes reiniciar el servidor.

Confirmar la configuración del límite de shell

El kit de herramientas de Bare Metal Solution configura los límites de shell necesarios para configurar Oracle RAC. Puedes omitir esta validación si has usado el kit de herramientas de Bare Metal Solution y no has cambiado los límites del shell. Se deben definir límites de shell para todas las cuentas del sistema operativo que tengan software de Oracle, incluida Grid Infrastructure. Oracle recomienda los siguientes ajustes para Linux:

Límite Valor suave Valor fijo
Abrir archivos 1024 65536
Número máximo de procesos de usuario 16384 16384
Tamaño de la pila 10240 32768
Memoria bloqueada máxima Al menos el 90% de la memoria Al menos el 90% de la memoria

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

ulimit -S -n -u -s -l

En el siguiente resultado se muestran los ajustes correctos del límite de shell flexible 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 de shell, usa el siguiente comando:

ulimit -H -n -u -s -l

El siguiente resultado muestra los límites correctos de envolvente rígido 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 del shell no está configurado correctamente, modifique 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

No cambies la configuración de multipath

Si decide cambiar la configuración de multipath, no configure el atributo path_grouping_policy si usa multipath.conf para crear nombres con alias para los dispositivos. Este cambio anula la política predeterminada definida en la sección de definición de devices.

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

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

Usar tramas gigantes

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

Para configurar tramas jumbo en servidores de Bare Metal Solution para Oracle RAC, sigue estos pasos:

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

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

    Ejemplo de salida:

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

    ip link show | grep mtu
    

    Ejemplo de salida:

    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 raíz, añade MTU=9000 al archivo de configuración de la interfaz de todos los servidores del entorno de la solución Bare Metal que usen tramas jumbo. Puedes encontrar el archivo en /etc/sysconfig/network-scripts/ifcfg-interface_name.

    Ejemplo de salida:

    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 red para que los cambios surtan efecto:

    service network restart
    
  5. Ejecuta el comando ping para probar la 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
    

Copias de seguridad de Oracle RMAN e impacto en la latencia

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

Le recomendamos que implemente el parámetro de canal RATE para limitar la cantidad de ancho de banda o de rendimiento que puede usar Oracle RMAN.

Para obtener más información, consulta la documentación de Oracle sobre el parámetro de canal RATE (23.2.1.4).

Gestión de almacenamiento automático de Oracle

Nuestro equipo de Atención al Cliente de Cloud y varios clientes de Solución Bare Metal han añadido Oracle Automatic Storage Management (ASM) a sus entornos de Solución Bare Metal. Gracias a su experiencia y conocimientos, hemos recopilado la siguiente lista de prácticas recomendadas para ayudarte a instalar correctamente tu grupo de discos ASM. Nuestro objetivo es ayudarte a conseguir el mejor rendimiento de almacenamiento para tu entorno de la solución Bare Metal.

Usar 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 LUNs que tienen el mismo tamaño y características de rendimiento similares. En el caso de bases de datos muy grandes, recomendamos un tamaño de LUN de 2 TB para optimizar el rendimiento.

No cree más de dos grupos de discos de ASM

Debe enviar los archivos de datos y una copia de los registros REDO a un solo grupo de discos DATA. También puedes crear un segundo grupo de discos FRA para almacenar copias de seguridad en disco y registros de archivo. Si almacenas registros REDO en un almacenamiento de alta resiliencia, no necesitas tener dos copias.

Las escrituras de registros REDO son sensibles a la latencia. Por lo tanto, solo debes tener en cuenta los registros de multiplexación REDO si el perfil de rendimiento del grupo de discos FRA coincide con el perfil de rendimiento del grupo de discos DATA.

Distribuye los grupos de discos de ASM de Stripe en todos los LUNs de todos los volúmenes.

Cuando cree grupos de discos de ASM, distribuya el grupo de discos en todos los LUNs de todos los volúmenes. Si tus LUNs pertenecen a un solo volumen, debes incluir todos los LUNs del volumen al crear un grupo de discos. Por ejemplo, si un volumen tiene X LUNs, debes usar todos los X LUNs al crear el grupo de discos.

Estas directrices también se aplican al uso de varios volúmenes, ya que proporcionamos límites de calidad del servicio en los volúmenes. Si usas varios volúmenes para aumentar el rendimiento (>900 Mbps), debes incluir todos los LUNs de cada volumen al crear el grupo de discos para conseguir el rendimiento necesario.

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

Si usa varios volúmenes para mejorar el rendimiento, utilice el mismo tamaño de volumen y las mismas características de rendimiento al crear grupos de discos de ASM.

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

Por ejemplo, si crea un grupo de discos de ASM con dos volúmenes desiguales (1 de 16 TiB y otro de 5 TiB), las operaciones de E/S realizadas por los discos del volumen de 5 TiB pueden provocar una latencia elevada. El volumen de 5 TiB tiene un rendimiento y un límite de IOPS mucho más bajos, por lo que alcanzaría el nivel de limitación mucho antes que el volumen de 16 TiB.

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

Aprovisiona un volumen de almacenamiento único para cada clúster de RAC. No compartas el mismo volumen de almacenamiento entre varios clústeres de RAC. Como los dispositivos de almacenamiento aplican la calidad del servicio a nivel de volumen, esta práctica minimiza la probabilidad de que los vecinos ruidosos compitan por un único grupo de IOPS y rendimiento.

Por ejemplo, si un volumen tiene 8 LUNs, no asignes algunos de los LUNs a un clúster de base de datos RAC y los LUNs restantes a otro clúster de base de datos RAC. En su lugar, aprovisione dos volúmenes de almacenamiento independientes y asigne cada volumen a un clúster RAC independiente y específico por volumen.

Conocer la capacidad de IOPS y de procesamiento necesaria 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 AWR durante las horas de mayor carga de trabajo para registrar los valores máximos de IOPS y de rendimiento de tu sistema. También puede usar nuestra herramienta de evaluación de Oracle Database para obtener las cifras de rendimiento máximo.

Con las cifras de rendimiento locales a mano, consulta la tabla de rendimiento del almacenamiento de Bare Metal Solution para calcular la cantidad de almacenamiento que debes asignar a tus grupos de discos de ASM y conseguir el rendimiento necesario. Si tienes requisitos de rendimiento mejorado (>768 Mbps), puedes crear varios volúmenes y combinar el grupo de discos de ASM en todos los LUNs y volúmenes.

Dejar la configuración de multipath tal cual

No debes cambiar el valor predeterminado group_pathing_policy del archivo /etc/multipath.conf. Siempre debes usar el valor predeterminado de group_pathing_policy=group_by_prio para evitar que se expulse el nodo RAC en caso de que se produzcan errores en la ruta de almacenamiento.

Para obtener más información sobre cómo dejar intacta la configuración de multipath, consulta Evitar cambiar la configuración de multipath.

Configurar ajustes 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.

En versiones anteriores de Oracle Grid Infrastructure, usa ASMLib.

  • Para evitar que Oracle ASM seleccione primero tu dispositivo ASM de una sola ruta, define el orden de análisis de la siguiente manera:

    ORACLEASM_SCANORDER="dm"
    ORACLEASM_SCANEXCLUDE="sd"
    

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

  • Para comprobar si ASMLib está configurado para gestionar tus discos ASM, ejecuta el siguiente comando como usuario root:

    /usr/sbin/oracleasm configure | grep SCAN
    

    Si usas ASMLib, el resultado será similar al siguiente:

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

Crea tu grupo de discos de ASM con redundancia externa

El almacenamiento proporcionado por Bare Metal Solution usa NETAPP RAID-DP, que es una forma de RAID 6 que protege los datos incluso si fallan dos discos. Por lo tanto, te recomendamos que uses la redundancia externa para ASM.

Reiniciar los servidores de 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 Bare Metal Solution del clúster para asegurarte de que tanto la instancia de ASM como los grupos de discos se activen después del reinicio. Sigue este paso proactivo para evitar problemas que puedan surgir después de crear el clúster de base 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 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.

Si el nombre de un clúster tiene más de 15 caracteres, se produce un error en la secuencia de comandos root.sh.

Crear un túnel para VNC Viewer a través de SSH

El firewall del SO predeterminado del servidor de Solución Bare Metal bloquea los servidores arbitrarios, como VNC Viewer. Por lo tanto, puedes crear un túnel para X Window o VNC Viewer 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 Bare Metal Solution incluyen un sistema de archivos raíz de 20 GB, que puede no ser suficiente.

En tu servidor de soluciones Bare Metal, comprueba el tamaño del sistema de archivos raíz "/". El tamaño predeterminado es de 20 GB, que puede que no sea suficiente. Si el tamaño es de 20 GB, auméntalo.

Usar 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 Bare Metal Solution. Oracle Grid Infrastructure usa el comando nslookup para obtener el nombre del servidor DNS. El comando nslookup no usa el archivo /etc/hosts.

Sigue estos pasos:

  1. Instala dnsmasq.

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

    vi /etc/dnsmasq.conf
    
  3. En el archivo /etc/dnsmasq.conf, añade 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 los archivos /etc/dnsmasq-resolv.conf y /etc/resolv.conf para que solo contengan 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 de tu jump host o de tu servidor NTP interno. Sigue estos pasos:

  1. Instala NTP.

    yum install ntp
    
  2. Inicia el servicio ntpd.

    systemctl start ntpd
    
  3. En el archivo /etc/ntp.conf, añade la siguiente línea para sincronizarla con el host bastion, 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 tu servidor de 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 que empiece a sincronizarse.

    ntpdate -qu SERVER_NAME
    

Ejecutar un script raíz en un nodo a la vez

Ejecuta la secuencia de comandos raíz root.sh en un nodo cada vez. Si la ejecución falla en el primer nodo, no pases al siguiente.

Resolver el Localhost

Como el servidor de la solución Bare Metal no añade Localhost al archivo /etc/hosts, resuelve manualmente Localhost a 127.0.0.1.

Asegúrate de que los límites de recursos sean suficientes

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

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

Definir la variable ORACLEASM_SCANORDER

Si usas Oracle ASMLib, para evitar que Oracle ASM seleccione primero tu dispositivo ASM de una sola ruta, define el orden de análisis de la siguiente manera:

ORACLEASM_SCANORDER="dm"
ORACLEASM_SCANEXCLUDE="sd"

Requerimos este ajuste 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 y sus afiliados.