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 logiciel

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 temporelle, utilisez la commande timedatectl ou ntpstat pour vérifier si le serveur est synchronisé avec une source d'horloge. Les exemples suivants montrent le résultat de ces commandes pour un serveur qui se synchronise correctement:

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 de la VM Oracle

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

/usr/sbin/xm info

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

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 montre les paramètres corrects de limitation flexible de shell 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 montre les limites de shell correctes 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 chemin multiple, ne configurez pas l'attribut path_grouping_policy si vous utilisez multipath.conf pour créer des noms d'alias pour les 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 lors de leur transfert 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 MTU de 9 000 octets et sont suffisamment grandes pour prendre en charge les 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é 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. À l'aide des droits d'accès 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 trames géantes. Vous trouverez le fichier à l'emplacement /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 appliquées:

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

Si le processus de sauvegarde Oracle RMAN n'est pas limité par le paramètre RATE, il peut pousser le débit de stockage ou les IOPS à la limite de performances d'un volume de stockage. Les E/S de stockage sont ainsi limitées, 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 de débit que Oracle RMAN peut utiliser.

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

Gestion automatique de l'espace de stockage (ASM) Oracle

Notre équipe d'assistance client Cloud et plusieurs clients de la solution Bare Metal ont ajouté la gestion automatique de l'espace de stockage (ASM) d'Oracle à leurs environnements Bare Metal. Grâce à leur expérience et à leur sagesse collectives, nous avons rassemblé la liste de bonnes pratiques suivante pour vous aider à réussir l'installation de votre propre groupe de disques ASM. Notre objectif est de vous aider à obtenir les meilleures performances de stockage pour votre environnement de solution Bare Metal.

Utiliser une taille de LUN uniforme

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

Ne créez pas plus de deux groupes de disques ASM.

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

Les écritures de journaux REDO sont sensibles à la latence. Par conséquent, ne considérez le multiplexage des journaux REDO que si le profil de performances du groupe de disques FRA correspond au profil de performances du groupe de disques DATA.

Aligner les groupes de disques ASM sur tous les LUN de tous les volumes

Lorsque vous créez des groupes de disques ASM, étalez-les sur tous les LUN de tous les volumes. Si vos LUN appartiennent à un seul volume, vous devez inclure tous les LUN du volume lorsque vous créez un groupe de disques. Par exemple, si un volume comporte un nombre de LUN 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 fournissons des limites de QoS sur 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 obtenir les performances requises.

Utiliser des LUN et des volumes présentant 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 avoir un plafond de performances beaucoup plus faible et peuvent provoquer des pics de latence.

Par exemple, si vous créez un groupe de disques ASM avec deux volumes inégaux (1 x 16 To et 1 x 5 To), 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 atteindrait donc le niveau de limitation bien avant le niveau de limitation du volume de 16 Tio.

Ne partagez pas 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 entre plusieurs clusters RAC. Étant donné que les appareils de stockage appliquent le QoS au niveau du volume, cette pratique réduit les risques de voisins bruyants en concurrence pour un seul pool d'IOPS et de débit.

Par exemple, si un volume comporte huit LUN, n'attribuez pas certains des LUN à un cluster de base de données RAC et les LUN restants à un autre cluster de base de données RAC. À la place, provisionnez deux volumes de stockage distincts et attribuez chaque volume à un cluster RAC dédié et distinct.

Connaître les IOPS et la capacité de débit requis avant de créer des groupes de disques ASM

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

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

Laisser la configuration multipath telle quelle

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

Pour en savoir plus sur la conservation de la configuration multipath, consultez la section Éviter de modifier vos paramètres de chemin multiple.

Configurer des paramètres importants pour ASM

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

Pour les versions antérieures 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"
    

    Nous avons besoin de ce paramètre, 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

Le 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. C'est pourquoi nous vous recommandons d'utiliser une redondance externe pour ASM.

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

Après avoir créé vos groupes de disques ASM, vous devez redémarrer tous les serveurs solution Bare Metal du cluster pour vous assurer que l'instance ASM et les groupes de disques sont en ligne après le redémarrage. Suivez cette étape proactive pour éviter les problèmes pouvant 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

Le nom du cluster ne doit pas dépasser 15 caractères.

Si le nom du cluster est plus long que 15 caractères, le script root.sh échoue.

Tunneliser le VNC Viewer via SSH

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

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

Espace suffisant pour le système de fichiers racine

Assurez-vous que le système de fichiers racine (/) dispose de suffisamment d'espace libre. Les serveurs de la solution Bare Metal sont livrés avec 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 à la place de Cloud DNS

Si vous ne souhaitez pas utiliser Cloud DNS, installez votre propre serveur de noms pour résoudre les adresses IP des hôtes sur le serveur de la solution Bare Metal. L'infrastructure Oracle Grid 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 de saut 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 synchroniser 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 Localhost au fichier /etc/hosts, résolvez manuellement Localhost en 127.0.0.1.

Assurer 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 utiliser la commande ulimit pour vérifier les limites.

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"

Nous avons besoin de ce paramètre, car l'environnement de stockage de la solution Bare Metal utilise des appareils 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.