Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:oracle_linux_basis_konfiguration_datenbank

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

yum install oracle-rdbms-server-11gR2-preinstall.x86_64

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.

# 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

Kernel Parameter anpassen

Öffnen der Datei /etc/sysctl.conf und prüfen, ob die Werte alle richtig gesetzt sind.

/etc/sysctl.conf:

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

Mit „/sbin/sysctl –p“ die Werte neu einlesen und prüfen

SE Linux ausschalten

[root@db02 ~]# 
vi /etc/selinux/config
..
SELINUX=disabled
..
 
[root@nosqldb01 ~]#  reboot
 
[root@nosqldb01  ~]#  getenforce

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:

vi /etc/fstab
 
tmpfs                   /dev/shm                tmpfs   size=8000M     0 0
 
# neu mounten und testen
 
$ umount tmpfs
$ mount tmpfs
$ df -h

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

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

Disable Zeroconf Netzwerk Konfiguration

Einstellungen überprüfen und falls 169.254.0.0/16 Netz aktiv ausschalten:

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

IP V6 ausschalten

Über die sysctl.conf IPV6 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
 
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

Hugepages aktivieren

Core File Creation einschalten

/etc/sysctl.conf:

kernel.core_uses_pid=1
fs.suid_dumpable=1

Mit „/sbin/sysctl –p“ die Werte neu einlesen und prüfen

Security und Limits für den Oracle User anpassen

/etc/security/limits.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

/etc/pam.d/login:

$ vi /etc/pam.d/login
…
 
session		required		pam_limits.so
 
…
Nach Änderungen an der pam.d/login erst immer prüfen ob einen weitere Anmeldung noch funktioniert, nicht das man sich selber aussperrt!

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!

$ vi /etc/sysconfig/ntpd
…
 
OPTIONS=” -x –u ntp:ntp –p /var/run/ntp.pid”
 
…

Auf die richtigen NTP Server achten, Datei „/etc/ntp.conf“ prüfen:

$ cat /etc/ntp.conf
…
restrict <ip_adress_of_your_time_server> mask 255.255.255.255 nomodify notrap noquery
…

Beispiel:

restrict 192.168.144.100 mask 255.255.255.255 nomodify notrap noquery

Testen mit:

$ service ntpd stop
$ ntpdate <ip_adress_of_your_time_server>
 
$ service ntpd restart

Autostart einrichten:

$ chkconfig --level 35 ntpd on
 
$ chkconfig --list | grep ntpd
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

Name Service Cache Daemon aktivieren

Bei Bedarf aktivieren

# 
 
chkconfig --list nscd
nscd                      0:off  1:off  2:off  3:on   4:off  5:on   6:off 
 
 
chkconfig --level 35 nscd on

Daran denken das bei Änderungen im DNS der Cache wieder geleert werden muss!

nscd -i hosts

Firewall deaktivieren oder entsprechend richtig konfigurieren

Die Ausgabe von “iptables -L” sollte so aussehen:

$ 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

FW stoppen:

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

Alternativ:

IP Tables rules anpassen:

vi /etc/sysconfig/iptables
 
..
-A INPUT -p tcp --dport 1158 -j ACCEPT
-A INPUT -p tcp --dport 1521 -j ACCEPT
..

Oracle User überprüfen und Password setzen

Über das Oracle Validated RPM wurde der User bereits installiert.

Oracle User überprüfen:

[root@db02 ]# id oracle
 
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)

Oracle User Password setzen:

passwd oracle

Oracle Verzeichnisse anlegen

# 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/

Global Profile setzen

/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

Als Oracle user anmelden und prüfen:

su - oracle
$ ulimit -Sn
65536 
$ ulimit -Hn
65536

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

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
linux/oracle_linux_basis_konfiguration_datenbank.txt · Zuletzt geändert: 2014/12/03 18:12 von Gunther Pippèrr