Donnerstag, 12. Juni 2014

Linux - Debian - Wheezy - x64 - Oracle 11gR2 XE

durchgeführt mit:
- Debian 7.5.0 x64, java 1.7.0_60 x64, Oracle-XE 11.2.0 x64
- Debian 7.8.0 x64, java 1.8.0_40 x64, Oracle-XE 11.2.0 x64

1.) Java installieren
(zb. siehe http://boernie.blogspot.co.at/2014/06/linux-debian-wheezy-java-7.html)

2.) folgende Anleitung so genau wie möglich befolgen
- Java-Installation überspringen, erst ab "Installing Oracle 11g R2 Express Edition":
http://blog.whitehorses.nl/2014/03/18/installing-java-oracle-11g-r2-express-edition-and-sql-developer-on-ubuntu-64-bit/

- ein Punkt muss anders gemacht werden, da sonst die Datenbank nicht startet und "ORACLE not available" bzw. "MEMORY_TARGET not supported on this system" Fehler auftauchen:

statt
- Create the file /etc/rc2.d/S01shm_load....

muss folgendes durchgeführt werden
* erzeugen eines neuen startupskript-files:
vim /etc/init.d/oracle-shm_load

* einfügen von:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          oracle-shm_load
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO
case $1 in
 start) 
  mkdir /var/lock/subsys 2>/dev/null
  touch /var/lock/subsys/listener
  rm /dev/shm 2>/dev/null
  mkdir /dev/shm 2>/dev/null
  mount -t tmpfs shmfs -o size=2048m /dev/shm 
  ;;
 stop) 
  ;;
 restart)
  ;;
esac
exit 0


-> wobei "2048m" mit der tatsächlichen Gesamtgrösse des RAM-Speichers der Maschine ersetzt werden muss

* schreibrechte setzen und file initialisieren.
chmod 755 oracle-shm_load
update-rc.d oracle-shm_load defaults

das skript "oracle-shm_load" muss unbedingt VOR dem oracle-xe skript starten.
per default werden beide im runlevel 2 (/etc/rc2.d) gestartet.
es laufen beide (ohne weitere konfiguration) mit der gleichen priorität (bei mir S17), deshalb die namenswahl mit oracle-shm_load, das ist alphabetisch vor oracle-xe und wird somit auch zuerst gestartet bei gleichem runlevel und gleicher priorität :)
kann sicher auch eleganter gelöst werden, ist mir aber nicht gelungen...


3.) Parameter einstellen
vim /etc/bash.bashrc
unten einfügen:
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

4.) neustarten des systems.



5.) diverses
Oracle-Apex Zugriff:
http://ip-des-datenbankservers:eingestellter-port/apex/apex_admin
als admin einloggen (default: admin/admin)
wenn passwort vergessen wurde:
cd /u01/app/oracle/product/11.2.0/xe/apex
sqlplus / as sysdba
SQL> @apxchpwd.sql
Quelle: http://docs.oracle.com/cd/E37097_01/install.42/e35123/otn_install.htm#HTMIG503

Apex-Zugriff von extern:
sqlplus / as sysdba
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit



Password Expiration:
Im default profile der Oracle Database 11g, ist der parameter PASSWORD_LIFE_TIME auf 180 (Tage) gesetzt. dh. bei jedem neu angelegten user läuft nach 180 tagen das passwort ab!!!
sqlplus / as sysdba
SQL> select profile from dba_users where username='xyz';
Ergebnis zb.

PROFILE
------------------------
DEFAULT

nun ändern wir den parameter PASSWORD_LIFE_TIME des profiles 'default' auf unlimitiert!
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
 

Keine Kommentare: