Search notes:

$ORACLE_HOME

The Oracle home directory is the location where Oracle software/products are installed.
An Oracle home directory is installed under the Oracle base directory (for example /u01/app/oracle), for example in /u01/app/oracle/product/21.0.0/dbhome_1.
The directory name of the Oracle Home can be queried in SQL with
select sys_context('userenv', 'oracle_home') from dual;

Some subdirectories:

Some subdirectories found under $ORACLE_HOME correspond to «components» (see also $ORACLE_HOME/lib/facility.lis).
addnode
ASP.NET
apex APEX related scripts (?)
assistants Oracle Database Assistants
bin
cfgtoollogs
clone
crs Cluster Ready Services
css
ctx
cv Cluster Verification
data Used for directory wallet?
dbs
deinstall See deinstall\deinstall.bat
demo
diagnostics
dv
has
hs Heterogeneous Server
instantclient
inventory
install contains, for example, a template response file: install/response/db_install.rsp
javavm JServer JAVA Virtual Machine
ldap
jdbc/lib
jdk
jlib JDBC drivers. See also $ORACLE_HOME/jdbc
lib lib/libmkl_* are the Intel Math Kernel libraries.
log «Fall back» directory for the ADR base directory if parameter diagnostic_desc and environment variable ORACLE_BASE is not set.
md Directory for Oracle Spatial?
mgw
network
nls
oci/include
odbc
ODP.NET
olap OLAP API
oledb
oml4py Oracle Machine Learning 4 Python
.patch_storage used by OPatch to back up patches in order to make rolling back a patch easier.
racg
oracore TODO: does oracore/zoneinfo/* contain timezone files?
ord
oss Oracle Syndication Server
ords
OPatch Utility for patching Oracle software.
opmn Oracle Process Manager and Notification
oui
owm Oracle Wallet Manager(?)
perl seems to contain a Perl distribution.
plsql
precomp
relnotes
python
QOPatch
R
rdbms
scheduler
sdk
slax
sqlj
srvm
sqldeveloper
sqlpatch
sqlplus
suptools
ucp Universal Connection Pool driver
usm
utl Contains oraclewallet.zip
xdk

Executing SQL scripts below Oracle Home from SQL*Plus

In SQL*Plus, when using the start command, the question mark is replaced with the path of Oracle Home. Thus, scripts that are found below Oracle Home can be executed like so:
rene@ora19> @?/rdbms/admin/utlsqmpl

Directory name pattern

/mp/s/u/v/v/type_[n]
mp Mount point
s a standard(?) directory name
u Name of the directory's owner
v Version number
type type of installation (dbhome, client or grid)
_n An optional counter

21c: read only

With Oracle 21c, the Oracle Home is read-only in order to separate installation and configuration and thus simplify provisioning.
A consequence of read only Oracle Home is that ORACLE_BASE_HOME and ORACLE_BASE_CONFIG are located in a different location.
Directories affected include network/admin, network/trace and network/log
See also the

demo directories

demo directories contains examples and demonstrations. Most of these demo directories are not installed by default but must rather be installed with «Oracle Database Examples».
Such demo directories include
Because in 21c, the Oracle Home directory is read only, these demo directories should be copied to ORACLE_BASE_HOME.

oratab

The set of Oracle homes on a machine is (or should be) registered in /etc/oratab (Solaris: /var/opt/oratab)

TODO

setup.exe / setup.bat

The (Windows) directory contains a setup.exe and a setup.bat file.
There is also a setup.exe under $ORACLE_HOME/oui/bin.

root.sh

The Linux installation contains a root.sh file.

env.sh

Oracle ENVironment variables persistency file template, used to define and set environment variables.

oraInst.log

$ cat oraInst.loc
inventory_loc=/opt/oracle/oraInventory
inst_group=dba

schagent.conf

Configuration file for the scheduler agent. See also directories $EXECUTION_AGENT_DATA and $EXECUTION_AGENT_HOME.

runInstaller

Script to launch db setup wizard for configuring Database home image.

inventory.xml

The inventory.xml file seems to keep track of all installed Oracle Homes.
This file is stored in a directory named ContentsXML. On Windows, the location of ContentsXML is stored in the registry under HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE, value of inst_loc.
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2020, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<INVENTORY>
<VERSION_INFO>
   <SAVED_WITH>12.2.0.7.0</SAVED_WITH>
   <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
<HOME NAME="OraDB19Home1" LOC="C:\Users\Rene\Ora19" TYPE="O" IDX="1"/>
<HOME NAME="OraDB19Home2" LOC="C:\Oracle\19" TYPE="O" IDX="2"/>
</HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>
See also MOS ID #1470313.1 (How to Find Central Inventory inventory.xml).

.sbs files

*.sbs files seem to be templates which are c onsumed Oracle Universal (installer?) uses to procude shell scripts without the .sbs suffix by doing variable substitution at installation time.
The values to be substituted seem to be enclosed within %…%.
The following command prints the substition values found in the directory, for example:
$ find . -name '*.sbs' -exec grep -P -o '%[^%]+%' -h {} + | commands -fu | sed s/%//g
b_stdout
cs_iceBrowserName
cs_ldapjclnt11
E
F_
LANGUAGE_ID
M-
ORACLE_BASE
ORACLE_HOME
oracle_install_UnixMakePath
ORACLE_OWNER
ORA_DBA_GROUP
OUICA_SCRIPT
OwnerGroup
OwnerId
SILENT
subscriberDN
subscriberNickname
SystemRoot
s_AdDomainDN
s_AdUsersDomainDN
s_CurrentUserDN
s_GroupSearchBase
s_GUID1
s_GUID2
s_GUID3
s_GUID4
s_GUID5
s_GUID6
s_GUID7
s_javaFlag
s_jdkLocation
s_jlibDir
s_jreJREclassfile
s_jreLocation
s_jreRunCmd
s_libDir
s_mapdummy
s_mapsym
s_operatingSystem
s_OracleContextDN
s_OracleContextParentDN
s_oratabloc
s_RootOracleContextDN
s_silent
s_SubscriberDN
s_SubscriberName
s_SubscriberNamingAttribute
s_SubscriberObjectclass
s_SubscriberParent1Name
s_SubscriberParent1NamingAttribute
s_SubscriberParent1Objectclass
s_SubscriberParent2Name
s_SubscriberParent2NamingAttribute
s_SubscriberParent2Objectclass
s_SubscriberParentDN
s_swingallName
s_UserSearchBase
s_VarName
s_xslLocation
W

See also

On a Windows installation of Oracle, orahomeuserctl.bat displays the Oracle Home User name that is associated with the Oracle home.
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE_HOME\KEY_homename
schagent.conf
select
   value
from
  v$diag_info
where
  name = 'ORACLE_HOME'

Index