Inhaltsverzeichnis
Die Oracle Datenbank Edition aus dem Oracle Home Dateien erkennen- Wurde Standard oder Enterprise Edition installiert?
Wenn eine Datenbank noch läuft, ist es einfach, zum Beispiel über die View v$version, die DB Edition zu erkennen.
Siehe auch das passende Skript hier: version.sql.
Soll aber ein Oracle Home ohne die Datenbank auf die installierte Version geprüft werden, ist das oft nicht so einfach zu erkennen. Besonders bei kopierten Umgebungen und ohne ein funktionierendes Oracle Inventory wird es nicht so einfach, die Version und besonders die Edition Enterprise EE oder Standard SE zu erkennen.
Was für ein Release ist das denn?
Über die oracle binary kann erkannt werden, um welches Release es sich handelt.
#Version strings $ORACLE_HOME/bin/oracle | grep NLSRTL NLSRTL Version 10.2.0.3.0 - Production #32 oder 64bit? file $ORACLE_HOME/bin/oracle oracle: setuid setgid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped $ORACLE_HOME/bin/genezi -v Client Shared Library 32-bit - 10.02.00.03.00
Die Verlinkung der Oracle Libraries prüfen
Wie es scheint, prüft der Oracle beim Patchen selber die Version mit dem Script „$ORACLE_HOME/bin/bndlchk“. Das Script legt unter $ORACLE_HOME/install ein .ee oder .se Verzeichnis an, und prüft dabei auf das Object file vsnfstd.o im Archiv ${ORACLE_HOME}/lib/libvsn10.a.
Ist die vsnfstd.o vorhanden liegt eine SE Edition vor.
Objedct File Archive prüfen
Folgendes Archive analysieren und falles vsnntp.o ⇒ Enterpise Edition!
ls -la ${ORACLE_HOME}/lib/libvsn10.a cp ${ORACLE_HOME}/lib/libvsn10.a /tmp ar -t /tmp/libvsn10.a Wenn eine Enterpise Edition: vsnntp.o vsnfprd.o Wenn eine Standard Edition: vsnstd.o vsnfstd.o
Test welche Optionen sind im Einsatz
Auf Object file xsyeolap.o prüfen!
ls -la ${ORACLE_HOME}/lib/libknlopt.a #Enterprise Edition ist mit OLAP! ar -t ${ORACLE_HOME}/lib/libknlopt.a kkxwtp.o ktd.o kxmwsd.o kciwcx.o kkpoban.o dmwdm.o sllfls.o kprnts.o kzlnlbac.o dmndmse.o ksnkcs.o xsyeolap.o kzvndv.o #Standard Edition ohne OLAP! ar -t {ORACLE_HOME}/lib/ libknlopt.a kkxwtp.o ktd.o kxmwsd.o kciwcx.o kkpoban.o dmwdm.o sllfls.o kprnts.o xsnoolap.o kzlnlbac.o dmndmse.o ksnkcs.o kzvndv.o
Siehe dazu auch die Note : „How to Check and Enable/Disable Oracle Binary Options (Doc ID 948061.1)“
11g - Die bei der Installation gewählte Version erkennen
11g
In der Datei $ORACLE_HOME/inventory/globalvariables/oracle.server/globalvariables.xml lässt sich über den Propertiy oracle_install_db_InstallEdition der bei der Installation gewählte Wert erkennen.
Beispiel für ein Enterprise Windows System:
PS D:\oracle\product\11.2.0.3\dbhome_1\inventory> Get-ChildItem -Filter *.xml -Recurse | Select-String -Pattern "oracle_install_db_InstallEdition" globalvariables\oracle.server\globalvariables.xml:53:<VAR NAME="oracle_install_db_InstallEdition" TYPE="STRING" VALUE="EE" ADVISE="T" COMPUTE_AT_CLONE="F" CALC_REQD="F" CLASS="oracle.sysman.oii.oiis.OiisVariable" EXTENDS_FROM="" ALLOW_ASSIGNMENT="T" HANDLE_ERRORS="F" VAL_REQD="F" SECURE="F" SUPPRESS_ON_SILENT="F" DESC_ID=""/>
10g - Die bei der Installation gewählte Version erkennen
10g!
In der Datei $ORACLE_HOME/inventory/Components21/oracle.server/*/context.xml lässt sich über den Propertiy s_serverInstallType und den Wert von VAL der bei der Installation gewählte Wert erkennen.
Datei $ORACLE_HOME/inventory/Components21/oracle.server/*/context.xml analysieren:
cd $ORACLE_HOME/inventory/Components21/oracle.server/10.2.0.3/ grep s_serverInstallType * # Installation wurde mit der EE Option durchgeführt context.xml: <VAR NAME="s_serverInstallType" TYPE="String" DESC_RES_ID="s_serverInstallType_DESC" SECURE="F" VAL="EE" ADV="F" CLONABLE="F" USER_INPUT="CALC"/> ---- # Installation wurde mit der SE Option durchgeführt context.xml: <VAR NAME="s_serverInstallType" TYPE="String" DESC_RES_ID="s_serverInstallType_DESC" SECURE="F" VAL="SE" ADV="F" CLONABLE="F" USER_INPUT="CALC"/>