====Ein Oracle Linux 8 Basis System als Grundlagen für eine Oracle Clusterware und Datenbank Installation vorbereiten====
Zum Einsatz kommt Oracle Linux 8.3
Diese Software kann hier heruntergeladen werden: http://public-yum.oracle.com/oracle-linux-downloads.html
Zertifizierung:
* Oracle Database 19.0.0.0.0 is certified on Linux x86-64 Oracle Linux 8.x mit Unbreakable Enterprise Kernel 6: 5.4.17-2011.0.7.el8uek.x86_64 or later.
* Oracle Real Application Clusters 19.0.0.0.0 is certified on Linux x86-64 Oracle Linux 8.x with the Unbreakable Enterprise Kernel 6: 5.4.17-2011.0.7.el8uek.x86_64 or later
Für Oracle Linux 7 sehe hier => [[linux:linux_7_system_grundeinstellungen_oracle_datenbank_rac|Ein Oracle Linux 7 Basis System als Grundlagen für eine Oracle Clusterware und Datenbank Installation vorbereiten]]
----
==== Grundinstallation ====
Für eine minimale Installation ist min 8GB RAM, ca. 40-50GB Harddisk, 1 bis 2 Netzwerk Karten (2 Karten für Cluster) und eine CPU notwendig um eine VMWare Maschine aufzusetzen.
Weniger Speicher ist nicht zu empfehlen, gerade für eine ASM oder Oracle Cluster Umgebung ist hier großzügig zu planen!
Normale Grundinstallation als minimalster Server ohne X, keine weiteren Packete auswählen aber mit UEK Kernel 5!
Als Sprache aber "Englisch" wählen, je nach Bedarf deutsche Tastatur einstellen.
Die Platte wird manuell konfiguriert, das Default Layout verwendet sehr viel Platz für den User Home Pfad.
(2000MB boot, 4GB Swap, Rest für root "/" als LVM mit xfs).
Für die reine Oracle Installation werden dabei ca. ~8-12GB für die DB Software am Plattenplatz benötigt.
Hier großzügig planen, mit jeden Patch kommen schnell mal 2-4GB an neuen Daten zusammen!
Ablauf nach der Grundinstallation:
* Netzwerk Konfiguration durchführen
* Yum Repository einrichten
* SE Linux ausschalten
* OS update einspielen
* Notwendige Linux Pakete einspielen
* Hugepages einrichten
* Firewall Einstellungen prüfen
* NTP prüfen/aktivieren
* Kernel Settings überpürfen/anpassen
* TempFs überprüfen
* Oracle für ASM und Oracle Home einrichten
* Oracle Verzeichnisse anlegen
* Super für die Administration der verschiedenen User bei Bedarf einrichten
=== UEK Kernel für ACFS / AFD überprüfen ===
Für den Oracle AFD Treiber unter Oracle Linux 8 wird benötigt => UEK 5.4.17 kernels oder höher ab 19.10.210119 (Base Bug 30590023)
Siehe dazu => ACFS Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1) =>Abschnitt ACFS and AFD 19c Supported Platforms
Prüfen und bei Bedarf aktualsieren mit:
cat /etc/oracle-release
Oracle Linux Server release 8.4
uname -r
4.18.0-305.12.1.el8_4.x86_64
# zu niedrig!
dnf install kernel-uek.x86_64
dnf update
# welcher Kernel booted als default
grubby --default-kernel
/boot/vmlinuz-5.4.17-2102.204.4.4.el8uek.x86_64
reboot
Siehe auch => https://docs.oracle.com/en/learn/oracle-linux-kernels/#check-available-kernels
----
==== VMWare Setup ====
Kommt VMWare zum Einsatz, ist die Installation der eigentlichen VMware Tools in Oracle 8 nicht mehr möglich, diese werden von VMware nicht mehr weiter entwickelt und wurden durch "open-vm-tools" erstetzt.
Siehe => : http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2073803
yum install open-vm-tools
----
=====Basis Konfiguration=====
Nach der Grundinstallation die folgende Schritte durchführen.
==== Netzwerk Konfiguration ====
Seit Linux 7 haben sich einige Änderungen am Netzwerk Stack ergeben, siehe http://www.resetlogs.com/2014/08/ol7-network.html.
Um Probleme mit älteren Werkzeugen und vor diesen Verfahren entwickeltere Software aus den Weg zu gehen empfehle ich die alte Namenskonvention wieder zu aktivieren: [[linux:linux7_et_interface_name_anpassen|Unter Linux 7 den Netwerk Interface Namen wieder auf Standard Verhalten umstellen]]
Um die alten Kommandos wieder zu erhalten, kann aber über "yum info net-tools" nach installiert werden.
Im ersten Schritte versuchen wir mal mit dem neuen auszukommen, siehe auch [[https://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/| Deprecated Linux networking commands and their replacements]]
Bei der Installation der 12c Rac Clusters ergibt sich aber beim root.sh eine Fehlermeldung (sh: /bin/netstat: No such file or directory ) daher, idt doch die Installation der Linux 6 Tools zu Empfehlen (yum install net-tools).
Für ein Oracle Cluster werden mindestens 2 Netzwerkkarten benötigt, eine (eth0) für die Public IP Adresse und das VIP Interface und den Scan Listener und min. eine Karte (eth1) für den lokalen Interconnect zwischen den Maschinen.
In einer RAC Umgebung können aber auch mehrere Interfaces für den Interconnect zwecks Ausfallsicherheit konfiguriert werden.
* Bzgl. Netzwerk Konfiguration für ein Oracle Cluster siehe auch [[dba:rac_add_second_ip|Ein neues VIP und ein neues Netzwerk einem RAC Cluster ONLINE hinzufügen]]
Status:
ip link show
Unter Linux 7 wird eine Netzwerkkarte aber nicht mehr so benannt wie zuvor unter Unix gewohnt, um Probleme damit aus den Weg zu gehen, den Interface Name wieder auf den alten eth0/1 Standard konfigurieren:
* [[linux:linux7_et_interface_name_anpassen| Unter Linux 7 den Netzwerk Interface Namen wieder auf Standard Verhalten umstellen]]
=== Alte Tools nachinstallieren===
dnf install net-tools
===Netzwerk IP Adresse für eth0 und eth1 hinterlegen und prüfen===
#Bei Bedarf entsprechend konfigurieren
cd /etc/sysconfig/network-scripts/
# Dateien für ifcfg-eth* entsprechend anlegen
#Beispiel Datei
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=ens160
UUID=48ece1ca-0fc3-4982-a28a-077bcdf2a8ed
DEVICE=ens160
ONBOOT=yes
IPADDR=10.10.10.112
PREFIX=24
GATEWAY=10.10.10.254
DNS1=8.8.8.8
IPV6_DISABLED=yes
MTU=16436
# auf einen Netzmask Eintrag achten!
PREFIX0=24
NOZEROCONF Parameter setzen:
vi /etc/sysconfig/network
NOZEROCONF=yes
===Hostname prüfen und bei Bedarf neu setzen===
#über Kommando Werkzeug
hostnamectl set-hostname racdb01.pipperr.local
# Neue Session starten und püfen
nmcli general hostname
# Konfiguration prüfen
cat /etc/hostname
Der voll qualifizierte Namen einer Oracle DB oder RAC Maschine darf sich nachträglich nach einer Oracle Installation NIE mehr ändern! Gleich richtig vergeben, eine Anpassung ist sehr umständlich, da zum Teil Verzeichnisse mit dem Maschinen-Namen vom Installer bzw. den Loggern der Oracle Produkte angelegt werden! Auch die IP Adresse sollte stabil bleiben um viel kleinteiligen Ärger zu vermeiden!
=== Nameserver anlegen ===
* siehe auch [[raspberry:pidora_power_dns|Raspberry PI als DNS Applicance für PowerDNS]]
===Nameserver auf dem Host konfigurieren===
dnf install bind-utils
vi /etc/resolv.conf
search pipperr.local
nameserver 192.168.178.100
#prüfen ob auf den Netzwerk Interface auch der gleiche Nameserver konfiguriert ist!
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.178.100
systemctl restart network
#prüfen
host racdb01-vip.pipperr.local
dig -x 10.10.10.192
===Servername in der Host Datei hinterlegen===
vi /etc/hosts
10.10.10.190 raccb01.pipperr.local raccb01
===avahi-daemon ausschalten===
avahi-daemon => „zero-configuration networking (zeroconf) implementation“
systemctl disable avahi-daemon
===IP V6 ausschalten===
vi /etc/sysctl.conf
# disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
#aktivieren
sysctl -p
#Testen mit:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1
# 1=Ausgeschaltet!
=== Name Service Cache Daemon===
Für eine Grid Umgebung: Den Name Service Cache Daemon aktiveren
dnf install nscd
systemctl enable nscd
Mit dem Befehl "nscd -i hosts" kann der Cache bei Bedarf neu geladen werden.
----
==== Weitere Repositories hinzufügen====
# Repos einrichten
cd /etc/yum.repos.d
vi oraclelinux-codeready-ol8.repo
[OL8_codeready_builder]
name= checkmk dependencies
baseurl=http://yum.oracle.com/repo/OracleLinux/OL8/codeready/builder/x86_64
enabled=1
gpgcheck=0
#
dnf install oracle-epel-release-el8.x86_64
dnf install oraclelinux-developer-release-el8.x86_64
#Was ist bereits aktiviert?
dnf repolist
repo id repo name
OL8_codeready_builder checkmk dependencies
ol8_UEKR6 Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64)
ol8_addons Oracle Linux 8 Addons (x86_64)
ol8_appstream Oracle Linux 8 Application Stream (x86_64)
ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64)
ol8_developer Oracle Linux 8 Development Packages (x86_64)
ol8_developer_EPEL Oracle Linux 8 EPEL Packages for Development (x86_64)
# oder falls nur dekativiert
# yum-config-manager --enable ol8_developer_EPEL
# prüfen ob das Addon Repository auch aktiviert ist!
/etc/yum.repos.d
vi oracle-linux-ol8.repo
[ol8_addons]
name=Oracle Linux 8 Addons ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
#enabled muss auf 1 stehen!
----
====Update und Tools installieren====
Mit Oracle 8 kommt dnf "Dandified Yum (DNF)" zum Einsatz.
Update mit:
dnf upgrade --refresh
=== Library / Software Packete für den Oracle Produktstack installieren ===
Mit Oracle Linux 8:
dnf install -y oracle-database-preinstall-19c
# oder wenn eine 23c zum Einsatz kommt
dnf install -y oracle-database-preinstall-23c
----
=== Tools nachinstallieren ===
**Nmon**
Top Ersatz mit einfacher Bedienung und vielen Featuren. => http://nmon.sourceforge.net/pmwiki.php
Linux 8 => https://sourceforge.net/projects/nmon/files/nmon16m_x86_64_rhel8/download
cp nmon16m_x86_64_rhel8 /sbin/nmon
chmod 777 /sbin/nmon
**zip**
dnf install zip unzip
**Linux Tools wie lsof **
Offene Datei/System Pointer anzeigen lassen
Per default in der Minimal Server Installation anscheinend nicht mehr dabei.
dnf install lsof strace
**Für Oracle Cluster **
Für Installer und clufy rpm:
dnf install smartmontools psmisc xdpyinfo
** Screen **
siehe auch [[linux:linux_screen|Skripte mit screen in den Hintergrund schieben]]
! Achtung ab Oracle Linux 8 wird von Oracle als alternative "Tmux" eingesetzt, Screen ist nicht mehr im Standard Repo!
dnf install tmux
Befehle siehe z.B. =>https://tmuxcheatsheet.com/
----
==== SSH optimieren, automatisches X Forwarding aktivieren ====
Um Timeouts zu vermeiden
vi /etc/ssh/sshd_config
LoginGraceTime 0
Bei folgenden Fehler beim Login über z.B. MoboTerm:
* "x11 forwarding request failed on channel 0"
dnf install xauth
vi /etc/ssh/sshd_config
X11Forwarding yes
X11UseLocalhost no
#restrict to ipv4
AddressFamily inet
# prüfen ob alle ok ist
sshd -t
# neu starten
systemctl restart sshd
# abmelden und erneut per ssh anmelden
# Meldung " /usr/bin/xauth: file /root/.Xauthority does not exist"
# prüfen ob nun diese Datei anlegt wurde
ls -la /root/.Xauthority
OK!
Tipp: Zum Debuggen von SSL den Schalter -v verwenden wie "ssh -v localhost"
Keine Banner oder ähnliches setzen! Das stört erheblich die Installation!
siehe auch bzgl. ipv6 https://major.io/2014/07/24/x11-forwarding-request-failed-on-channel-0/
----
====Firewall und SELinux====
Da in einer reine Testumgebung keine FW notwendig ist, diese deaktivieren oder komplett durchkonfigurieren.
An den Port 5000 für das AHF Framework denken!
==Firewall unter Linux 8 deaktivieren==
systemctl disable firewalld
systemctl stop firewalld
==SELinux deaktiviert==
[root@nosqldb01 ~]#
vi /etc/selinux/config
..
SELINUX=disabled
..
reboot
#testen
getenforce
Disabled
----
==== TMP ====
Prüfen das ausreichend tmp Platz vorhanden ist, min. 1GB
Falls das Tmp Verzeichnis als eigene Disk gemountet ist, darauf achten das "Execute" gesetzt ist und nicht mit "noexec" gemounted wurde
cd /tmp
df . -h
cat /etc/fstab
----
==== Ntp / chrony - Oracle Cluster Time Synchronization Service ====
Zeitdienst prüfen und einrichten.
Vor der Wahl des Zeit Service Dokumentation des Oracle Clusters prüfen ob CHRONY unterstützt wird.
Bzw. gleich auf den Oracle Cluster Time Synchronization Service setzen und weder ntp noch chrony einsetzen.
=== Linux 8 ===
Ntp steht hier nicht mehr zur Verfügung, hier bleibt nur der chrony Dienst.
=== NTP konfigurieren falls verfügbar ===
! Diesen Abschnitt bin ich noch am prüfen, hier scheint ab 18c Cluster unter Linux 8 etwas geändert zu haben!
Leider wird CHRONY wohl nicht so recht Vor einem 12.2 Oracle Cluster! und unterstützt und muss deaktiviert werden
systemctl stop chronyd
systemctl disable chronyd
Siehe auch => [[linux:linux_rac_ntp|Die Uhrzeit unter Linux für eine Oracle Cluster Installation überwachen/prüfen und kontrollieren]]
Auf die " -x" Option achten!
# Einstellung prüfen
timedatectl
yum install ntp
# Optionen setzen
#
vi /etc/sysconfig/ntpd
OPTIONS=" -x -g"
# Set the ntp Settings
#
vi /etc/ntp.conf
#server
# My local ntp Server
server 192.168.178.1
#rights
# The rac public network can use the ntp
restrict 10.10.10.0 mask 255.255.255.0 nomodify notrap
#check your local nameserver and set the time
ntpdate 192.168.178.1
#activate the service
systemctl enable ntpd
systemctl start ntpd
systemctl status ntpd
ntpq -p
#bei fehlern prüfen mit:
journalctl -xn
Fehler:
Mar 11 20:51:29 racdb01 ntpd[2330]: 0.0.0.0 c617 07 panic_stop -3601 s; set clock manually within 1000 s.
Lösung: "--g, --panicgate" Schalter, falls beim ersten Start der time offset > 1000s beendet sich der ntpd
Auf allen Knoten im Cluster prüfen das diese Ausgabe die selben Werte anzeigt:
ntpq -pn
Der Installer prüft das später ab!
----
====Oracle User Grid und Oracle anlegen====
Einige Gruppen und User existieren chon wenn mit "dnf install -y oracle-database-preinstall-19c" zuvor installiert wurde.
Gruppen und User anlegen:
groupadd -g 1000 oinstall
groupadd -g 1001 dba
groupadd -g 1002 asmadmin
useradd -u 1100 -g oinstall -G dba oracle
usermod -a -G asmadmin oracle
passwd oracle
useradd -u 1101 -g oinstall -G dba grid
usermod -a -G asmadmin grid
passwd grid
==== User Securtiy und Limits / Profile setzen ====
Um die Limits zu konfigurieren stehen zwei Möglichkeiten zur Verfügung.
Einmal über die klassische** /etc/security/limits.conf** oder über eine Datei unter **/etc/security/limits.d/** wie "oracle-database-preinstall-19c.conf" oder auch "98-oracle.conf"
Zuerst wird die /etc/security/limits.conf eingelesen danach die Datei(en) unter /etc/security/limits.d!
**Darauf achten auch in der richtigen Datei die Änderungen durchzuführen!**
Eintrag in etc/security/limits.d/98-oracle.conf:
vi /etc/security/limits.conf
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000
oracle soft stack 10240
grid soft nofile 131072
grid hard nofile 131072
grid soft nproc 131072
grid hard nproc 131072
grid soft core 10000000
grid hard core 10000000
grid soft memlock 50000000
grid hard memlock 50000000
grid soft stack 10240
Bei sehr großen verfügbaren RAM und geplannten großen SGA's auf der Maschine, evtl die Core Dump Size einschränken, um die Platte nicht zu überlasten, z.b. auf 10MB = 10000000 bytes.
/etc/pam.d/login:
vi /etc/pam.d/login
…
session required pam_limits.so
…
In einer zweiten Console prüfen ob jetzt noch eine Anmeldung möglich ist, nicht das ein kleiner Fehler einem vom System ausschließt!
===Global Profile (/etc/profile )===
vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
if [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Als Oracle User testen:
su - oracle
ulimit -Sn
65536
ulimit -Hn
65536
ulimit -Su
16384
ulimit -Hu
16384
ulimit -Ss
10240
ulimit -Hs
Unlimited
=== Umask setzen ===
Für Grid und Oracle User:
su - oracle
vi .bashrc
umask 0022
#dann auf für den Grid user! su - grid
----
====Software Verzeichnis anlegen ====
Database:
mkdir -p /opt/oracle
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle
mkdir /opt/oraInventory
chown grid:oinstall /opt/oraInventory
chmod 777 /opt/oraInventory
chmod o-w /opt/oraInventory
Grid: (auf die richtige Software Version achten!)
mkdir -p /opt/18.1.0.0/grid
chown -R grid:oinstall /opt/18.1.0.0/grid
chmod -R 775 /opt/18.1.0.0/grid
----
==== Auto cleanup für die Temporary Location konfigurieren ====
Auto Cleanup für die Temporary Location für die Temp Socket Dateien des Cluster Konfigurieren.
Anmerkung von orachk (Configure verify temporary location for auto cleanup):
#
#On Linux OL7/RHEL7, if proper configuration setting is not then the communication socket files under directories #/tmp/.oracle and /var/tmp/.oracle directories get deleted.
#Risk: Communication break down between Clusterware, ASM,Database and listener.
#Action / Repair:
vi /usr/lib/tmpfiles.d/tmp.conf
# Oracle Temp Settings
x /tmp/.oracle*
x /var/tmp/.oracle*
x /usr/tmp/.oracle*
Siehe auch => https://developers.redhat.com/blog/2016/09/20/managing-temporary-files-with-systemd-tmpfiles-on-rhel7/
----
====Shared Memory File System Mount on Linux====
Set to:
#Check
df -h
#if missing
more /etc/fstab |grep "tmpfs"
vi /etc/fstab
tmpfs /dev/shm tmpfs rw,exec,size=2048M 0 0
----
==== Huge Page Settings ====
see Artikel über Huge Pages:[[linux:huge_pages_linux_oracle|Huge Pages für eine Oracle Datenbank einrichten - Transparent Huge Pages deaktivieren]]
=== Disable Transparent Huge Pages ===
Noch in Linux 7 aktiv?? Prüfen
Pürfen ob im Einsatz:
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
# so im einsatz
[always] never
Aussschalten über Grub
vi /etc/default/grub
GRUB_CMDLINE_LINUX=".... transparent_hugepage=never"
#Grub Config neu schreiben lassen
grub2-mkconfig -o /boot/grub2/grub.cfg
----
==== Core Dump Verhalten optimieren ====
Zentrales Verzeichniss für Dumps einrichten wie /var/tmp/core und Kernel Parameter setzen
mkdir /var/tmp/core
chmod 777 /var/tmp/core
vi /etc/sysctl.conf
kernel.core_uses_pid=1
kernel.panic_on_oops = 1
kernel.core_pattern = /var/tmp/core/coredump_%h_.%s.%u.%g_%t_%E_%e
fs.suid_dumpable=1
sysctl -p
Core File Parameter:
* %p: pid
* %%: output one '%'
* %u: uid - user id
* %g: gid - group id
* %s: signal number
* %t: UNIX time of dump
* %h: hostname
* %e: executable filename
* %E: pathname of executable
* %h: hostname
==testen==
Als Oracle User anmelden und Dump verursachen, testen ob die Datei da ist
su - oracle
ulimit -c unlimited # set the core file size ! if 0 you will get no Corefile at all!
kill -s SIGSEGV $$
Segmentation fault (core dumped)
cd /var/tmp/core/
ls
coredump_racdb01.pipperr.local_.11.1100.1100_1426632616_!usr!bin!bash_bash.2779
#Datum aus dem Core anzeigen mit:
date -d @1426632616
Tue Mar 17 23:50:16 CET 2015
# auswerten mit
# gdb programm coredump
gdb /usr/bin/bash coredump_racdb01.pipperr.local_.11.1100.1100_1426632616_\!usr\!bin\!bash_bash.2779
readelf -Wa coredump_racdb01.pipperr.local_.11.1100.1100_1426632616_\!usr\!bin\!bash_bash.2779
----
==== Oracle Kernel Parameter setzen ====
Linux Kernel Parameter können über **/etc/sysctl.conf** oder über eine Datei unter **/etc/sysctl.d** wie "99-oracle-database-preinstall-19c-sysctl.conf" konfiguriert werden.
Damit die /etc/sysctl.conf als letzte Datei eingelesen wird, liegt normalerweise unter **/etc/sysctl.d** in Link wie "99-sysctl.conf".
Um die Oracle Einstellungen nun anzupassen, sollte eine eigenen Oracle Datei unter **/etc/sysctl.d** angelegt werden bzw falls das Oracle Pre RPM für 19c verwendet wurde, wurde diese schon angelegt.
/etc/sysctl.d/98-oracle.conf:
vi /etc/sysctl.conf
fs.aio-max-nr = 3145728
fs.file-max = 6815744
#vm.min_free_kbytes >= 524288 && <= 1048576"
#reclaim memory faster and avoid LowMem pressure issues
#Note: 1367153.1 - Top 5 Issues That Cause Node Reboots or Evictions or Unexpected Recycle of CRS
vm.min_free_kbytes=524288
# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
# max 50% of total memory
# Adjust this to your setting for your maschine!
kernel.shmmax = 2097152000
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.conf.all.rp_filter = 2
kernel.panic_on_oops = 1
Einlesen mit:
sysctl --system
# genau auf die Datei Pfade in der Ausgabe achten!
Früher wurde gerne mit "sysctl -p" gearbeitet, das ließt aber NUR die "/etc/sysctl.conf" ein!
==Netzwerk Parameter ==
Netzwerk Parameter im Detail => https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
siehe auch:
* [[linux:memory_system_v_opc_parameter|Linux - System V - IPC-Parameter und die Oracle Datenbank]]
* http://blog.ronnyegner-consulting.de/2009/10/28/calculate-required-kernel-parameters-for-running-oracle-11g-release-2-on-linux/
=== Einstellungen bzgl. ORA-27301:OS Failure Message: No Buffer Space Available ===
Oracle Linux: ORA-27301:OS Failure Message: No Buffer Space Available (Doc ID 2041723.1)
vm.min_free_kbytes auf einen Wert von 0,4% Hauptspeicher setzen
vi /etc/sysctl.conf
#vm.min_free_kbytes >= 524288 && <= 1048576"
#reclaim memory faster and avoid LowMem pressure issues
#Note: 1367153.1 - Top 5 Issues That Cause Node Reboots or Evictions or Unexpected Recycle of CRS
vm.min_free_kbytes=524288
sysctl -p
Zusätzlich wird empfohlen die MTU auf dem Localhost Adapter zu erhöhen.
Online mit :
ifconfig lo mtu 16436
In /etc/sysconfig/network-scripts/ifcfg-lo hinterlegen, damit das beim nächsten Boot auch klappt:
vi /etc/sysconfig/network-scripts/ifcfg-lo
..
MTU=16436
..
----
==== Multipathing auf den Storage Devices für ASM optimieren ====
Je nach der eingesetzten Storage Anbindung hier mit viel Sorgfalt prüfen und einrichten!
Oft das Hauptproblem einer Oracle Real Applikation Cluster Installation!
siehe auch http://www.oracle.com/technetwork/topics/linux/multipath-097959.html
Um bei Problemen besser die Umgebung zu verstehen, die Tool der Karten Hersteller installieren
Wie bei Emulex:
* http://www.sysadminshare.com/2013/05/manage-hba-with-one-command-manager.html
* http://www.lazysystemadmin.com/2011/07/managing-emulex-hba-with-hbacmd.html
* http://www.avagotech.com/support/download-search
----
==== Java Installation====
!Achtung! Nur wenn Java auch ausschließlich mit Oracle Produkten verwendet wird! Lizenzbedingungen beachten!!
Siehe dazu die Node => Support Entitlement for Java SE When Used As Part of Another Oracle Product (Doc ID 1557737.1)
===Alternativ open-jdk verwenden===
dnf install java-latest-openjdk.x86_64
# Versionen anzeigen
/usr/sbin/alternatives --display java
# Version einstellen
/usr/sbin/alternatives --config java
# Version auswählen
DAs Java_Home ist dann so etwas wie => "/usr/lib/jvm/java-16-openjdk-16.0.1.0.9-3.rolling.el8.x86_64", allerdings sollte eigentlich dann "/usr/java/latest" funktionieren, hmm, mit "alternatives" wurde das jetzt aber nicht automatisch angelegt.
===Oracle Java, falls nur z.b. der ORDS zum Einsatz kommen soll===
Notwendige Java Version prüfen und JDK nach Bedarf installieren.
Falls [[dba:sqlcl_oracle_command_line_in_12c|SQLcl]] auf der Maschine eingesetzt werden soll, ist das zwingend notwendig.
** Als User root! **
Kopieren jdk-15.0.2_linux-x64_bin.rpm von [[https://www.oracle.com/java/technologies/javase-jdk15-downloads.html]] und installieren / aktivieren:
# Java installieren
dnf install --nogpgcheck jdk-15.0.2_linux-x64_bin.rpm
# Java aktivieren
# Neue Java Version dem OS bekannt geben
/usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk-15.0.2 1502
# Versionen anzeigen
/usr/sbin/alternatives --display java
# Version einstellen
/usr/sbin/alternatives --config java
# Version auswählen
# testen
java -version
java version "15.0.2" 2021-01-19
# alte Java Version deinstallieren
dnf list installed java*
dnf erase java-11-openjdk.x86_64 java-11-openjdk-headless.x86_64
Das Programm jps sollte auf dem Server im Pfad liegen/funktionieren, ist sehr hilfreich für die Wartung
Nach einem Java Upgrade muss das Kommando jps evlt. wieder neu verlinkt werden:
#testen ob notwendig, in 15.0 hat es aber mit alternatives richtig geklappt
jps -m
# falls fehler
# über /usr/bin verlinken
rm /usr/bin/jps
ln -s /usr/java/jdk-15.0.2/bin/jps /usr/bin/jps
----
==== Umgebung validieren - nicht nur für eine Oracle Cluster Installation! ====
CVU Tool unter https://www.oracle.com/database/technologies/cvu-downloads.html herunterladen.
Bzw. über Support unter "Patch 30839369: Standalone CVU version 19.10 January 2021"7
**Als User oracle!**
* Datei "cvupack_linux_ol7_x86_64.zip" herunter laden
* SHA-1 Key prüfen
sha1sum cvupack_linux_ol7_x86_64.zip
d18473f3a8f63c27152e5ae0f70b0780183c33c4 cvupack_linux_ol7_x86_64.zip
* Datei auspacken z.B. nach /opt/oracle/cvu
mkdir -p /opt/oracle/cvu/
unzip ~/cvupack_linux_ol7_x86_64.zip -d /opt/oracle/cvu/
* Clufy Util aufrufen
cd /opt/oracle/cvu/bin
./cluvfy
./cluvfy comp sys -p database
Verifying Physical Memory ...PASSED
Verifying Available Physical Memory ...PASSED
Verifying Swap Size ...PASSED
...
Verifying Package: net-tools-2.0-0.51 ...PASSED
Verifying Users With Same UID: 0 ...PASSED
Verifying Root user consistency ...PASSED
Verification of system requirement was successful.
# alternativ
./cluvfy comp sys -p database -r 19
#
./cluvfy stage -pre crsinst -n gpi01.pipperr.local
Vor der Installation eines Oracle Produktes darauf achten, das hier keine Fehler mehr gemeldet werden.
----
==== Bash optimieren - Arbeitsumgebung einrichten ====
Wenn die Basis steht kann die eigenen Arbeitszumgebung noch mit alias / Prompt Einstellung etc. auf den persönlichen Geschmack eingestellt werden.
Praktische Aliase:
# suche nach ausgeführten Befehlen
alias fc=fc -l -r
----
==== Nächste Schritte ====
Diese Maschine kann nun als Klone für den zweiten Knoten dienen, auf diesen sind dann nur noch die IP Adressen und Namen anzupassen.
Zum Beispiel zum Klonen ausschalten mit:
systemctl poweroff -i
Nach der generellen Vorbereitung des OS kann die Einbindung des Storages erfolgen um dann im nächsten Schritt mit der Installation des Clusters zu beginnen.
Nächste Schritte:
* => [[dba:install_rac_linux_18c|Anmerkungen zu einer Installation vom Oracle Real Application Cluster 18c auf Oracle Linux x64 7.5]]
* => [[dba:install_rac_linux_12c#storage_bereitstellen|Oracle 12c RAC Cluster aufsetzen]]
* => [[dba:install_oracle_12c_linux_single_asm_server| Oracle 12c Datenbank mit ASM Storage Single Server]]
* => [[dba:install_oracle_19c_linux_single_asm_server|Anmerkungen zu einer Installation Oracle 19c mit der ASM Option unter Oracle Linux 8.4]]
----
==== Quellen ====
Zentraler Link zu Oracle Linux 8 => https://yum.oracle.com/
Oracle Linux 8
Netzwerk Konfigurieren
* https://docs.oracle.com/en/operating-systems/oracle-linux/8/network/F21491.pdf
Unterschiede 7 zu 8
* https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/considerations_in_adopting_rhel_8/index