Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:linux_8_system_grundeinstellungen_oracle_datenbank_rac

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 ⇒ 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: 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 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.

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:

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

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 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 ⇒ 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

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

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:


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 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:


Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
linux/linux_8_system_grundeinstellungen_oracle_datenbank_rac.txt · Zuletzt geändert: 2023/10/18 14:39 von gpipperr