Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:oracle_linux_basis_konfiguration_datenbank

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:oracle_linux_basis_konfiguration_datenbank [2014/12/03 18:07] – [Eine Oracle Linux 6 Umgebung für eine Oracle Installation vorbereiten] gpipperrlinux:oracle_linux_basis_konfiguration_datenbank [2014/12/03 18:12] (aktuell) – [Name Service Cache Daemon aktivieren] gpipperr
Zeile 1: Zeile 1:
 +=====Eine Oracle Linux 6 Umgebung für eine Oracle Installation vorbereiten=====
 +
 +Nach der erfolgreichen Grundinstallation eines Oracle Linux 6 auf dem Server steht die Konfiguration der Umgebung als Vorbereitung für die Datenbank Software Installation an.
 +
 +Bzgl. der Server Grundinstallation siehe hier zum Beispiel: [[linux:install_oracle_hp_dl380p|Installation einer Oracle Umgebung auf einem HP ProLiant DL380p Gen 8 Server]].
 +
 +Im Prinzip ist die Vorbereitung einer Umgebung für Oracle 10g R2 oder 11g R2 sehr ähnlich, ein paar Punkte könnten für eine Standard Edition vereinfacht werden eine gleichmäßige Installation hat aber den Vorteil das alles Server gleich aufgesetzt sind.
 +
 +
 +Ablauf:
 +  * Oracle Validated RPM installieren
 +  * Von Oracle benötigte Software Pakete installieren
 +  * Kernel Parameter anpassen
 +  * SE Linux ausschalten
 +  * Shared Memory Filesystem anpassen
 +  * ZeroConfig Network ausschalten
 +  * IPV6 ausschalten
 +  * Huge pages aktivieren
 +  * Core File Creation einschalten
 +  * Security und Limits für den Oracle User anpassen
 +  * NTP prüfen
 +  * Name Service Cache Dämon aktivieren
 +  * Firewall deaktivieren oder richtig konfigurieren
 +  * Oracle User überprüfen und Password setzen
 +  * Oracle Verzeichnisse anlegen
 +  * Global Profile für den Oracle User setzen
 +
 +
 +
 +===Oracle RPM installieren===
 +Das Oracle preinstall RPM installiert die wichtigsten Packet und legt den User Oracle an. Einige Kernel Parameter werden gesetzt.
 +
 +<code bash>
 +
 +yum install oracle-rdbms-server-11gR2-preinstall.x86_64
 +
 +</code>
 +
 +
 +===Von Oracle benötigte Software Pakete installieren===
 +
 +Im Prinzip sollte das Oracle Preinstall RPM alles benötigte auf das System installieren.
 +
 +Damit aber wirklich auch alles verlangt da ist, kann mit folgenden Befehlt geprüft werden, ob alle Pakete, auch für Optionen der DB, wirklich vorhanden sind.
 +
 +
 +<code bash>
 +
 +# prüfen ob auch alles das ist:
 +
 +yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh  libaio  libaio-devel libgcc libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel nscd ksh compat-libcap1-1.10
 +
 +</code>
 +
 +
 +===Kernel Parameter anpassen===
 +
 +Öffnen der Datei /etc/sysctl.conf und prüfen, ob die Werte alle richtig gesetzt sind.
 +
 +/etc/sysctl.conf:
 +<code bash>
 +fs.aio-max-nr = 3145728
 +fs.file-max = 6815744
 +# 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 = 68719476736
 +
 +# 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
 +
 +</code>
 +
 +Mit "/sbin/sysctl –p" die Werte neu einlesen und prüfen
 +
 +
 +=== SE Linux ausschalten ===
 +
 +<code bash>
 +[root@db02 ~]# 
 +vi /etc/selinux/config
 +..
 +SELINUX=disabled
 +..
 + 
 +[root@nosqldb01 ~]#  reboot
 + 
 +[root@nosqldb01  ~]#  getenforce
 +
 +</code>
 +
 +
 +===Shared Memory Filesystem anpassen===
 +Mit df -h die aktuellen Einstellungen prüfen:
 +
 +  * für  8GB Memory      => size=8000m 
 +  * für 16GB Memory      => size=12000m
 +  * für 32GB Memory      => size=28000m
 +  * für 64GB Memory      => size=48000m
 +
 +Anpassen mit:
 +<code bash>
 +vi /etc/fstab
 +
 +tmpfs                   /dev/shm                tmpfs   size=8000M     0 0
 +
 +# neu mounten und testen
 +
 +$ umount tmpfs
 +$ mount tmpfs
 +$ df -h
 +
 +</code>
 +
 +Falls nach einem Reboot der Wert für ein Oracle Linux 6 aber wieder zurückgesetzt wurde:
 +siehe auch http://surachartopun.com/2011/08/oracle-linux-6-problem-resizing-tmpfs.html
 +<code bash>
 +root@mytest ~] vi /etc/rc.d/rc.sysinit
 +******************************************************
 +- mount -f /dev/shm >/dev/null 2>&1
 ++ #mount -f /dev/shm >/dev/null 2>&1
 +******************************************************
 +if [ "$READONLY" != "yes" ] ; then
 +- action $"Mounting local filesystems: " mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev
 ++ action $"Mounting local filesystems: " mount -a -t tmpfs,nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev
 +******************************************************
 +</code>
 +
 +
 +
 +=== Disable Zeroconf Netzwerk Konfiguration ===
 +
 +Einstellungen überprüfen und falls 169.254.0.0/16 Netz aktiv ausschalten:
 +
 +<code bash>
 +
 +ip r
 +...
 +169.254.0.0/16 dev eth0  scope link  metric 1002
 +...
 +
 +cat /etc/sysconfig/network
 +
 +NETWORKING=yes
 +
 +#Wert eintragen
 +NOZEROCONF=yes
 +
 +# Netzwerk neu starten
 +service network restart
 +
 +</code>
 +
 +
 +
 +=== IP V6 ausschalten=== 
 +Über die sysctl.conf IPV6 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
 +
 +sysctl -p
 +
 +#Testen mit:
 +
 +cat /proc/sys/net/ipv6/conf/all/disable_ipv6
 +
 +1
 +
 +# 1=Ausgeschaltet!
 +
 +#IPV6 1:1 localhost Eintrag entfernen!
 +
 +vi /etc/hosts
 +
 +</code>
 +
 +===Hugepages aktivieren===
 +
 +siehe hierzu: [[linux:huge_pages_linux_oracle|Huge Pages für eine Oracle Datenbank einrichten - Transparent Huge Pages deaktivieren]]
 +
 +
 +===Core File Creation einschalten===
 +/etc/sysctl.conf:
 +<code bash>
 +kernel.core_uses_pid=1
 +fs.suid_dumpable=1
 +</code>
 +
 +Mit "/sbin/sysctl –p" die Werte neu einlesen und prüfen
 +
 +===Security und Limits für den Oracle User anpassen===
 +
 +/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
 +</code>
 +
 +
 +/etc/pam.d/login:
 +<code bash>
 +$ vi /etc/pam.d/login
 +
 +
 +session required pam_limits.so
 +
 +
 +</code>
 +
 +<note important>Nach Änderungen an der pam.d/login erst immer prüfen ob einen weitere Anmeldung noch funktioniert, nicht das man sich selber aussperrt!</note>
 +
 +
 +
 +===NTP prüfen===
 +
 +Normalerweise sollten schon in der Grundkonfiguration der Zeitdient korrekt definiert sein.
 +
 +Besonders für den Oracle Real Applikation Cluster ist das " -X" Flag wichtig, das Flag bedeutet das die Zeit nicht schlagartig versetzt werden soll, sondern sich langsam wieder an den richtigen Wert annähert. 
 +
 +Auf das "Leerzeichen" vor dem Parameter achten!
 +
 +<code bash>
 +$ vi /etc/sysconfig/ntpd
 +
 +
 +OPTIONS=” -x –u ntp:ntp –p /var/run/ntp.pid”
 +
 +
 +</code>
 +
 +Auf die richtigen NTP Server achten, Datei "/etc/ntp.conf" prüfen:
 +<code bash>
 +$ cat /etc/ntp.conf
 +
 +restrict <ip_adress_of_your_time_server> mask 255.255.255.255 nomodify notrap noquery
 +
 +</code>
 +
 +Beispiel:
 +<code bash>
 +restrict 192.168.144.100 mask 255.255.255.255 nomodify notrap noquery
 +</code> 
 +
 +
 +Testen mit:
 +<code bash>
 +$ service ntpd stop
 +$ ntpdate <ip_adress_of_your_time_server>
 +
 +$ service ntpd restart
 +</code>
 +
 +Autostart einrichten:
 +
 +<code bash>
 +$ chkconfig --level 35 ntpd on
 +
 +$ chkconfig --list | grep ntpd
 +ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
 +
 +</code>
 +
 +
 +===Name Service Cache Daemon aktivieren===
 +
 +Bei Bedarf aktivieren
 +
 +<code bash>
 +
 +
 +
 +chkconfig --list nscd
 +nscd                      0:off  1:off  2:off  3:on   4:off  5:on   6:off 
 +
 +
 +chkconfig --level 35 nscd on
 +
 +
 +</code>
 +
 +Daran denken das bei Änderungen im DNS der Cache wieder geleert werden muss!
 +<code bash>
 +nscd -i hosts
 +</code>
 +===Firewall deaktivieren oder entsprechend richtig konfigurieren===
 +
 +Die Ausgabe von “iptables -L” sollte so aussehen:
 +<code bash>
 +$ iptables -L -n
 +
 +Chain INPUT (policy ACCEPT)
 +target     prot opt source               destination
 +
 +Chain FORWARD (policy ACCEPT)
 +target     prot opt source               destination
 +
 +Chain OUTPUT (policy ACCEPT)
 +target     prot opt source               destination
 +
 +</code>
 +
 +FW stoppen:
 +
 +<code bash>
 +service iptables stop
 +
 +[root@ORADB01 /]# chkconfig --level 0123456 iptables off
 +
 +[root@ORADB01 /]# chkconfig --list iptables
 +
 +iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
 +</code>
 +
 +
 +Alternativ:
 +
 +IP Tables rules anpassen:
 +<code bash>
 +vi /etc/sysconfig/iptables
 +
 +..
 +-A INPUT -p tcp --dport 1158 -j ACCEPT
 +-A INPUT -p tcp --dport 1521 -j ACCEPT
 +..
 +
 +</code>
 +
 +===Oracle User überprüfen und Password setzen===
 +
 +Über das Oracle Validated RPM wurde der User bereits installiert.
 +
 +Oracle User überprüfen:
 +<code bash>
 +[root@db02 ]# id oracle
 +
 +uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)
 +
 +</code>
 +
 +Oracle User Password setzen:
 +<code bash>
 +passwd oracle
 +</code>
 +
 +===Oracle Verzeichnisse anlegen===
 +
 +<code bash>
 +# bei Bedarf für eine Cluster Installation anlegen
 +mkdir -p /u01/app/11.2.0.4/Clusterware
 +
 +#
 +mkdir -p /u01/app/oracle/product/11.2.0.4/dbhome_1
 +chown -R oracle:oinstall /u01
 +
 +chmod -R 775 /u01/
 +</code>
 +
 +
 +===Global Profile setzen===
 +
 +/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
 +
 +</code>
 +
 +
 +Als Oracle user anmelden und prüfen:
 +<code bash>
 +su - oracle
 +$ ulimit -Sn
 +65536 
 +$ ulimit -Hn
 +65536
 +</code>
 +
 +=== Oracle Umgebung einrichten ===
 +
 +Um unter den Oracle User immer die richtigen Einstellungen zu treffen, wird ein eigenes Script unter dem User hinterlegt.
 +
 +Ein Beispiel siehe hier: http://orapowershell.codeplex.com/SourceControl/latest#bash/.profile
 +
  
linux/oracle_linux_basis_konfiguration_datenbank.txt · Zuletzt geändert: 2014/12/03 18:12 von gpipperr