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:
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
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
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
Reinicia los servicios de red para que los cambios surtan efecto:
service network restart
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
- Crea un máximo de dos grupos de discos de ASM
- Distribuir grupos de discos de ASM de Stripe en todas las LUNs de todos los volúmenes
- Usa LUNs y volúmenes con las mismas características de rendimiento en el mismo grupo de discos
- No compartas volúmenes de almacenamiento entre varios clústeres de RAC
- Conocer la capacidad de IOPS y de procesamiento necesaria antes de crear grupos de discos de ASM
- Dejar la configuración de multipath tal cual
- Configurar ajustes importantes para ASM
- Crear un grupo de discos ASM con redundancia externa
- Reiniciar los servidores de la solución Bare Metal después de crear el disco de ASM
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:
Instala
dnsmasq
.yum makecache yum install dnsmasq
Abre el archivo
/etc/dnsmasq.conf
en el modo de edición.vi /etc/dnsmasq.conf
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
Edita los archivos
/etc/dnsmasq-resolv.conf
y/etc/resolv.conf
para que solo contengan la siguiente línea:nameserver 127.0.0.1
Inicia el servicio
dnsmasq
:systemctl restart dnsmasq systemctl status dnsmasq
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:
Instala NTP.
yum install ntp
Inicia el servicio
ntpd
.systemctl start ntpd
En el archivo
/etc/ntp.conf
, añade la siguiente línea para sincronizarla con el host bastion, que en este caso es10.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
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.