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.
Ü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
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.
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
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
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!
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"/>