Conventions¶
Purpose: Single definition of the OS groups, filesystem layout and Oracle Home naming that the OraDBA tools assume as defaults.
Audience: DBAs and engineers who install Oracle software with OraDBA tooling, build images or labs, or write automation on top of it.
Introduction¶
Several repositories install and patch Oracle software: the patch and home engine
odb_autoupgrade, the Ansible collection oradba.automation
(repository oradba-ansible, planned), lab environments and Docker image builds. This page defines the conventions
they share. It is the only place where these values are decided:
- Engine and collection implement them as defaults that a site can override. Site configuration always wins.
- A change to a convention is made on this page first; the implementing repositories follow in their next release.
- Nothing here is an Oracle requirement unless stated. Where Oracle has a default (Preinstallation RPM, OFA), the difference is named.
Scope is single-instance Oracle Database on Linux. Grid Infrastructure and ASM groups (asmadmin, asmdba,
asmoper) are not covered yet.
Filesystem Layout¶
Three roots, kept as separate directories even when they live on one filesystem. Any of them can later move to a dedicated volume without changing a path.
| Item | Variable | Default | Notes |
|---|---|---|---|
| Software root | ORACLE_ROOT |
/u00 |
Binaries, ORACLE_BASE, inventory |
| Data root | ORACLE_DATA |
/u01 |
Datafiles, control files, online redo |
| Archive root | ORACLE_ARCH |
/u02 |
Archived redo and fast recovery area |
ORACLE_BASE |
ORACLE_BASE |
/u00/app/oracle |
Also root of the OraDBA installation (${ORACLE_BASE}/local/oradba) |
| Central inventory | - | /u00/app/oraInventory |
Recorded in /etc/oraInst.loc with inst_group=oinstall |
| Oracle Homes | ORACLE_HOME |
${ORACLE_BASE}/product/<version> |
See Oracle Home Naming |
| Datafiles | - | /u01/oradata/<DB_UNIQUE_NAME> |
One directory per database |
| Archived redo | - | /u02/archive/<DB_UNIQUE_NAME> |
When not written to the fast recovery area |
| Fast recovery area | db_recovery_file_dest |
/u02/fast_recovery_area |
Oracle adds <DB_UNIQUE_NAME> below |
Difference to Oracle OFA: OFA uses /u01/app/oracle for the software and /u02, /u03, ... for data. The OraDBA
layout keeps software on /u00 so that /u01 and /u02 carry only database files.
How OraDBA applies these defaults:
- When
ORACLE_BASEis unset, OraDBA scripts use/u00/app/oracle(override withORADBA_DEFAULT_ORACLE_BASE) and print a WARN line. oradba_dbca.shplaces datafiles in${ORACLE_DATA}/oradata/<DB_UNIQUE_NAME>and the fast recovery area in${ORACLE_ARCH}/fast_recovery_areawhen these variables are set; otherwise belowORACLE_BASEas before.DATA_DIRandFRA_DIRoverride both.
Known deviation: oracle-database-docker-legacy uses ORACLE_DATA=/u00/oradata (single root).
OS Users and Groups¶
The software owner is oracle. Group names default to the names created by the Oracle Database Preinstallation RPM
(oracle-database-preinstall-19c on Oracle Linux 8 and 9), with the RPM's GIDs.
| Role | Default name | GID (RPM) | odb_autoupgrade variable | AutoUpgrade key |
|---|---|---|---|---|
| Inventory group | oinstall |
54321 | AU_INVENTORY_GROUP |
home_settings.inventory_group |
| OSDBA | dba |
54322 | AU_GROUP_OSDBA |
home_settings.osdba_group |
| OSOPER | oper |
54323 | AU_GROUP_OSOPER |
home_settings.osoper_group |
| OSBACKUPDBA | backupdba |
54324 | AU_GROUP_OSBACKUPDBA |
home_settings.osbackupdba_group |
| OSDGDBA | dgdba |
54325 | AU_GROUP_OSDGDBA |
home_settings.osdgdba_group |
| OSKMDBA | kmdba |
54326 | AU_GROUP_OSKMDBA |
home_settings.oskmdba_group |
| OSRACDBA | racdba |
54330 | AU_GROUP_OSRACDBA |
home_settings.osracdba_group |
The user oracle (UID 54321 from the RPM) has oinstall as primary group and all six OS groups as secondary
groups. Reference:
Oracle Database 19c installation guide for Linux - operating system privileges groups.
Rules:
- GIDs (and the UID of
oracle) must be identical on all hosts that share files or form one configuration (Data Guard, shared NFS for backups or patches). Choose them once per site. - When a home is created from an existing source home, the groups recorded in the source home
(
rdbms/lib/config.c) win; the defaults above apply only to homes created without a source home. - The engine uses group names only. GIDs matter where groups are created (OS preparation, the collection).
Site Variant: os* Group Names¶
Some sites use osdba, osoper, osbackupdba, osdgdba, oskmdba and osracdba with fixed GIDs. This is a
supported site choice, not the default. The GIDs of such a site are site data and are not published here; they
belong in the site configuration of the group creation. odb_autoupgrade ships the name mapping as an example in
etc/groups/os-fixed-gid.env.
Legacy GIDs¶
oracle-database-docker-legacy creates the default group names with GIDs 1010 (oinstall), 1020 (dba),
1030 (oper), 1040 (backupdba), 1050 (kmdba), 1060 (dgdba) and 1070 (racdba). Images and volumes built
with these GIDs keep them until they are rebuilt; changing GIDs on an existing host means re-owning every file of
the old GID.
Oracle Home Naming¶
New database homes are named after the Release Update they contain, in four parts:
- The four-part version is the
releaseUpdatevalue from AutoUpgrade'spatches_info.json, not the base release. - A second home on the same RU (for example a different MRP level or one-off set) gets a numeric suffix:
product/19.32.0.0_2,product/19.32.0.0_3. - No
dbhome_1level below the version. - The home is registered in
oradba_homes.confso that OraDBA can switch to it. odb_autoupgrade does this in OraDBA mode and prints it as a manual step in standalone mode.
Names in use before this convention and to be migrated: product/19.0.0.0 (docker), product/19.31/dbhome_1
(oci-labs). Existing homes are not renamed in place; the convention applies to the next
home created out of place.
The convention covers database homes. Other products managed by OraDBA (client, OUD, WebLogic, Data Safe connectors) keep their current names.
Implementation and Overrides¶
| Repository | Implements | Override |
|---|---|---|
oradba |
Environment for ORACLE_BASE and registered homes |
ORACLE_BASE in the OraDBA configuration, oradba_homes.conf |
odb_autoupgrade (0.6.0+) |
Group defaults, home naming, inventory | AU_ORACLE_BASE, AU_GROUP_*, AU_INVENTORY_LOCATION, AU_INVENTORY_GROUP, AU_TARGET_HOME |
oradba-ansible (planned) |
Group and user creation with GIDs, directory layout | Role variables (inventory or site variables) |
oci-labs, image builds |
Consume the engine and the collection | Lab inventory and build arguments |
Details for the engine: odb_autoupgrade - Oracle Home Management.