Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:linux_7_system_grundeinstellungen_oracle_datenbank_rac

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
linux:linux_7_system_grundeinstellungen_oracle_datenbank_rac [2019/12/08 19:58]
gpipperr [Shared Memory File System Mount on Linux]
linux:linux_7_system_grundeinstellungen_oracle_datenbank_rac [2019/12/08 20:00] (aktuell)
gpipperr [Tmp File Verhalten]
Zeile 1: Zeile 1:
 +====Ein Oracle Linux 7 Basis System als Grundlagen für eine Oracle Clusterware und Datenbank Installation vorbereiten====
 +
 +**Update auf Linux 7.5 - Juni 2018**
 +
 +Zum Einsatz kommt Oracle Linux 7.0, ab 01.12.2015 ein Oracle Linux 7.2, ab 07.2018 ein Oracle 7.5.
 +
 +Diese Software kann hier heruntergeladen werden: https://edelivery.oracle.com/osdc/faces/SearchSoftware
 +
 +Unterstützt wird zur Zeit für die DB (03.2015) ein Oracle Linux 7 mit dem Unbreakable Enterprise Kernel 3.8.13-33.el7uek.x86_64 oder später.
 +
 +==== 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 minimaler Server, keine weiteren Packte ausgewählt.
 +
 +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.
 +(500MB boot, 4GB Swap, Rest für root "/" als LVM mit xfs).
 +
 +Nicht die Option "Installation Source" wählen! Einmal angeklickt muss hier eine gültige URL eingeben werden oder es kann neu angefangen werden .-(, gültige URL ist z.b. <nowiki>https://yum.oracle.com/repo/OracleLinux/OL7/latest/$basearch/</nowiki>.
 +
 +
 +Für die reine Oracle Installation werden dabei ca. ~6GB für die DB Software am Plattenplatz benötigt.
 +
 +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
 +
 +
 +----
 +
 +
 +=== VMWare Setup ===
 +
 +Kommt VMWare zum Einsatz, ist die Installation der Tools zu empfehlen.
 +
 +siehe: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1014294
 +
 +Tools installieren, Tools CD Mounten und  VMwareTools-9.6.2-1688356.tar.gz  nach /tmp kopieren, auspacken und installieren
 +<code bash>
 +yum install perl
 +yum install net-tools
 +
 +mount /dev/cdrom /mnt
 +
 +cp /mnt/VMwareTools-9.6.2-1688356.tar.gz /tmp
 +
 +cd /tmp
 +tar xvfz VMwareTools-9.6.2-1688356.tar.gz
 +
 +cd /tmp/vmware-tools-distrib
 +
 + ./vmware-install.pl
 +
 +#Nur das Notwendigstes auswählen, ist ja kein X installiert
 +
 +reboot
 +
 +</code>
 +
 +Bei Fehler<fc #800000> "The path "" is not a valid path to the 3.8"</fc> beim siehe=> https://fritshoogland.wordpress.com/2013/12/16/building-vmware-tools-in-your-oracle-linux-uek3-vm/
 +<code bash>
 +ln -s /usr/src/kernels/3.8.13-55.1.8.el7uek.x86_64/include/generated/uapi/linux/version.h /usr/src/kernels/3.8.13-55.1.8.el7uek.x86_64/include/linux/version.h
 +</code>
 +
 +
 +== Alternativ nur die Open-VMWare Tools==
 +
 +see: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2073803
 +
 +<code bash>
 +yum install open-vm-tools
 +</code>
 +
 +
 +----
 +
 +====Basis Konfiguration====
 +
 +Nach der Grundinstallation folgende Schritte durchführen.
 +
 +
 +=== Netzwerk Konfiguration ===
 +
 +In 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:
 +<code bash>
 +ip link show
 +</code>
 +
 +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==
 +
 +<code bash>
 +yum install net-tools
 +</code>
 +
 +==Netzwerk IP Adresse für eth0 und eth1 hinterlegen und prüfen==
 +<code bash>
 +#Was ist bereits wie eingerichet
 +pifconfig
 +
 +#Bei Bedarf entsprechend konfigurieren
 +cd /etc/sysconfig/network-scripts/
 +# Dateien für ifcfg-eth* entsprechend anlegen
 +
 +# auf einen Netzmask Eintrag achten!
 +PREFIX0=24
 +
 +</code>
 +
 +NOZEROCONF Parameter setzen:
 +
 +<code bash>
 +vi /etc/sysconfig/network
 +NOZEROCONF=yes
 +</code>
 +
 +==Hostname prüfen und bei Bedarf neu setzen==
 +
 +<code bash>
 +#über Kommando Werkzeug
 +hostnamectl set-hostname racdb01.pipperr.local
 +# Neue Session starten und püfen
 +nmcli general hostname
 +# Konfiguration prüfen
 +cat /etc/hostname
 +</code>
 +
 +
 +==Nameserver konfigurieren==
 +
 +  *  siehe auch [[raspberry:pidora_power_dns|Raspberry PI als DNS Applicance für PowerDNS]] 
 + 
 +==Nameserver auf dem Host konfigurieren==
 +<code bash>
 +yum 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
 +
 +
 +</code>
 + 
 +==Servername in der Host Datei hinterlegen==
 +
 +<code bash>
 +vi /etc/hosts 
 +
 +10.10.10.190 raccb01.pipperr.local raccb01
 +</code>
 +
 +==avahi-daemon ausschalten==
 +avahi-daemon  => „zero-configuration networking (zeroconf) implementation“
 +<code bash>
 +systemctl disable avahi-daemon
 +</code>
 +  
 +  
 +==IP V6 ausschalten==
 +
 +<code bash>
 +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!
 +</code>
 +
 +
 +----
 +
 +
 +===Update===
 +
 +Yum Repository prüfen, Konfiguration bei Bedarf anlegen:
 + <code bash>
 +# cd /etc/yum.repos.d
 +
 +wget http://public-yum.oracle.com/public-yum-ol7.repo
 +</code> 
 +  
 +Update mit:
 +<code bash>
 +yum update
 +</code>
 +
 +
 +=== Tools nachinstallieren ===
 +
 +**Nmon**
 +
 +Top Ersatz mit einfacher Bedienung und vielen Featuren.
 +
 +[[http://nmon.sourceforge.net/pmwiki.php?n=Main.HomePage|Nmon]] in der Version nmon_x86_64_rhel6 - über http://sourceforge.net/projects/nmon/files/nmon_x86_64_rhel6/download herunterladen, bzw nun die aktuelle Version für 7.1 https://sourceforge.net/projects/nmon/files/nmon16e_x86_rhel72/download verwenden.
 +
 +<code bash>
 +cp nmon16e_x86_rhel72 /sbin/nmon
 +chmod 777 /sbin/nmon
 +</code>
 +
 +**zip**
 +
 +<code bash>
 +yum install zip unzip
 +</code>
 +
 +**Linux Tools wie lsof / finger **
 +
 +Offene Datei/System Pointer anzeigen lassen
 +
 +Per default in der Minimal Server Installation anscheinend nicht mehr dabei.
 +<code bash>
 +yum install lsof finger strace
 +</code>
 +
 +**Für 12c R2 **
 +
 +Für Installer und clufy rpm:
 +<code bash>
 +yum install smartmontools psmisc  xdpyinfo
 +</code>
 +
 +** Screen **
 +
 +siehe auch [[linux:linux_screen|Skripte mit screen in den Hintergrund schieben]]
 +
 +Falls kein screen verfügbar ist, nachinstallieren mit:
 +<code bash>
 +yum install screen
 +</code>
 +
 +----
 +
 +===Firewall und SELinux===
 +
 +Da in einer reine Testumgebung keine FW  notwendig ist, diese deaktivieren
 +  
 +==Firewall unter linux7 deaktivieren==
 +
 +<code bash>
 +systemctl disable firewalld
 +systemctl stop firewalld
 +</code>
 +
 +==SELinux deaktiviert==
 +<code bash>
 +[root@nosqldb01 ~]# 
 +vi /etc/selinux/config
 +..
 +SELINUX=disabled
 +..
 +
 +reboot
 +
 +#testen
 +getenforce
 +
 +Disabled
 +
 +</code>
 +
 +----
 +
 +
 +=== SSH optimieren, automatisches X Forwarding  aktivieren ===
 +
 +Um Timeouts zu vermeiden
 +<code bash>
 +vi /etc/ssh/sshd_config
 +LoginGraceTime 0
 +</code>
 +
 +
 +Bei folgenden Fehler beim Login über z.B. MoboTerm:
 +
 +  * "x11 forwarding request failed on channel 0"
 +
 +<code bash>
 +yum install xauth
 +
 +vi /etc/ssh/sshd_config
 +
 +X11Forwarding yes
 +X11UseLocalhost no
 +
 +#restrict to ipv4
 +AddressFamily inet
 +
 +
 +
 +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!
 +
 +</code>
 +
 +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/
 +
 +
 +----
 +
 +
 +=== Name Service Cache Daemon===
 +
 +Für eine Grid Umgebung: Den Name Service Cache Daemon aktiveren
 +
 +<code bash>
 +yum install nscd
 +systemctl enable nscd
 +</code>
 +
 +
 +Mit dem Befehl "nscd -i hosts" kann der Cache bei Bedarf neu geladen werden.
 +
 +----
 +
 +=== 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
 +
 +<code bash>
 +cd /tmp
 +df . -h
 +cat /etc/fstab
 +</code>
 +
 +----
 +
 +=== Ntp ===
 +
 +Zeitdienst prüfen und einrichten
 +
 +Leider wird CHRONY von Linux 7 nicht unterstützt und muss deaktiviert werden
 +<code bash>
 +systemctl stop chronyd
 +systemctl disable chronyd
 +</code>
 +
 +
 +   
 +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!
 +
 +<code bash>
 +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
 +
 +</code>
 +
 +Fehler:
 +<code bash>
 +Mar 11 20:51:29 racdb01 ntpd[2330]: 0.0.0.0 c617 07 panic_stop -3601 s; set clock manually within 1000 s.
 +</code>
 +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:
 +<code bash>
 + ntpq -pn
 +</code>
 +Der Installer prüft das später ab!
 +
 +----
 +
 +
 +=== Software Packte nachinstallieren ===
 +
 +Mit Oracle 7.2 ist wieder das oracle-rdbms-server-12cR1-preinstall.x86_64 vorhanden.
 +
 +<code bash>
 +12c
 +yum install oracle-rdbms-server-12cR1-preinstall.x86_64
 +
 +18c
 +?
 +</code>
 +
 +==Vor 7.2==
 +
 +Leider ist für  Linux 7.0 das "oracle-rdbms-server-12c-preinstall.x86_64" noch nicht verfügbar, daher müssen alle notwendigen Packete mit "yum" nachinstalliert werden.
 +
 +Zusätzliche Pakete (diese oder eine höhere Version!):
 +  * binutils-2.23.52.0.1-12.el7.x86_64 
 +  * compat-libcap1-1.10-3.el7.x86_64 
 +  * gcc-4.8.2-3.el7.x86_64 
 +  * gcc-c++-4.8.2-3.el7.x86_64 
 +  * glibc-2.17-36.el7.i686 
 +  * glibc-2.17-36.el7.x86_64 
 +  * glibc-devel-2.17-36.el7.i686 
 +  * glibc-devel-2.17-36.el7.x86_64 
 +  * ksh
 +  * libaio-0.3.109-9.el7.i686 
 +  * libaio-0.3.109-9.el7.x86_64 
 +  * libaio-devel-0.3.109-9.el7.i686 
 +  * libaio-devel-0.3.109-9.el7.x86_64 
 +  * libgcc-4.8.2-3.el7.i686 
 +  * libgcc-4.8.2-3.el7.x86_64 
 +  * libstdc++-4.8.2-3.el7.i686 
 +  * libstdc++-4.8.2-3.el7.x86_64 
 +  * libstdc++-devel-4.8.2-3.el7.i686 
 +  * libstdc++-devel-4.8.2-3.el7.x86_64 
 +  * libXi-1.7.2-1.el7.i686 
 +  * libXi-1.7.2-1.el7.x86_64 
 +  * libXtst-1.2.2-1.el7.i686 
 +  * libXtst-1.2.2-1.el7.x86_64 
 +  * make-3.82-19.el7.x86_64 
 +  * sysstat-10.1.5-1.el7.x86_64 
 +  * compat-libstdc++-33.x86_64 
 +  * nfs-utils-1.2.3-15yum 
 +   
 +Alternativ noch für ODBC:
 +  * unixODBC 
 +  * unixODBC-devel
 +
 +
 +Alle auf einmal installieren:  
 +<code bash>
 +#64bit
 +yum install  binutils compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel compat-libstdc++-33 nfs-utils
 +
 +#32bit
 +yum install glibc.i686 glibc-devel.i686 libaio.i686 libaio-devel.i686 libgcc.i686 libstdc++.i686 libstdc++-devel.i686 libXi.i686 libXtst.i686 unixODBC.i686 unixODBC-devel.i686
 +
 +</code>
 +
 +
 +----
 +
 +===Oracle User Grid und Oracle anlegen===
 +Einige Gruppen und User existieren evlt. schon wenn mit "oracle-rdbms-server-12cR1-preinstall" zuvor installiert wurde.
 +
 +Gruppen und User anlegen:
 +<code bash>
 +
 +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
 +
 +
 +</code>
 +
 +
 +===Software Verzeichnis anlegen ===
 +
 +Database:
 +<code bash>
 +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
 +</code>
 +
 +Grid: (auf die richtige Software Version achten!)
 +<code bash>
 +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
 +</code>
 +
 +----
 +
 +=== Tmp File Verhalten ===
 +
 +Configure verify temporary location for auto cleanup!
 +
 +Anmerkung von orachk:
 +<code bash>
 +#
 +#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
 +
 +x /tmp/.oracle*
 +x /var/tmp/.oracle*
 +x /usr/tmp/.oracle*
 +
 +</code>
 +
 +
 +----
 +
 +===Shared Memory File System Mount on Linux===
 +Set to:
 +<code bash>
 +#Check
 +
 +df -h
 +
 +
 +#if missing
 +more /etc/fstab |grep "tmpfs"
 +
 +vi /etc/fstab
 +tmpfs     /dev/shm     tmpfs     rw,exec,size=2048M     0 0
 +
 +</code>
 +
 +
 +----
 +
 +=== 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:
 +<code bash>
 +cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
 +# so im einsatz
 +[always] never
 +</code>
 +
 +Aussschalten über Grub
 +<code bash>
 +vi /etc/default/grub
 +
 +GRUB_CMDLINE_LINUX=".... transparent_hugepage=never"
 +
 +#Grub Config neu schreiben lassen
 +grub2-mkconfig -o /boot/grub2/grub.cfg
 +
 +</code>
 +
 +----
 +
 +=== User Securtiy und Limits setzen ===
 +
 +/etc/security/limits.conf:
 +<code bash>
 +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 
 +
 +</code>
 +
 +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:
 +<code bash>
 +vi /etc/pam.d/login
 +
 +session required pam_limits.so
 +
 +</code>
 +
 +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 )===
 +
 +<code bash>
 +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
 +</code>
 +
 +Als Oracle User testen:
 +<code bash>
 +su - oracle
 +
 +ulimit -Sn
 +65536 
 +ulimit -Hn
 +65536
 +
 +ulimit -Su
 +16384 
 +ulimit -Hu
 +16384
 +
 +ulimit -Ss
 +10240
 +ulimit -Hs
 +Unlimited
 +
 +</code>
 +
 +=== Umask setzen ===
 +
 +Für Grid und Oracle User:
 +
 +<code bash>
 +su - oracle 
 +
 +vi .bashrc
 +
 +umask 0022
 +
 +
 +#dann aus su - grid
 +
 +</code>
 +
 +
 +----
 +
 +=== Dump Verhalten optimieren ===
 +
 +Zentrales Verzeichniss für Dumps einrichten wie /var/tmp/core und Kernel Parameter setzen
 +
 +<code bash>
 +
 +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
 +
 +</code>
 +
 +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
 +<code bash>
 +
 +su - oracle
 +
 +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
 +
 +
 +</code>
 +
 +
 +----
 +
 +
 +=== Oracle Kernel Parameter setzen ===
 +
 +
 +/etc/sysctl.conf
 +<code bash>
 +
 +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 -p
 +
 +</code>
 +
 +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
 +<code bash>
 +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
 +</code>
 +
 +Zusätzlich wird empfohlen die MTU auf dem Localhost Adapter zu erhöhen.
 +
 +Online mit : 
 +
 +<code bash>
 +ifconfig lo mtu 16436
 +</code>
 +
 +In /etc/sysconfig/network-scripts/ifcfg-lo hinterlegen, damit das beim nächsten Boot auch klappt: 
 +
 +<code bash>
 +
 +vi /etc/sysconfig/network-scripts/ifcfg-lo
 +..
 +MTU=16436
 +..
 +</code>
 +
 +
 +----
 +==== Multipathing auf den Storage Devices für ASM optimieren ====
 +
 +Je nach der eingesetzten Storage Anbindung hier mit viel Sorgfalt prüfen und einrichten!
 +
 +<fc #800000>Oft das Hauptproblem einer Oracle Real Applikation Cluster Installation!</fc> 
 +
 +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 8 Installation====
 +
 +Java Version prüfen und JDK 8uxxx 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-8u111-linux-x64.rpm von [[http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html]]  und installieren / aktivieren:
 +<code bash>
 +# Java installieren
 +yum install  --nogpgcheck jdk-8u181-linux-x64.rpm
 +
 +
 +# Java aktivieren
 +
 +# Neue Java Version dem OS bekannt geben
 +/usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_181-amd64 18181
 +
 +
 +# Versionen anzeigen
 +/usr/sbin/alternatives --display java
 +
 +# Version einstellen
 +/usr/sbin/alternatives --config java
 +# Version auswählen
 +
 +# testen
 +java -version
 +java version "1.8.0_111"
 +
 +
 +# alte Java Version deinstallieren
 + yum list installed java*
 +
 +yum erase  java-1.6.0-openjdk.x86_64 java-1.7.0-openjdk.x86_64 java-1.8.0-openjdk.x86_64
 +
 +</code>
 +
 +Nach einem Java Upgrade muss das Kommando jps wieder neu verlinkt werden:
 +
 +Das Programm jps sollte auf dem Server im Pfad liegen/funktionieren, ist sehr hilfreich für die Wartung
 +
 +<code bash>
 +jps -m
 + 
 +# falls fehler
 +# über /usr/bin verlinken
 +rm /usr/bin/jps
 +ln -s /usr/java/jdk1.8.0_111/bin/jps /usr/bin/jps
 +
 +</code>
 +
 +
 +----
 +
 +==== 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:
 +<code bash>
 +systemctl poweroff -i
 +</code>
 +
 +
 +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]]
 +
 +
 +
 +
 +==== Quellen ====
 +
 +  * https://docs.oracle.com/database/121/LADBI/pre_install.htm#LADBI7534
 +  * https://docs.oracle.com/database/121/CWLIN/toc.htm
  
"Autor: Gunther Pipperr"
linux/linux_7_system_grundeinstellungen_oracle_datenbank_rac.txt · Zuletzt geändert: 2019/12/08 20:00 von gpipperr