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