
Mit Oracle erweitern wir unsere Kompetenzen und unser Dienstleistungsspektrum in Person von Rainer und Attila. In diesem Artikel nimmt uns Attila mit in seine tägliche Arbeit und erklärt uns in zwei Teilen, wie man Oracle Linux 8 mit Oracle Grid installiert. Im zweiten Teil widmen wir uns mit der Erstellung einer 21c DB Home Datenbank.
Systemanforderungen
Das System muss mindestens folgende Parameter beinhalten:
- zwei logische CPUs
- 1,5 GB Arbeitsspeicher pro CPU
- 20 GB Speicherplatz (Oracle Empfehlung)
Wir arbeiten mit folgenden Parametern:
- 8 GB RAM
- 4 CPU Cores
- 60 GB für das OS
- 30 GB für ASM (Oracle Automatic Storage Management)
Vorgehen
Wir starten den Installationsprozess in dem wir Oracle Linux 8 ISO hier herunterladen.
- Sprache auswählen

- Die mit einem Ausrufezeichen markierten Punkte müssen manuell eingestellt werden und sind Pflichtaktionen. Zuerst erstellen wir die Laufwerke mit der Schaltfläche Installation Destination.

- Wählen Sie unter Storage Configuration -> Custom aus und klicken Sie auf Done.

Die automatische Aufteilung des Installers ist nicht wirklich optimal. Das Partitionskonzept sollte bestenfalls folgende Parameter berücksichtigen:
- Den Verwendungszweck des Hosts
- Die Anzahl der User
- Oracle Software Installationen wie Grid Infrastruktur, Oracle Homes
- Speicherung der datenbankspezifischen Dateien (wie Datafiles, FRA, Backups etc.) und auch externe Storage Optionen
Empfehlung von Oracle:
/boot
: mindestens 1 GB/boot/efi
: mindextens 200 MB maximal 600 MB/
mindestens 10 GB/home
: Die allgemeine Empfehlung ist die "User Homeverzeichnisse" separat von der System Partition zu halten/swap
: Abhängig vom RAM des Systems. Empfehlung für Redhat und darauf basierende Linux Distributionen:

Wir empfehlen für die Installation der Oracle Software Binaries (RDBMS und ggf. ASM) eine separate Partition (/u01) zu verwenden.
Für unsere Konfiguration reichen folgende Partitionen:
- Unter Manual Partitioning muss man auf das “+” drücken, um einen neuen Mountpoint zu erstellen:
Folgende Kapazität legen wir dafür fest:
- 2G für boot

Wir verfahren gleich mit boot/efi
, geben hier allerdings 600 MB als Kapazitätsgrenze ein.
Für swap
legen wir 8 GB fest und für /
lassen wir die Kapazitätsgrenze weg.
Anschließend klicken wir auf done und accept changes.

- Wir geben unter User Settings das Root Passwort ein und legen einen Admin Account fest.
Das Heraufstufen auf eine Root-Shell mithilfe des Befehls
su
kann für Einzelbenutzerumgebungen und Workstations gut funktionieren, da nur eine Person das System verwaltet und das Root-Benutzerkennwort kennen muss. Dies lässt sich jedoch nicht ausreichend für gemeinsam genutzte Systeme mit mehreren Benutzern und Administratoren skalieren, die unterschiedliche Zugriffsebenen erfordern.Oracle rät dringend davon ab, das root-Passwort mit anderen Benutzern zu teilen oder Remote-Benutzern zu erlauben, sich als root-Benutzer anzumelden, was beides eine schlechte und hochriskante Sicherheitspraxis darstellt.


Für Einzelbenutzerumgebungen kann man hier oracle auch anlegen für ein shared system ist das aber nicht empfohlen. Das Preinstall Paket erstellt den Oracle User beim Installieren und konfiguriert die richtigen Gruppen.
Systemrechte können mit der Datei
/etc/sudoers
vergeben werden.
- Unter Software Selection kann man einige nützliche Pakete mit installieren. Als Base Environment wählen wir Server aus. Zusätzliche Pakete und Tools sind optional und können auch später installiert werden. Nützliche Pakete sind:
- Debugging Tools
- Network File System Client
- Performance Tools
- Remote Management for Linux
- Headless Management
- System Tools


- Nun stellen wir das Netzwerk und den Hostnamen ein.

- Anschließend auf Beginn Installation drücken, damit die Installation gestartet wird. Nach Abschluss der Installation muss dann ein Reboot durchgeführt werden.

Fertig! Wir konnten mit diesen einfachen Schritten Oracle Linux 8 ganz simpel installieren. Nun geht es an die Konfiguration. Wie wir hier vorgehen, lesen Sie in den folgenden Abschnitten.
Unser Ziel ist es, Oracle Linux 8 als einen Standalone Host für die Oracle ASM und Grid Infrastructure zu konfigurieren.
Leistungspakete der Mainzer Datenfabrik
Als professioneller SQL Server Support und zertifizierter Microsoft Partner unterstützen wir Sie in allen Fragen und individuellen Problemen rund um Ihre Serverumgebung, egal ob vor Ort oder remote. Überzeugen Sie sich selbst von unserem vielfältigen Angebot und den individuellen Leistungspaketen.
1. Wir starten damit, die Netzwerkeinstellungen zu prüfen:
# IP Addresse abfragen
ifconfig
# Hostname prüfen und einstellen wenn nötig
vi /etc/hosts
127.0.0.1 localhost oratest1.mdf.testlab.local
123.123.123.123 oratest1.mdf.testlab.local oratest1
hostnamectl set-hostname oratest3.mdf.testlab.local --static
2. Wir erneuern den Repository Cache
Der remote Index und die Metadaten der Pakete werden lokal heruntergeladen, damit der dnf Befehl schneller ist.
Zunächst wechseln wir jedoch erst einmal auf root!
sudo -i
dnf makecache
3. Oracle Vorkonfiguration mit dem Preinstall Paket
Die Konfiguration von Linux für Oracle Software kann man entweder automatisch mit dem Preinstall RPM von Oracle ausführen oder man kann die Befehle manuell ausführen. Die manuelle Installation sollte man dann verwenden, wenn die Kundenumgebung eine spezielle Konfiguration braucht.
Die Oracle Dokumentation für die manuelle Vorkonfiguration kann man hier erreichen.
Das Preinstall Paket führt folgende Schritte durch:
- Lädt und installiert extra Pakete
- Konfiguriert die OS Gruppen
- Erstellt den Oracle user
- Stellt die Kernel Parameter richtig ein
- Stellt die User Limits ein
- Ändert die Bootkonfiguration
- Stellt die netzwerkspezifischen Parameter ein
- Schaltet die tranparent hugepages und die Defragmentierung aus entsprechend der Oracle Note: 1557478.1
Wir führen das Preinstall Paket mit folgendem Befehl aus:
dnf install -y oracle-database-preinstall-21c
Wenn es im Repository nicht gefunden wird, muss man den RPM herunterladen und lokal installieren:
oracle-database-preinstall-21c
dnf install -y oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm
4. OS Update
Die Aktualisierung des Betriebssystems kann eine gewisse Zeit in Anspruch nehmen, wenn es nicht aktuell ist.
# Updates prüfen
dnf check-update
# Update
dnf update
# Installations Dateien aufräumen wenn das Update erfolgreich war
dnf clean all
5. ASM Gruppen erstellen (optional)
Die Einrichtung verschiedener Gruppen hängt von der Sicherheitspolicy des Kunden ab. Fordert er Separation of Duties, also unterschiedliche Gruppen für die ASM-DB Administration, den ASM Betrieb und die ASM Administration, so müssen die geforderten Benutzer und Gruppen entsprechend eingerichtet werden. Hier im Beispiel werden alle Gruppen dem User oracle zugeordnet.
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
6. Benutzergruppen asmdba, asmoper und asmadmin dem oracle User zuordnen (optional)
Mit folgender Ausführung ordnen wir die Benutzergruppen dem oracle User zu.
usermod -a -G asmdba,asmoper,asmadmin oracle
7. Grid user erstellen
Der Grid-User wird nur benötigt, wenn zum Betrieb der Oracle Instanz die Datenfiles in ASM liegen sollen. Das ist i.d.R. im RAC Umfeld oder bei Verwendung von Oracle Restart (vgl. Grid Infrastructure Installation) der Fall.
Die im folgenden Codeblock verwendete Unix-interne Nummer des Grid-Users (54331) muss in Abstimmung mit eventuellen Richtlinien des Kunden gewählt werden. Oft hat der Kunde bereits Installationen auf anderen Servern. Dann sollten diese Nummern auf allen Servern gleich sein.
useradd -u 54331 -g oinstall -G dba grid
# Abhängig von Seperation of Duties Anforderungen(s.o.)
useradd -u 54331 -g oinstall -G dba,asmdba,asmadmin,asmoper,racdba grid
8. Passwörter für grid und oracle einstellen
In diesem Schritt richten wir die Passwörter für oracle und Grid ein.
passwd oracle
passwd grid
9. Verzeichnisse für die Grid Infrastruktur erstellen
Das Oracle Basisverzeichnis sollte lt. Oracle Empfehlung (OFA = Optimal Flexible Architecture) als /u01/app/oracle eingerichtet werden. Unterhalb des Basisverzeichnis werden dann die verschiedenen Produkte von Oracle installiert.
Oracle Optimal Flexible Architecture (OFA)-Regeln helfen die Datenbanksoftware zu organisieren und so zu konfigurieren, dass mehrere Datenbanken unterschiedlicher Versionen, die verschiedenen Benutzern gehören, koexistieren können.
Auch hier gibt es für die zu verwendenden Verzeichnisse Empfehlungen, vgl. Installation and Upgrade Guide (Einstieg in OFA), insbesondere Installation and Upgrade Guide (speziell zur Verzeichnisstruktur) und die Beispiele unter Pfadbeispiel gemäß OFA Empfehlungen
ORACLE_BASE
mkdir -p /u01/app/oracle
ORACLE_HOME
mkdir -p /u01/app/oracle/product/21.0.0/dbhome_1
Oracle als owner für /u01 und alle Unterverzeichnisse einstellen
chown -R oracle:oinstall /u01
GRID_BASE
mkdir -p /u01/app/grid
chown -R grid:oinstall /u01/app/grid/
GRID_HOME
mkdir -p /u01/app/21.0.0/grid
chown -R grid:oinstall /u01/app/21.0.0/grid
Berechtigungen für /u01 und Unterverzeichnisse einrichten
Eigentümer und Gruppe jeweils RWX, alle anderen User R-X
chmod -R 775 /u01
10. Grid Userprofil anpassen
Das Bash Profil wird mit oraenv erweitert, damit die Umgebungsvariablen automatisch nach dem Einloggen richtig gesetzt werden.
su - grid
cp /home/grid/.bash_profile /home/grid/.bash_profile_bkp
Folgende Umgebungsvariablen in der Datei .grid_env speichern und mit cat
prüfen:
cd /home/grid/
echo "ORACLE_SID=+ASM" > .grid_env
echo "ORAENV_ASK=NO" >> .grid_env
echo ". oraenv" >> .grid_env
Umgebungsvariablen zum Profil hinzufügen
echo "source ~/.grid_env" >> ~/.bash_profile
Mit Grid ausloggen und wieder zurückgehen, um die Variablen neu zu laden.
exit
su - grid
11. NTP
Prüfen ob die Systemuhren synchronisiert sind, sofern ein NTP Server existiert.
systemctl status chronyd
12. SELinux konfigurieren
Security-Enhanced Linux prüft die Berechtigungen und Zugänge der Applikationen zu Dateien. Permissive loggt nur, enforcing erzwingt die Regeln.
sed -i s/SELINUX=enforcing/SELNUX=permissive/g /etc/selinux/config
setenforce Permissive
# Regeln von oracle für grid verwenden
# Wenn das Preinstall paket benutzt wurde (Version anpassen: 19c,21c)
cp /etc/security/limits.d/oracle-database-preinstall-19c.conf /etc/security/limits.d/grid-database-preinstall-19c.conf
# In der neuen Datei oracle auf grid ändern mit sed
sed -i s/oracle/grid/g /etc/security/limits.d/grid-database-preinstall-19c.conf
13. Standard Port der Firewall freischalten
Freischalten der Firewall. Oracle verwendet per Default den TCP Port 1521. Es sollte jedoch ein anderer Port verwendet werden, um die Sicherheit ein wenig zu erhöhen.
Für SSH ist es notwendig, Port 22 freizuschalten.
firewall-cmd --permanent --add-port=1521/tcp
firewall-cmd --permanent --add-port=22/tcp
systemctl stop firewalld
systemctl start firewalld
14. ASM Disk Partitionierung
Seit 11g empfiehlt Oracle, dass auch die CRS Dateien eine separate ASM Disk Gruppe haben sollten. Daher wird die Disk sdb (30 GB) auf drei Partitionen aufgeteilt:
- CRS - 5 GB für Cluster Ressource Dateien wie OCR (Oracle Cluster Registry, Voting Disk Datei)
- DATA - 15 GB für die Datenbank Datafiles, temporäre Dateien, redo logs und undo
- FRA - 10 GB für die Flash Recovery Area (Archivelogs und Backups)
Voting Disk
Hierbei handelt es sich nicht um eine Platte, sondern um eine Datei, in der alle Knoten eines Clusters ihre Heartbeat-Informationen registrieren. Sie enthält auch die Liste der aktiven Knoten.
Oracle Cluster Registry (OCR)
OCR ist das, was die Registrierung für Windows ist. Sie enthält Schlüsselwertpaare verschiedener Ressourcen im Cluster. Grundlegende Informationen über die Ressourcen, deren Standort, Berechtigungen, aktueller Wert, Typ, Status usw. Es fungiert auch als Bootstrap für den Cluster Synchronization Services Daemon (CSSD) für Portinformationen, Knoten und Festplatten.
FRA - Flash Recovery Area
Die FRA bietet einen zentralen Speicherort für Sicherungs- und Wiederherstellungsdateien. Oracle erstellt archivierte Logs und Flashback-Logs im Fast-Recovery-Bereich. Oracle Recovery Manager (RMAN) kann seine Backup-Sätze und Image-Kopien im Fast-Recovery-Bereich speichern und verwendet sie beim Wiederherstellen von Dateien während des Mediarecovery. Der Fast-Recovery-Bereich fungiert auch als Disk-Cache für Backups auf Band.
Oracle Database verwaltet diesen Speicher automatisch und löscht Dateien, die nicht mehr benötigt werden. Durch das regelmäßige Kopieren von Sicherungen auf Band wird im Bereich für die schnelle Wiederherstellung Speicherplatz für andere Dateien frei.
# sdb Partitionierung 5G, 15G und 10G
fdisk /dev/sdb
Command (m for help): n
Partition type: Enter (ist Default)
Partition number: Enter
First sector (2048-62914559, default 2048): Enter
Last sector, +sectors or +size{K,M,G,T,P} (2048-62914559, default 62914559): +5G
Command (m for help): n
Partition type: Enter (ist Default)
Partition number (2-4, default 2): Enter
First sector (10487808-62914559, default 10487808): Enter
Last sector, +sectors or +size{K,M,G,T,P} (10487808-62914559, default 62914559): +15G
Command (m for help): n
Partition type: Enter
Partition number (3,4, default 3): Enter
First sector (41945088-62914559, default 41945088): Enter
Last sector, +sectors or +size{K,M,G,T,P} (41945088-62914559, default 62914559): Enter
Command (m for help): w
The partition table has been altered.
15. Udev-Regeln für die ASM Disks einstellen.
Udev ist der Device Manger für Linux.
cd /etc/udev/rules.d/
# ID der sdb Laufwerk speichern mit
/lib/udev/scsi_id -gud /dev/sdb
# ID für unseren /dev/sdb ist laut vorherigen Befehls:
36000c290247803885fc89cd157d518f6
# Mit vi 99-asm-disk.rules Datei erstellen und mit folgenden Inhalt speichern
vi 99-asm-disk.rules
# Inhalt:
# Den Disk ID zwischen den Klammern bei RESULT=="< disk ID >" einfügen
KERNEL=="sd*",ENV{DEVTYPE}=="partition",ATTR{partition}=="1",PROGRAM=="/lib/udev/scsi_id -gud /dev/$name",RESULT=="36000c290247803885fc89cd157d518f6",SYMLINK+="oracleasm/OCR_ASM_1", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="sd*",ENV{DEVTYPE}=="partition",ATTR{partition}=="2",PROGRAM=="/lib/udev/scsi_id -gud /dev/$name",RESULT=="36000c290247803885fc89cd157d518f6",SYMLINK+="oracleasm/DAT_ASM_1", OWNER="grid", GROUP="oinstall", MODE="0660"
KERNEL=="sd*",ENV{DEVTYPE}=="partition",ATTR{partition}=="3",PROGRAM=="/lib/udev/scsi_id -gud /dev/$name",RESULT=="36000c290247803885fc89cd157d518f6",SYMLINK+="oracleasm/FRA_ASM_1", OWNER="grid", GROUP="oinstall", MODE="0660"
# Filesystem check für die Devices der drei Partitionen
fsck -N /dev/sdb?
# Die neuen Partitionen für den Kernel sichtbar machen
partx -u /dev/sdb1
partx -u /dev/sdb2
partx -u /dev/sdb3
# Simulation eines Udev Events (Test) auf den Partitionen
udevadm test /block/sdb/sdb1
udevadm test /block/sdb/sdb2
udevadm test /block/sdb/sdb3
# Udev Regel neu laden und prüfen
udevadm control --reload-rules && udevadm trigger --action=add
ls -l /dev/sdb?
ls -lt /dev/oracleasm
Mit dem vorigen und letzten Schritt sind wir nun auch fertig mit der Konfiguration von Oracle Linux 8 als Standalone Host.
Mit dieser Anleitung sollten Sie nun in der Lage sein, problemlos Oracle Linux 8 zu installieren und zu konfigurieren.
Falls Sie Probleme im Installationsprozess oder auch bei der Anwendung haben, stehen Ihnen unsere Oracle Experten mit Rat und Tat zur Seite.
Vereinbaren Sie gerne ein unverbindliches Beratungsgespräch und lassen sich von unseren Spezialisten umfangreich beraten. Kontaktieren Sie uns dafür gerne über unser Kontaktformular. Wir freuen uns von Ihnen zu hören!