Bonnes pratiques pour Oracle sur solution Bare Metal

Lorsque vous mettez en œuvre des bases de données Oracle sur solution Bare Metal, nous savons que votre objectif est de déployer votre environnement facilement et avec le moins de problèmes possible. Pour vous aider à atteindre cet objectif, nous avons recueilli les commentaires de nos clients, de nos architectes de solutions et de notre personnel d'assistance ayant travaillé avec des bases de données Oracle sur solution Bare Metal. Les informations suivantes présentent les recommandations de ces experts pour vous aider à réussir dans la création de votre propre environnement de base de données Oracle sur solution Bare Metal.

Déploiement de logiciels

Pour un déploiement logiciel Oracle réussi, nous vous recommandons d'utiliser le kit de solution Bare Metal. Le kit fournit plusieurs scripts Ansible et JSON pour vous aider à effectuer l'installation logicielle Oracle sur solution Bare Metal. Pour en savoir plus sur le kit de solution Bare Metal et découvrir comment installer des bases de données Oracle dans un environnement de solution Bare Metal, consultez le guide de l'utilisateur du kit.

Système d'exploitation

Lorsque vous configurez votre système d'exploitation sur un serveur de solution Bare Metal, nous vous recommandons d'effectuer les actions suivantes.

Valider vos serveurs NTP

Tous les serveurs de solution Bare Metal doivent être synchronisés avec une source d'horloge. Sélectionnez l'option de serveur NTP, physique ou virtuel, qui répond le mieux à vos besoins.

Lorsque vos serveurs utilisent NTP pour la synchronisation de l'heure, utilisez la commande timedatectl ou ntpstat pour vérifier si le serveur est synchronisé avec une source d'heure. Les exemples suivants montrent le résultat de ces commandes pour un serveur qui se synchronise avec succès:

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

Afficher le nombre de processeurs et les détails de la mémoire des VM Oracle

Pour afficher des informations sur un hôte de VM Oracle (OVM), y compris des détails sur le processeur et la mémoire, exécutez la commande xm info. Exemple :

/usr/sbin/xm info

Pour en savoir plus, consultez la documentation Oracle sur l'affichage des informations sur les hôtes.

Vérifiez vos paramètres /etc/fstab pour connaître les options d'installation appropriées.

Pour éviter le blocage du processus de démarrage, configurez toujours les points d'installation non racine que vous créez (tels que /u01 et /u02) avec l'option d'installation nofail plutôt que les paramètres par défaut. Dans de rares cas, les périphériques de stockage sous-jacents peuvent ne pas être disponibles lorsqu'un hôte redémarre. Définir l'option d'installation nofail permet de poursuivre le processus de démarrage lorsque le serveur ne peut pas afficher les périphériques de stockage.

L'exemple suivant montre les paramètres recommandés pour les points d'installation /u01 et /u02 dans le fichier /etc/fstab :

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

Vous pouvez modifier l'option d'installation de defaults à nofail sans aucun impact sur un système opérationnel. Toutefois, pour appliquer les nouveaux paramètres, vous devez redémarrer le serveur.

Confirmer les paramètres de limitation de shell

La boîte à outils de la solution Bare Metal configure les limitations de shell nécessaires à la configuration d'Oracle RAC. Vous pouvez ignorer cette validation si vous avez utilisé le kit de solution Bare Metal et que vous n'avez pas modifié les limitations de shell. Des limitations de shell doivent être définies pour tous les comptes de système d'exploitation possédant un logiciel Oracle, y compris Grid Infrastructure. Oracle recommande les paramètres suivants pour Linux :

Limite Valeur flexible Valeur stricte
Ouvrir les fichiers 1 024 65 536
Nombre maximal de processus utilisateur 16 384 16 384
Taille de la pile 10240 32 768
Mémoire maximale verrouillée Au moins 90 % de la mémoire Au moins 90 % de la mémoire

Utilisez la commande ulimit pour vérifier les limitations flexibles et strictes de shell. Par exemple, saisissez la commande suivante pour vérifier la limitation flexible de shell :

ulimit -S -n -u -s -l

Le résultat suivant présente les paramètres de limite soft shell corrects pour un système disposant de 384 Go de mémoire:

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

Pour vérifier les limitations strictes du shell, utilisez la commande suivante :

ulimit -H -n -u -s -l

Le résultat suivant présente les limites correctes du shell matériel pour un système disposant de 384 Go de mémoire:

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

Si l'une des limitations de shell n'est pas définie correctement, modifiez les entrées dans le fichier /etc/security/limits.conf, comme indiqué dans l'exemple suivant :

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

Éviter de modifier vos paramètres de chemin multiple

Si vous choisissez de modifier les paramètres de multichemin, ne configurez pas l'attribut path_grouping_policy si vous utilisez multipath.conf pour créer des alias pour les noms d'appareils. Une telle modification remplace la stratégie par défaut établie dans la section de définition devices.

En situation normale, la commande multipath -ll doit afficher un état semblable à l'exemple suivant. Chaque appareil inclut deux chemins d'accès actifs et prêts à l'emploi.

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

Utiliser des trames géantes

Pour éviter la fragmentation des paquets lorsqu'ils transitent d'un serveur à un autre dans un environnement RAC, Oracle recommande de configurer les interfaces de votre serveur avec des trames géantes. Les trames géantes ont une taille de MTU de 9 000 octets et sont suffisamment grandes pour prendre en charge des tailles de bloc de base de données Oracle de 8 192 octets.

Pour configurer des trames géantes sur des serveurs de solution Bare Metal pour Oracle RAC:

  1. Affichez les paramètres de votre réseau privé de solution Bare Metal pour vérifier que les trames géantes ont été configurées:

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

    Exemple de résultat :

    jumboFramesEnabled: true
    
  2. Identifiez les interfaces réseau et leur taille (mtu) :

    ip link show | grep mtu
    

    Exemple de résultat :

    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. En appliquant des droits au niveau racine, ajoutez MTU=9000 au fichier de configuration de l'interface pour tous les serveurs de l'environnement de solution Bare Metal qui utilisent des cadres géants. Le fichier se trouve à l'adresse /etc/sysconfig/network-scripts/ifcfg-interface_name.

    Exemple de résultat :

    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. Redémarrez les services réseau pour que les modifications soient prises en compte:

    service network restart
    
  5. Exécutez une commande ping pour tester votre nouvelle configuration 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
    

Sauvegardes Oracle RMAN et impact de la latence

Si le processus de sauvegarde RMAN d'Oracle n'est pas limité par le paramètre RATE, il peut pousser le débit de stockage ou les IOPS à la limite de performances pour un volume de stockage. Cela entraîne une limitation des E/S de stockage, ce qui augmente la latence sur le volume de stockage.

Nous vous recommandons d'implémenter le paramètre de canal RATE pour limiter la quantité de bande passante ou le débit que l'ARM Oracle peut utiliser.

Pour en savoir plus, consultez la documentation Oracle: 23.2.1.4 Paramètre de canal RATE

Gestion automatique de l'espace de stockage avec Oracle

Notre équipe Cloud Customer Care et plusieurs clients de la solution Bare Metal ont ajouté la gestion automatique de l'espace de stockage (ASM) d'Oracle à leurs environnements de solution Bare Metal. Grâce à leur expérience collective et à leur sagesse, nous avons dressé la liste suivante de bonnes pratiques pour vous aider à installer avec succès votre propre groupe de disques ASM. Notre objectif est de vous aider à optimiser les performances de stockage pour votre environnement de solution Bare Metal.

Utiliser une taille de LUN uniforme

La taille du LUN que vous sélectionnez doit être représentative de l'unité de croissance. ASM fonctionne mieux avec des LUN de taille égale et de caractéristiques de performances similaires. Pour les bases de données très volumineuses, nous recommandons une taille de LUN de 2 To afin d'optimiser les performances.

Créer au maximum deux groupes de disques ASM

Vous devez envoyer les fichiers de données et une copie des journaux REDO à un seul groupe de disques DATA. Vous pouvez éventuellement créer un deuxième groupe de disques FRA pour stocker les sauvegardes sur disque et les journaux d'archive. Lorsque vous stockez des journaux REDO sur un espace de stockage hautement résilient, vous n'avez pas besoin d'avoir deux copies.

Les écritures de journaux REDO sont sensibles à la latence. Par conséquent, n'envisagez de multiplexer les journaux REDO que si le profil de performances du groupe de disques FRA correspond à celui du groupe de disques DATA.

Groupes de disques ASM Stripe sur tous les LUN de tous les volumes

Lorsque vous créez un groupe de disques ASM, répartissez-le sur tous les LUN de tous les volumes. Si vos LUN appartiennent à un seul volume, vous devez tous les inclure dans le volume lorsque vous créez un groupe de disques. Par exemple, si un volume possède un nombre de LUN de X, vous devez utiliser tous les LUN X lorsque vous créez le groupe de disques.

Ces conseils s'appliquent également à l'utilisation de plusieurs volumes, car nous limitons la qualité de service (QoS) pour les volumes. Si vous utilisez plusieurs volumes pour augmenter le débit (> 900 Mbit/s), vous devez inclure tous les LUN de chaque volume lorsque vous créez le groupe de disques pour atteindre les performances requises.

Utiliser des LUN et des volumes avec les mêmes caractéristiques de performances dans le même groupe de disques

Si vous utilisez plusieurs volumes pour améliorer le débit, utilisez la même taille de volume et les mêmes caractéristiques de performances lorsque vous créez des groupes de disques ASM.

Ne mélangez pas les LUN de volumes présentant des caractéristiques de performances différentes. Si vous incluez des LUN et des volumes avec des profils de performances différents dans le même groupe de disques, les disques qui effectuent des opérations d'E/S peuvent présenter un plafond de performances beaucoup plus faible et entraîner des pics de latence.

Par exemple, si vous créez un groupe de disques ASM avec deux volumes inégals (1 x 16 Tio et 1 x 5 Tio), les opérations d'E/S effectuées par les disques du volume de 5 To peuvent entraîner une latence élevée. Le volume de 5 Tio a un débit et un plafond d'IOPS beaucoup plus faibles. Il devrait donc atteindre le niveau de limitation bien avant le niveau de limitation du volume de 16 Tio.

Ne pas partager les volumes de stockage entre plusieurs clusters RAC

Pour chaque cluster RAC, provisionnez un volume de stockage unique. Ne partagez pas le même volume de stockage sur plusieurs clusters RAC. Étant donné que les appareils de stockage appliquent la QoS au niveau du volume, cette pratique réduit le risque que des voisins bruyants se concurrencent pour un seul pool d'IOPS et de débit.

Par exemple, si un seul volume comporte huit LUN, n'attribuez pas certains LUN à un cluster de base de données RAC et les LUN restants à un autre cluster de base de données RAC. Provisionnez plutôt deux volumes de stockage distincts et attribuez chaque volume à un cluster RAC dédié distinct par volume.

Déterminez les IOPS et la capacité de débit requises avant de créer des groupes de disques ASM

Tenez compte des performances maximales de votre environnement sur site. Pour obtenir ces informations, générez des rapports AWR pendant les heures de pointe de vos charges de travail afin d'enregistrer les valeurs maximales d'IOPS et de débit de votre système. Vous pouvez également utiliser notre outil d'évaluation de bases de données Oracle pour recueillir les chiffres de vos performances optimales.

Une fois vos performances sur site à portée de main, consultez le tableau des performances de stockage de notre solution Bare Metal pour calculer la quantité de stockage que vous devez allouer à vos groupes de disques ASM et obtenir les performances requises. Lorsque vous avez des exigences de débit améliorées (>768 Mbit/s), vous pouvez créer plusieurs volumes et répartir le groupe de disques ASM sur tous les LUN et tous les volumes.

Laisser la configuration multi-chemin telle quelle

Vous ne devez pas modifier la valeur par défaut group_pathing_policy dans le fichier /etc/multipath.conf. Vous devez toujours utiliser la valeur par défaut de group_pathing_policy=group_by_prio pour éviter l'éviction de nœuds RAC en cas d'échec du chemin de stockage.

Pour savoir comment conserver la configuration multi-chemin intacte, consultez Éviter de modifier vos paramètres multi-chemins.

Configurer les paramètres importants pour ASM

Si vous utilisez Oracle Grid Infrastructure 12.1.0.2 ou une version ultérieure sous Linux, configurez ASM avec ASMFD ou UDEV.

Pour les versions précédentes d'Oracle Grid Infrastructure, utilisez ASMLib.

  • Pour empêcher Oracle ASM de sélectionner d'abord votre appareil ASM à chemin unique, définissez l'ordre d'analyse comme suit:

    ORACLEASM_SCANORDER="dm"
    ORACLEASM_SCANEXCLUDE="sd"
    

    Ce paramètre est obligatoire, car l'environnement de stockage de la solution Bare Metal utilise des appareils DM que vous pouvez afficher dans /proc/partitions.

  • Pour vérifier si ASMLib est configuré pour gérer vos disques ASM, exécutez la commande suivante en tant qu'utilisateur racine:

    /usr/sbin/oracleasm configure | grep SCAN
    

    Si vous utilisez ASMLib, le résultat se présente comme suit:

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

Créer votre groupe de disques ASM avec redondance externe

L'espace de stockage fourni par la solution Bare Metal utilise NETAPP RAID-DP, une forme de RAID 6 qui protège les données même en cas de défaillance de deux disques. Par conséquent, nous vous recommandons d'utiliser une redondance externe pour ASM.

Redémarrer vos serveurs de solution Bare Metal après la création du disque ASM

Après avoir créé vos groupes de disques ASM, vous devez redémarrer tous les serveurs de solution Bare Metal du cluster pour vous assurer que l'instance ASM et les groupes de disques sont mis en ligne après le redémarrage. Suivez cette étape proactive afin d'éviter les problèmes qui pourraient survenir après la création du cluster de base de données sur le groupe de disques ASM.

Oracle RAC

Cette section décrit les bonnes pratiques à suivre lors de l'installation d'Oracle Real Application Clusters (RAC) sur une solution Bare Metal.

Longueur du nom du cluster Oracle Grid Infrastructure

Utilisez un nom de cluster ne comportant pas plus de 15 caractères.

Un nom de cluster de plus de 15 caractères entraîne l'échec du script root.sh.

Lecteur VNC de tunnel via SSH

Les serveurs arbitraires, tels que VNC Viewer, sont bloqués par le pare-feu de l'OS par défaut du serveur de la solution Bare Metal. Par conséquent, tunnelisez X Window ou VNC Lecteur via SSH:

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

suffisamment d'espace pour le système de fichiers racine ;

Assurez-vous que le système de fichiers racine (/) dispose d'un espace suffisant. Les serveurs de la solution Bare Metal sont dotés d'un système de fichiers racine de 20 Go, ce qui peut ne pas être suffisant.

Sur votre serveur de solution Bare Metal, vérifiez la taille du système de fichiers racine "/". La taille par défaut est de 20 Go, ce qui peut ne pas être suffisant. Si la taille est de 20 Go, augmentez-la.

Utiliser un serveur de noms en remplacement de Cloud DNS

Si vous ne souhaitez pas utiliser Cloud DNS, installez votre propre serveur de noms pour résoudre les adresses IP d'hôte sur le serveur de la solution Bare Metal. Oracle Grid Infrastructure utilise la commande nslookup pour obtenir le nom du serveur DNS. La commande nslookup n'utilise pas le fichier /etc/hosts.

Procédez comme suit :

  1. Installez dnsmasq.

    yum makecache
    yum install dnsmasq
    
  2. Ouvrez le fichier /etc/dnsmasq.conf en mode Édition.

    vi /etc/dnsmasq.conf
    
  3. Dans le fichier /etc/dnsmasq.conf, ajoutez les lignes suivantes:

    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. Modifiez les fichiers /etc/dnsmasq-resolv.conf et /etc/resolv.conf pour qu'ils ne contiennent que la ligne suivante:

    nameserver 127.0.0.1
    
  5. Démarrez le service dnsmasq:

    systemctl restart dnsmasq
    
    systemctl status dnsmasq
    
  6. Sur les deux nœuds, exécutez la commande 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
    

Installer NTP

Lorsque vous installez NTP, assurez-vous que tous les nœuds RAC se synchronisent avec l'heure de votre hôte jump ou de votre serveur NTP interne. Procédez comme suit :

  1. Installer NTP

    yum install ntp
    
  2. Démarrez le service ntpd.

    systemctl start ntpd
    
  3. Dans le fichier /etc/ntp.conf, ajoutez la ligne suivante pour effectuer la synchronisation avec l'hôte bastion, qui est 10.x.x.x dans ce cas. Vous pouvez également utiliser votre serveur NTP interne. Dans ce cas, 192.x.x.x correspond à votre serveur de solution Bare Metal.

    restrict 192.x.x.x mask 255.255.255.0 nomodify notrap
    server 10.x.x.x prefer
    
  4. Pour lancer la synchronisation, mettez à jour le serveur de temps.

    ntpdate -qu SERVER_NAME
    

Exécuter le script racine sur un nœud à la fois

Exécutez le script racine root.sh sur un nœud à la fois. Si l'exécution échoue sur le premier nœud, ne passez pas au nœud suivant.

Résoudre le Localhost

Étant donné que le serveur de solution Bare Metal n'ajoute pas le Localhost au fichier /etc/hosts, résolvez manuellement Localhost en 127.0.0.1.

Garantir des limites de ressources suffisantes

Avant d'installer Oracle RAC sur le serveur de la solution Bare Metal, assurez-vous que les limites de ressources pour l'utilisateur root et l'utilisateur oracle sont suffisantes.

Vous pouvez vérifier les limites à l'aide de la commande ulimit.

Définir la variable ORACLEASM_SCANORDER

Si vous utilisez Oracle ASMLib, pour empêcher Oracle ASM de sélectionner d'abord votre appareil ASM à chemin unique, définissez l'ordre d'analyse comme suit:

ORACLEASM_SCANORDER="dm"
ORACLEASM_SCANEXCLUDE="sd"

Ce paramètre est obligatoire, car l'environnement de stockage de la solution Bare Metal utilise des périphériques DM que vous pouvez afficher dans le fichier /proc/partitions.

Oracle est une marque déposée d'Oracle et/ou ses sociétés affiliées.