Best Practices für die Oracle auf Bare-Metal-Lösung
Wenn Sie Oracle-Datenbanken auf der Bare-Metal-Lösung implementieren, möchten Sie Ihre Umgebung vermutlich möglichst einfach und mit so wenigen Problemen wie möglich aufzurufen. Damit Sie dieses Ziel erreichen, haben wir Feedback von Kunden, unseren Lösungsarchitekten und Supportmitarbeitern gesammelt, die Oracle-Datenbanken auf der Bare-Metal-Lösung implementiert haben. Die folgenden Informationen sind Empfehlungen von diesen Experten, damit Sie Ihre eigene Oracle-Datenbankumgebung auf Bare-Metal-Lösung so erfolgreich wie möglich einrichten können.
Softwarebereitstellung
Für die erfolgreiche Bereitstellung von Oracle-Software empfehlen wir die Verwendung des Bare-Metal-Lösungs-Toolkits. Das Toolkit bietet mehrere Ansible- und JSON-Skripts, die Ihnen bei der Installation der Oracle-Software auf Bare-Metal-Lösung helfen. Weitere Informationen zum Bare-Metal-Lösungs-Toolkit und zum Installieren von Oracle-Datenbanken in einer Bare-Metal-Lösung-Umgebung finden Sie im Nutzerhandbuch für das Toolkit.
Betriebssystem
Wenn Sie Ihr Betriebssystem auf einem Bare-Metal-Lösungsserver einrichten, sollten Sie die folgenden Aktionen ausführen.
NTP-Server validieren
Alle Bare-Metal-Lösungsserver sollten mit einer Zeitquelle synchronisiert werden. Wählen Sie eine physische oder virtuelle NTP-Server-Option aus, die Ihren Anforderungen am besten entspricht.
Wenn Ihre Server NTP für die Zeitsynchronisierung verwenden, können Sie mit dem Befehl timedatectl
oder ntpstat
prüfen, ob der Server mit einer Zeitquelle synchronisiert wird. Die folgenden Beispiele zeigen die Ausgabe dieser Befehle für einen Server, der erfolgreich synchronisiert wird:
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
CPU-Anzahl und Arbeitsspeicherdetails von Oracle-VM ansehen
Mit dem Befehl xm info
können Sie Informationen zu einem Oracle-VM-Host (OVM) aufrufen, einschließlich CPU- und Arbeitsspeicherdetails. Beispiel:
/usr/sbin/xm info
Weitere Informationen finden Sie in der Oracle-Dokumentation zum Ansehen von Hostinformationen.
/etc/fstab
-Einstellungen auf die richtigen Bereitstellungsoptionen prüfen
Wenn Sie verhindern möchten, dass der Bootvorgang angehalten wird, konfigurieren Sie immer die von Ihnen erstellten Nicht-Root-Bereitstellungspunkte (z. B. /u01
und /u02
) mit der Bereitstellungsoption nofail
anstelle der Standardeinstellungen. In seltenen Fällen sind die zugrunde liegenden Speichergeräte möglicherweise nicht verfügbar, wenn ein Host neu gestartet wird. Mit der Bereitstellungsoption nofail
kann der Bootvorgang fortgesetzt werden, wenn der Server die Speichergeräte nicht anzeigen kann.
Das folgende Beispiel zeigt die empfohlenen Einstellungen für die Bereitstellungspunkte /u01
und /u02
in der Datei /etc/fstab
:
/dev/mapper/3600a098038314352513f4f765339624c1 /u01 xfs nofail 0 0
/dev/mapper/3600a374927591837194d4j371563816c1 /u02 xfs nofail 0 0
Sie können die Bereitstellungsoption von defaults
in nofail
ändern, ohne dass sich dies auf ein Betriebssystem auswirkt. Um die neuen Einstellungen anzuwenden, müssen Sie jedoch Ihren Server neu starten.
Einstellungen des Shell-Limits prüfen
Das Bare-Metal-Lösungs-Toolkit konfiguriert Shell-Limits, um Oracle RAC zu konfigurieren. Sie können diese Validierung überspringen, wenn Sie das Bare-Metal-Lösungs-Toolkit verwendet und die Shell-Limits nicht geändert haben. Shell-Limits müssen für alle Betriebssystemkonten festgelegt werden, die eine Oracle-Software haben, einschließlich Grid Infrastructure. Oracle empfiehlt für Linux die folgenden Einstellungen:
Limit | Weicher Limitwert | Harter Limitwert |
---|---|---|
Dateien öffnen | 1.024 | 65.536 |
Maximale Nutzerprozesse | 16.384 | 16.384 |
Stackgröße | 10240 | 32.768 |
Maximaler gesperrter Arbeitsspeicher | Mindestens 90% des Arbeitsspeichers | Mindestens 90% des Arbeitsspeichers |
Prüfen Sie mit dem Befehl ulimit
die weichen und harten Shell-Limits. Geben Sie beispielsweise diesen Befehl ein, um das weiche Shell-Limit zu prüfen:
ulimit -S -n -u -s -l
Die folgende Ausgabe zeigt die korrekten Soft-Shell-Einstellungen für ein System mit 384 GB Arbeitsspeicher:
open files (-n) 1024
max user processes (-u) 16384
stack size (kbytes, -s) 10240
max locked memory (kbytes, -l) 355263678
Prüfen Sie mit dem folgenden Befehl die harten Shell-Limits:
ulimit -H -n -u -s -l
Die folgende Ausgabe zeigt die korrekten Hartschalenlimits für ein System mit 384 GB Arbeitsspeicher:
open files (-n) 65536
max user processes (-u) 16384
stack size (kbytes, -s) 32768
max locked memory (kbytes, -l) 355263678
Wenn eines der Shell-Limits nicht korrekt festgelegt ist, ändern Sie die Einträge in der Datei /etc/security/limits.conf
wie im folgenden Beispiel gezeigt:
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
Änderung von Multipath-Einstellungen vermeiden
Wenn Sie die Einstellungen für den Mehrpfad-Modus ändern, konfigurieren Sie das Attribut path_grouping_policy
nicht, wenn Sie multipath.conf
verwenden, um Aliasnamen für Geräte zu erstellen. Eine solche Änderung überschreibt die im Definitionsabschnitt devices
festgelegte Standardrichtlinie.
Im Normalbetrieb sollte der Befehl multipath -ll
einen Status wie im folgenden Beispiel anzeigen. Jedes Gerät enthält zwei aktive Pfade, die sich im Bereitschaftszustand befinden.
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
Jumbo Frames verwenden
Damit die Fragmentierung von Paketen bei der Übertragung von einem Server zu einem anderen in einer RAC-Umgebung vermieden wird, empfiehlt Oracle, die Serverschnittstellen mit riesigen Frames zu konfigurieren. Jumbo-Frames haben eine MTU-Größe von 9.000 Byte und sind groß genug, um Oracle-Datenbankblockgrößen von 8.192 Byte zu unterstützen.
So konfigurieren Sie Jumbo-Frames auf Bare-Metal-Lösungsservern für Oracle RAC:
Rufen Sie die Einstellungen Ihres privaten Netzwerks Ihrer Bare-Metal-Lösung auf, um zu prüfen, ob Jumbo-Frames konfiguriert wurden:
gcloud bms networks describe NETWORK_NAME --project=PROJECT_ID --region=REGION | grep jumboFramesEnabled
Beispielausgabe:
jumboFramesEnabled: true
Ermitteln Sie die Netzwerkschnittstellen und ihre
mtu
-Größe:ip link show | grep mtu
Beispielausgabe:
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
Fügen Sie mithilfe von Berechtigungen auf Stammebene der Schnittstellenkonfigurationsdatei für alle Server in der Umgebung der Bare-Metal-Lösung, die Jumbo-Frames verwenden,
MTU=9000
hinzu. Sie finden die Datei unter/etc/sysconfig/network-scripts/ifcfg-interface_name
.Beispielausgabe:
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
Starten Sie die Netzwerkdienste neu, damit die Änderungen wirksam werden:
service network restart
Führen Sie den Befehl
ping
aus, um die neue MTU-Konfiguration zu testen: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
Automatische Speicherverwaltung von Oracle
Unser Cloud Customer Care-Team und mehrere Kunden der Bare-Metal-Lösung haben Oracle Automatische Speicherverwaltung (ASM) zu ihren Bare-Metal-Lösungsumgebungen hinzugefügt. Aufgrund ihrer gesammelten Erfahrung und Erfahrung haben wir die folgende Liste mit Best Practices zusammengestellt, die Ihnen dabei helfen sollen, mit der Installation einer eigenen ASM-Laufwerksgruppe erfolgreich zu sein. Unser Ziel ist es, Sie dabei zu unterstützen, die beste Speicherleistung für Ihre Bare-Metal-Lösungsumgebung zu erzielen.
- Einheitliche LUN-Größe verwenden
- Maximal zwei ASM-Laufwerksgruppen erstellen
- Bestreifen Sie ASM-Laufwerksgruppen für alle LUNs in allen Volumes.
- LUNs und Volumes mit denselben Leistungseigenschaften in derselben Laufwerksgruppe verwenden
- Speichervolumen nicht auf mehrere RAC-Cluster teilen
- Erforderliche IOPS und Durchsatzkapazität kennen, bevor Sie ASM-Laufwerksgruppen erstellen
- Konfiguration für mehrere Pfade beibehalten
- Wichtige Einstellungen für ASM konfigurieren
- ASM-Laufwerksgruppe mit externer Redundanz erstellen
- Server der Bare-Metal-Lösung nach der Erstellung des ASM-Laufwerks neu starten
Einheitliche LUN-Größe verwenden
Die ausgewählte LUN-Größe sollte für die Wachstumseinheit repräsentativ sein. ASM funktioniert am besten mit LUNs, die dieselbe Größe und ähnliche Leistungseigenschaften haben. Für sehr große Datenbanken empfehlen wir eine LUN-Größe von 2 TB, um die Leistung zu optimieren.
Maximal zwei ASM-Laufwerksgruppen erstellen
Sie sollten Datendateien und eine Kopie der REDO
-Logs an eine einzelne DATA
-Laufwerksgruppe senden. Optional können Sie eine zweite FRA
-Laufwerksgruppe erstellen, um Sicherungen auf dem Laufwerk und Archivlogs zu speichern. Wenn Sie REDO
-Logs in sehr widerstandsfähigem Speicher speichern, benötigen Sie keine zwei Kopien.
REDO
Log-Schreibvorgänge sind empfindlich auf Latenz. Deshalb sollten Sie REDO
-Logs nur dann multiplizieren, wenn das Leistungsprofil der Laufwerkgruppe FRA
mit dem Leistungsprofil der Laufwerkgruppe DATA
übereinstimmt.
ASM-Laufwerksgruppen über alle LUNs in allen Volumes entfernen
Wenn Sie ASM-Laufwerksgruppen erstellen, entfernen Sie sie aus allen LUNs aller Volumes. Wenn Ihre LUNs zu einem einzelnen Volume gehören, müssen Sie beim Erstellen einer Laufwerksgruppe alle LUNs in das Volume aufnehmen. Wenn ein Volume beispielsweise X
Anzahl von LUNs hat, sollten Sie beim Erstellen der Laufwerksgruppe alle X
LUNs verwenden.
Diese Anleitung gilt auch für die Verwendung mehrerer Volumes, da wir Limits für die Funktion „Dienstqualität“ festlegen. Wenn Sie mehrere Volumes für einen höheren Durchsatz (> 900 Mbit/s) verwenden, müssen Sie beim Erstellen der Laufwerksgruppe alle LUNs aus jedem Volume einschließen, um die erforderliche Leistung zu erzielen.
LUNs und Volumes mit denselben Leistungseigenschaften in derselben Laufwerksgruppe verwenden
Wenn Sie mehrere Volumes zur Optimierung des Durchsatzes verwenden, verwenden Sie beim Erstellen von ASM-Laufwerksgruppen die gleiche Volume-Größe und dieselben Leistungsmerkmale.
Mischen Sie LUNs nicht mit Volumes, die unterschiedliche Leistungseigenschaften haben. Wenn Sie LUNs und Volumes mit unterschiedlichen Leistungsprofilen in dieselbe Laufwerksgruppe aufnehmen, haben Laufwerke, die E/A-Vorgänge ausführen, eine wesentlich geringere Leistungsobergrenze und können zu Latenzspitzen führen.
Wenn Sie beispielsweise eine ASM-Laufwerksgruppe mit 2 ungleichmäßigen Volumes (1 x 16 TiB und 1 x 5 TiB) erstellen, können die E/A-Vorgänge, die von den Laufwerken im 5-TB-Volume ausgeführt werden, zu erhöhter Latenz führen. Das Volumen von 5 TiB hat einen viel niedrigeren Durchsatz und eine maximale Anzahl von EPS, sodass es den Drosselungsgrad lange vor dem Drosselungsniveau für das 16-TiB-Volume erreichen würde.
Speicher-Volumes nicht auf mehrere RAC-Cluster teilen
Geben Sie für jeden RAC-Cluster ein eindeutiges Speicher-Volume an. Verwenden Sie nicht dasselbe Speicher-Volume für mehrere RAC-Cluster. Da Speichergeräte die Funktion „Dienstqualität“ auf Lautstärkeebene anwenden, wird so die Wahrscheinlichkeit minimiert, dass laute Nachbarn um einen einzelnen IOPS-Pool und Durchsatz konkurrieren.
Wenn ein einzelnes Volume beispielsweise 8 LUNs hat, weisen Sie einige LUNs keinem RAC-Datenbankcluster und die verbleibenden LUNs einem anderen RAC-Datenbankcluster zu. Stattdessen müssen Sie zwei separate Speicher-Volumes bereitstellen und jedes Volume einem separaten RAC-Cluster pro Volume zuweisen.
Erforderliche IOPS und Durchsatzkapazität kennen, bevor Sie ASM-Laufwerksgruppen erstellen
Achten Sie auf die Leistungsspitzen für Ihre lokale Umgebung. Erstellen Sie AWR-Berichte während der Spitzenarbeitslaststunden, um die Spitzen-IOPS und -Durchsatzwerte Ihres Systems zu erfassen. Sie können auch unser Oracle Database Assessment-Tool verwenden, um die Spitzenleistung zu ermitteln.
Wenn Sie Ihre lokalen Leistungszahlen zur Hand haben, prüfen Sie unsere Speicherleistungstabelle für Bare-Metal-Lösung, um den Speicherplatz zu berechnen, den Sie Ihren ASM-Laufwerksgruppen zuweisen müssen, um die erforderliche Leistung zu erzielen. Wenn Sie Anforderungen an den erweiterten Durchsatz haben (über 768 Mbit/s), können Sie mehrere Volumes erstellen und die ASM-Laufwerksgruppe für alle LUNs und alle Volumes entfernen.
Multipath-Konfiguration unverändert lassen
Sie sollten den Standard-group_pathing_policy
in der /etc/multipath.conf
-Datei nicht ändern. Sie sollten immer den Standardwert group_pathing_policy=group_by_prio
verwenden, um die Bereinigung von RAC-Knoten bei Speicherpfadfehlern zu vermeiden.
Weitere Informationen dazu, wie Sie die Konfiguration mit mehreren Pfaden beibehalten, finden Sie unter Einstellungen für Multipath-Änderungen vermeiden.
Wichtige Einstellungen für ASM konfigurieren
Wenn Sie Oracle Grid Infrastructure 12.1.0.2 oder höher unter Linux verwenden, richten Sie ASM mit ASMFD oder UDEV ein.
Verwenden Sie für frühere Versionen von Oracle Grid Infrastructure ASMLib.
Wenn Sie Oracle ASM nicht daran hindern möchten, Ihr ASM-Gerät als einzelnen Pfad auszuwählen, legen Sie die Scanreihenfolge so fest:
ORACLEASM_SCANORDER="dm" ORACLEASM_SCANEXCLUDE="sd"
Wir benötigen diese Einstellung, da die Speicherumgebung der Bare-Metal-Lösung DM-Geräte verwendet, die Sie in
/proc/partitions
ansehen können.Führen Sie den folgenden Befehl als Root-Nutzer aus, um zu prüfen, ob ASMLib für die Verwaltung Ihrer ASM-Laufwerke konfiguriert ist:
/usr/sbin/oracleasm configure | grep SCAN
Wenn Sie ASMLib verwenden, sieht die Ausgabe so aus:
ORACLEASM_SCANBOOT=true ORACLEASM_SCANORDER="dm" ORACLEASM_SCANEXCLUDE="sd" ORACLEASM_SCAN_DIRECTORIES=""
ASM-Laufwerksgruppe mit externer Redundanz erstellen
Der von der Bare-Metal-Lösung bereitgestellte Speicher verwendet NETAPP RAID-DP. Dies ist eine Form von RAID 6, die Daten schützt, auch wenn zwei Laufwerke ausfallen. Daher empfehlen wir, für ASM die externe Redundanz zu verwenden.
Starten Sie die Server Ihrer Bare-Metal-Lösung nach der Erstellung des ASM-Laufwerks neu
Nachdem Sie die ASM-Laufwerksgruppen erstellt haben, sollten Sie alle Bare-Metal-Lösungsserver im Cluster neu starten, damit sowohl die ASM-Instanz als auch die Laufwerksgruppen nach dem Neustart online sind. Mit diesem proaktiven Schritt können Sie Probleme vermeiden, die nach dem Erstellen des Datenbankclusters für die ASM-Laufwerksgruppe auftreten können.
Oracle ist eine eingetragene Marke von Oracle und/oder seinen Tochterunternehmen.