Best practice per Oracle su Bare Metal Solution

Durante l'implementazione dei database Oracle su Bare Metal Solution, sappiamo che il tuo obiettivo è creare il tuo ambiente in modo semplice e con il minor numero possibile di problemi. Per aiutarti ad avere successo in questo obiettivo, abbiamo raccolto il feedback dei clienti, dei nostri Solutions Architect e del personale di assistenza che hanno implementato i database Oracle su Bare Metal Solution. Le seguenti informazioni forniscono suggerimenti appresi da questi esperti per aiutarti a ottenere il massimo risultato quando esegui il deployment del tuo ambiente di database Oracle su Bare Metal Solution.

Deployment del software

Per il successo del deployment del software Oracle, ti consigliamo di utilizzare il Bare Metal Solution Toolkit. Il toolkit fornisce diversi script Ansible e JSON per aiutarti a eseguire l'installazione del software Oracle su Bare Metal Solution. Per ulteriori informazioni sul toolkit per le soluzioni Bare Metal e su come installare i database Oracle in un ambiente Bare Metal Solution, consulta la guida dell'utente del toolkit.

Sistema operativo

Durante la configurazione del sistema operativo su un server Bare Metal Solution, ti consigliamo di eseguire le seguenti azioni.

Convalida i server NTP

Tutti i server Bare Metal Solution devono essere sincronizzati con un'origine ora. Seleziona l'opzione di server NTP, fisica o virtuale, che meglio soddisfa le tue esigenze.

Quando i server utilizzano NTP per la sincronizzazione dell'ora, utilizza il comando timedatectl o ntpstat per verificare se il server è sincronizzato con un'origine dell'ora. Gli esempi seguenti mostrano l'output di questi comandi per un server che si sincronizza correttamente:

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

Visualizza dettagli su conteggio e memoria di CPU Oracle VM

Per visualizzare le informazioni su un host VM Oracle (OVM), inclusi i dettagli di CPU e memoria, utilizza il comando xm info. Ad esempio:

/usr/sbin/xm info

Per maggiori informazioni, consulta la documentazione di Oracle sulla visualizzazione delle informazioni sull'host

Controlla le impostazioni di /etc/fstab per le opzioni di montaggio corrette

Per impedire il blocco del processo di avvio, configura sempre i punti di montaggio non principali che crei (ad esempio /u01 e /u02) con l'opzione di montaggio nofail al posto delle impostazioni predefinite. In rari casi, i dispositivi di archiviazione sottostanti potrebbero non essere disponibili al riavvio di un host. L'impostazione dell'opzione di montaggio di nofail consente di proseguire il processo di avvio quando il server non è in grado di visualizzare i dispositivi di archiviazione.

L'esempio seguente mostra le impostazioni consigliate per i punti di montaggio /u01 e /u02 nel file /etc/fstab:

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

Puoi modificare l'opzione di montaggio da defaults a nofail senza alcun impatto sul sistema operativo. Tuttavia, per applicare le nuove impostazioni, devi riavviare il server.

Conferma le impostazioni dei limiti di shell

Il toolkit per Bare Metal Solution configura i limiti della shell necessari per configurare Oracle RAC. Puoi saltare questa convalida se hai utilizzato il toolkit Bare Metal Solution e non hai modificato i limiti della shell. È necessario impostare limiti di Shell per tutti gli account del sistema operativo proprietari del software Oracle, inclusa GridInfrastructure. Oracle consiglia le seguenti impostazioni per Linux:

Limite Valore flessibile Valore forte
Apri file 1024 65536
Numero massimo di processi utente 16384 16384
Dimensioni stack 10240 32768
Memoria bloccata massima Almeno il 90% della memoria Almeno il 90% della memoria

Utilizza il comando ulimit per verificare i limiti del soft shell e dell'hard shell. Ad esempio, inserisci questo comando per verificare il limite del soft shell:

ulimit -S -n -u -s -l

Il seguente output mostra le impostazioni dei limiti del soft shell corrette per un sistema con 384 GB di memoria:

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

Per verificare i limiti dell'hard shell, utilizza il comando seguente:

ulimit -H -n -u -s -l

Il seguente output mostra i limiti corretti dell'hard shell per un sistema con 384 GB di memoria:

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

Se uno o più limiti della shell non sono impostati correttamente, modifica le voci nel file /etc/security/limits.conf, come mostrato nell'esempio seguente:

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 di modificare le impostazioni per percorsi multipli

Se scegli di modificare le impostazioni del percorso multiplo, non configurare l'attributo path_grouping_policy se utilizzi multipath.conf per creare nomi con alias per i dispositivi. Questa modifica sostituisce il criterio predefinito impostato nella sezione della definizione di devices.

In condizioni normali, il comando multipath -ll dovrebbe mostrare uno stato simile all'esempio seguente. Ogni dispositivo include due percorsi attivi in stato Pronto.

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 jumbo frame

Per evitare la frammentazione dei pacchetti durante il trasferimento da un server all'altro in un ambiente RAC, Oracle consiglia di configurare le interfacce del server con i jumbo frame. I frame jumbo hanno una dimensione MTU di 9000 byte e sono abbastanza grandi da supportare le dimensioni dei blocchi di database Oracle di 8192 byte.

Per configurare i frame jumbo sui server Bare Metal Solution per Oracle RAC:

  1. Visualizza le impostazioni della rete privata Bare Metal Solution per confermare che i jumbo frame siano stati configurati:

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

    Esempio di output:

    jumboFramesEnabled: true
    
  2. Identifica le interfacce di rete e le relative dimensioni mtu:

    ip link show | grep mtu
    

    Esempio di output:

    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. Utilizzando i privilegi di livello root, aggiungi MTU=9000 al file di configurazione dell'interfaccia per tutti i server nell'ambiente Bare Metal Solution che utilizzano jumbo frame. Puoi trovare il file all'indirizzo /etc/sysconfig/network-scripts/ifcfg-interface_name.

    Esempio di output:

    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. Riavvia i servizi di networking per applicare le modifiche:

    service network restart
    
  5. Esegui un comando ping per testare la nuova configurazione 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
    

Impatto sulla latenza e backup di Oracle RMAN

Se il processo di backup RMAN di Oracle non è limitato dal parametro RATE, può trasferire la velocità effettiva o le IOPS di archiviazione al limite delle prestazioni per un volume di archiviazione. Ciò causa la limitazione dell'I/O di archiviazione, aumentando così la latenza sul volume di archiviazione.

Ti consigliamo di implementare il parametro del canale RATE per limitare la quantità di larghezza di banda o velocità effettiva utilizzabile dall'RMA Oracle.

Per ulteriori informazioni, consulta la documentazione di Oracle: 23.2.1.4 RATE Channel Parameter

Gestione automatica dello spazio di archiviazione Oracle

Il nostro team dell'assistenza clienti Google Cloud e diversi clienti Bare Metal Solution hanno aggiunto la gestione automatica dell'archiviazione oracle (ASM) ai propri ambienti Bare Metal Solution. Grazie alla loro esperienza e conoscenza collettive, abbiamo raccolto il seguente elenco di best practice per aiutarti a ottenere risultati ottimali con l'installazione di un gruppo di dischi ASM personale. Il nostro obiettivo è aiutarti a ottenere le migliori prestazioni di archiviazione per il tuo ambiente Bare Metal Solution.

Utilizza una dimensione uniforme del LUN

La dimensione del LUN selezionata deve essere rappresentativa dell'unità di crescita. ASM funziona al meglio con LUN che hanno le stesse dimensioni e caratteristiche di prestazioni simili. Per i database molto grandi, consigliamo una dimensione LUN di 2 TB per ottimizzare le prestazioni.

Crea non più di due gruppi di dischi ASM

Devi inviare i file di dati e una copia dei log REDO a un singolo gruppo di dischi DATA. Facoltativamente, puoi creare un secondo gruppo di dischi FRA per archiviare i backup sul disco e i log. Quando archivi i log di REDO in uno spazio di archiviazione altamente resiliente, non è necessario avere due copie.

Le scritture di log di REDO sono sensibili alla latenza. Di conseguenza, prendi in considerazione il multiplexing dei log REDO solo se il profilo delle prestazioni del gruppo di dischi FRA corrisponde a quello del gruppo di dischi DATA.

Esegui lo Stripe dei gruppi di dischi ASM su tutti i LUN in tutti i volumi

Quando crei gruppi di dischi ASM, applica lo striscia del gruppo di dischi in tutti i LUN di tutti i volumi. Se i tuoi LUN appartengono a un singolo volume, quando crei un gruppo di dischi devi includere tutti i LUN nel volume. Ad esempio, se un volume ha un numero di LUN X, devi utilizzare tutti i LUN X quando crei il gruppo di dischi.

Queste indicazioni si applicano anche all'utilizzo di più volumi, poiché forniamo limiti QoS sui volumi. Se utilizzi più volumi per una velocità effettiva maggiore (> 900 Mbps), devi includere tutti i LUN di ogni volume quando crei il gruppo di dischi per ottenere le prestazioni richieste.

Usa LUN e volumi con le stesse caratteristiche prestazionali nello stesso gruppo di dischi

Se utilizzi più volumi per migliorare la velocità effettiva, utilizza le stesse caratteristiche di dimensione e prestazioni del volume quando crei gruppi di dischi ASM.

Non combinare LUN di volumi con caratteristiche di prestazioni diverse. Se includi LUN e volumi con profili di prestazioni diversi nello stesso gruppo di dischi, i dischi che eseguono operazioni di I/O potrebbero avere un tetto massimo di prestazioni molto inferiore e potrebbero causare picchi di latenza.

Ad esempio, se crei un gruppo di dischi ASM con 2 volumi non uniformi (1 x 16 TiB e 1 x 5 TiB), le operazioni di I/O eseguite dai dischi nel volume da 5 TB potrebbero causare latenza elevata. Il volume a 5 TiB ha una velocità effettiva e un tetto massimo di IOPS molto più bassi, quindi raggiungerebbe il livello di limitazione molto prima del livello di limitazione per il volume a 16 TiB.

Non condividere i volumi di archiviazione tra più cluster RAC

Per ogni cluster RAC, esegui il provisioning di un volume di archiviazione univoco. Non condividere lo stesso volume di archiviazione tra più cluster RAC. Poiché i dispositivi di archiviazione applicano la qualità QoS a livello di volume, questa prassi riduce al minimo la possibilità che vicini rumorosi competano per un singolo pool di IOPS e velocità effettiva.

Ad esempio, se un singolo volume ha 8 LUN, non assegnare alcuni LUN a un cluster di database RAC e i LUN rimanenti a un cluster di database RAC diverso. Esegui invece il provisioning di due volumi di archiviazione separati e assegna ogni volume a un cluster RAC dedicato separato per volume.

Scopri le IOPS richieste e la capacità di velocità effettiva prima di creare gruppi di dischi ASM

Fai attenzione ai dati relativi alle prestazioni massime per il tuo ambiente on-premise. Per trovare queste informazioni, genera report AWR durante le ore di picco dei carichi di lavoro per registrare i valori dei picchi di IOPS e velocità effettiva del sistema. Puoi anche utilizzare il nostro strumento di valutazione del database Oracle per raccogliere i dati relativi ai picchi di prestazioni.

Con i dati sulle prestazioni on-premise a portata di mano, controlla la nostra tabella delle prestazioni di archiviazione di Bare Metal Solution per calcolare la quantità di spazio di archiviazione che devi allocare ai tuoi gruppi di dischi ASM e ottenere le prestazioni richieste. Se hai requisiti di velocità effettiva avanzata (> 768 Mbps), puoi creare più volumi ed eliminare il gruppo di dischi ASM in tutti i LUN e in tutti i volumi.

Lascia invariata la configurazione a percorso multiplo

Non modificare il valore predefinito di group_pathing_policy nel file /etc/multipath.conf. Utilizza sempre il valore predefinito di group_pathing_policy=group_by_prio per evitare l'eliminazione dei nodi RAC in caso di errori del percorso di archiviazione.

Per maggiori dettagli su come lasciare intatta la configurazione multipercorso, consulta Evitare di modificare le impostazioni di percorsi multipli.

Configura impostazioni importanti per ASM

Se utilizzi Oracle Grid Infrastructure 12.1.0.2 o versioni successive su Linux, configura ASM con ASMFD o UDEV.

Per le versioni precedenti di Oracle Grid Infrastructure, utilizza ASMLib.

  • Per impedire a Oracle ASM di selezionare prima il dispositivo ASM a percorso singolo, imposta l'ordine di scansione come segue:

    ORACLEASM_SCANORDER="dm"
    ORACLEASM_SCANEXCLUDE="sd"
    

    Questa impostazione è necessaria perché l'ambiente di archiviazione Bare Metal Solution utilizza dispositivi di messaggistica diretta che puoi visualizzare in /proc/partitions.

  • Per verificare se ASMLib è configurato per gestire i tuoi dischi ASM, esegui il seguente comando come utente root:

    /usr/sbin/oracleasm configure | grep SCAN
    

    Se utilizzi ASMLib, l'output sarà simile al seguente:

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

Crea un gruppo di dischi ASM con ridondanza esterna

Lo spazio di archiviazione fornito da Bare Metal Solution utilizza NETAPP RAID-DP, una forma di RAID 6 che protegge i dati anche in caso di guasti dei due dischi. Di conseguenza, ti consigliamo di utilizzare la ridondanza esterna per ASM.

Riavvia i server Bare Metal Solution dopo la creazione del disco ASM

Dopo aver creato i gruppi di dischi ASM, devi riavviare tutti i server Bare Metal Solution nel cluster per assicurarti che sia l'istanza ASM sia i gruppi di dischi siano online dopo il riavvio. Segui questo passaggio proattivo per evitare problemi che potrebbero verificarsi dopo la creazione del cluster di database nel gruppo di dischi ASM.

RAC Oracle

Questa sezione illustra le best practice per l'installazione di Oracle Real Application Clusters (RAC) su Bare Metal Solution.

Lunghezza del nome del cluster Oracle Grid Infrastructure

Utilizza un nome del cluster che non superi i 15 caratteri.

Un nome del cluster più lungo di 15 caratteri causa un errore dello script root.sh.

Visualizzatore VNC tunnel su SSH

I server arbitrari, come il visualizzatore VNC, sono bloccati dal firewall del sistema operativo predefinito del server Bare Metal Solution. Pertanto, tunnel X Window o VNC Visualizzatore su SSH:

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

Spazio sufficiente per il file system radice

Assicurati che il file system radice (/) abbia spazio libero sufficiente. I server Bare Metal Solution hanno un file system radice da 20 GB, che potrebbe non essere sufficiente.

Sul server Bare Metal Solution, controlla le dimensioni del file system principale "/". La dimensione predefinita è 20 GB, che potrebbe non essere sufficiente. Se la dimensione è 20 GB, aumentala.

Utilizza un server dei nomi come sostituto di Cloud DNS

Se non vuoi utilizzare Cloud DNS, installa il tuo server dei nomi per risolvere gli indirizzi IP host sul server Bare Metal Solution. L'infrastruttura Oracle Grid utilizza il comando nslookup per ottenere il nome del server DNS. Il comando nslookup non utilizza il file /etc/hosts.

Segui questi passaggi:

  1. Installa dnsmasq.

    yum makecache
    yum install dnsmasq
    
  2. Apri il file /etc/dnsmasq.conf in modalità di modifica.

    vi /etc/dnsmasq.conf
    
  3. Nel file /etc/dnsmasq.conf, aggiungi le seguenti righe:

    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. Modifica i file /etc/dnsmasq-resolv.conf e /etc/resolv.conf in modo che contengano solo la riga seguente:

    nameserver 127.0.0.1
    
  5. Avvia il servizio dnsmasq:

    systemctl restart dnsmasq
    
    systemctl status dnsmasq
    
  6. Esegui il comando nslookup su entrambi i nodi.

    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
    

Installa NTP

Quando installi NTP, assicurati che tutti i nodi RAC si sincronizzino con l'ora dell'host di jump o del server NTP interno. Segui questi passaggi:

  1. Installa NTP.

    yum install ntp
    
  2. Avvia il servizio ntpd.

    systemctl start ntpd
    
  3. Nel file /etc/ntp.conf, aggiungi la seguente riga da sincronizzare con il bastion host, che in questo caso è 10.x.x.x. Puoi anche utilizzare il server NTP interno. In questo caso, 192.x.x.x è il tuo server Bare Metal Solution.

    restrict 192.x.x.x mask 255.255.255.0 nomodify notrap
    server 10.x.x.x prefer
    
  4. Per avviare la sincronizzazione, aggiorna il server dell'ora in modo che avvii la sincronizzazione.

    ntpdate -qu SERVER_NAME
    

Esegui lo script root su un nodo alla volta

Esegui lo script radice root.sh su un nodo alla volta. Se l'esecuzione non va a buon fine sul primo nodo, non passare al nodo successivo.

Risolvi Localhost

Poiché il server Bare Metal Solution non aggiunge Localhost al file /etc/hosts, risolvi manualmente Localhost in 127.0.0.1.

Assicurati che siano sufficienti limiti per le risorse

Prima di installare Oracle RAC sul server Bare Metal Solution, assicurati che i limiti delle risorse per gli utenti root e oracle siano sufficienti.

Puoi usare il comando ulimit per verificare i limiti.

Imposta la variabile ORACLEASM_SCANORDER

Se utilizzi Oracle ASMLib, per impedire a Oracle ASM di selezionare prima il dispositivo ASM a percorso singolo, imposta l'ordine di scansione come segue:

ORACLEASM_SCANORDER="dm"
ORACLEASM_SCANEXCLUDE="sd"

Questa impostazione è obbligatoria perché l'ambiente di archiviazione Bare Metal Solution utilizza dispositivi DM che puoi visualizzare nel file /proc/partitions.

Oracle è un marchio registrato di Oracle e/o delle sue società consociate.