F Optimal Flexible Architecture

This appendix describes the Optimal Flexible Architecture (OFA) standard. This standard is a set of configuration guidelines created to ensure well organized Oracle installations that are easier to maintain. It includes information about the following topics:

F.1 Overview of the Optimal Flexible Architecture Standard

The Optimal Flexible Architecture standard helps you to organize database software and configure databases to allow multiple databases, of different versions, owned by different users to coexist. Optimal Flexible Architecture assists in identification of ORACLE_BASE with its Automatic Diagnostic Repository (ADR) diagnostic data to properly collect incidents.

All Oracle components on the installation media are compliant with Optimal Flexible Architecture. Oracle Universal Installer places Oracle Database components in directory locations, assigning the default permissions that follow Optimal Flexible Architecture guidelines.

Oracle recommends that you use Optimal Flexible Architecture, especially if the database is huge, or if you plan to have multiple databases.

F.1.1 Advantages of Multiple Oracle Homes and OFA

When you install Oracle database, you are installing a large application that your computer can support. Using multiple Oracle homes and Optimal Flexible Architecture provides many advantages when administering large databases. The following advantages are important:

  • Structured organization of directories and files, and consistent naming for database files simplify database administration.

  • Distribution of I/O across multiple disks prevents performance bottlenecks caused by multiple read or write commands issued simultaneously to a single drive.

  • Distribution of applications across multiple disks safeguards against database failures.

  • Login home directories are not at risk when database administrators add, move, or delete Oracle home directories.

  • Multiple databases, of different versions, owned by different users can coexist concurrently.

  • Software upgrades can be tested in an Oracle home in a separate directory from the Oracle home where your production database is located.

F.2 Understanding Optimal Flexible Architecture

This section describes the naming strategy recommended by the Optimal Flexible Architecture standard. It contains the following sections:

F.2.1 File Systems

The following sections describe the conventions for mount points:

F.2.1.1 Number of File Systems

To fully implement the Optimal Flexible Architecture recommendations for a database stored on file systems that are not striped or mirrored, you require at least three file systems located on separate physical devices.

F.2.1.2 Naming Conventions

Name all file system mount points using the syntax /pm, where p is a string constant and m is a unique fixed-length key (typically a two-digit number) used to distinguish each mount point. For example: /u01 and /u02, or /disk01 and /disk02.

F.2.2 Naming Directories

The following sections describe the naming conventions for directories that are compliant with the Optimal Flexible Architecture standard:

Note:

Ensure that the paths you select for Oracle software, such as the Oracle home path and the Oracle base path, use only ASCII characters. Because installation owner names are used by default for some paths, this ASCII character restriction applies to user names, file names, and directory names.

F.2.2.1 Oracle Base Directory Naming Convention

The Oracle Base directory is the top level directory that you can use to install the various Oracle software products. You can use the same Oracle base directory for multiple installations. If different operating system users install Oracle software on the same system, then each user must create a separate Oracle base directory.

Name Oracle base directories using the syntax /pm/s/u. Table F-1 describes the variables used in this syntax.

Table F-1 Syntax for Naming Oracle Base Directories

Variable Description

pm

A mount point name

s

A standard directory name

u

The name of the owner of the directory (the user running Oracle Universal Installer)


For example, /u01/app/oracle is an Oracle base directory created by the oracle user and /u01/app/applmgr is an Oracle base directory created by the applmgr user.

Placing Oracle base directories at the same level in the UNIX file system is advantageous because it enables you to refer to the collection of Oracle base directories on different mount points using a single pattern matching string, /*/app/*.

F.2.2.2 Naming Mount Points for Very Large Databases (VLDBs)

If each disk drive contains database files from one application and there are enough drives for each database to prevent I/O bottlenecks, use the syntax /h/q/d for naming mount points. Table F-2 describes the variables used in this syntax.

Table F-2 Syntax for Naming Mount Points for Very Large Databases

Variable Description

h

Oracle base directory

q

A string denoting that Oracle data is stored in this directory, for example, oradata

d

The value of the initialization parameter DB_NAME (typically the same as the instance SID for single-instance databases)


For example, to allocate two drives exclusively for the test database, name the mount points /u01/app/oracle/oradata/test and /u02/app/oracle/oradata/test.

F.2.2.3 Referring to Path Names

Refer to explicit path names only in files designed specifically to store them, such as the password file, /etc/passwd, and the Oracle oratab file. Refer to group memberships only in the /etc/group file.

F.2.2.4 Oracle Home Directory Naming Convention

To help fulfill the Optimal Flexible Architecture requirement of simultaneously running multiple versions of Oracle software, install the software in a directory matching the pattern /pm/s/u/product/v/type_[n].

Table F-3 describes the variables used in this syntax.

Table F-3 Syntax for Naming Oracle Home Directories

Variable Description

pm

A mount point name

s

A standard directory name

u

The name of the owner of the directory

v

The version of the software

type

The type of installation, for example Database (dbhome_1), Client (client), or Oracle Grid Infrastructure (grid)

n

An optional counter, which enables you to install the same product more than once in the same Oracle base directory


For example:

/u01/app/oracle/product/12.1.0/dbhome_1 indicates the Oracle home directory for the first installation of Oracle Database on this system.

The ORACLE_HOME environment variable is set to the Oracle home directory.

F.2.2.5 Naming Subdirectories

To facilitate the organization of administrative data, Oracle recommends that you store database-specific administration files in subdirectories matching the pattern /h/admin/d/a/, where h is the Oracle base directory, d is the database name (DB_NAME), and a is a subdirectory for specific types of database administration files. Table F-4 describes the database administration file subdirectories.

Table F-4 Subdirectories for Database Administration Files

Subdirectory Description

arch

Archived redo log files

adump

Audit files
(Set the AUDIT_FILE_DEST initialization parameter to specify the adump directory)

See Also: Oracle Database Security Guide

create

Contains database creation log files and scripts used to create the database

dpdump

Default directory for data pump operations. Also contains the data pump file dp.log

exp

Database export files

logbook

Files recording the status and history of the database

pfile

Instance parameter files

scripts

Ad hoc SQL scripts


For example, /u01/app/oracle/admin/orcl/scripts/ is the scripts subdirectory associated with the database named orcl.

The ADR diagnostic data goes into the /h/diag/rdbms/d/i/ directory by default.

where

h is Oracle Base

d is the database name

i is the instance name.

The ADR home has the trace, alert, and incident sub-directories. Table F-5 describes the ADR directories.

Table F-5 Locations for Diagnostic Traces

Diagnostic Data 10g Location 11g and 12c Location

Foreground Process traces

user_dump_dest

ADR_HOME/trace/

Background Process traces

background_dump_dest

ADR_HOME/trace/

Alert Log Data

background_dump_dest

ADR_HOME/alert/

Core Dump

core_dump_dest

ADR_HOME/cdumps/

Incident Dumps

user_dump_dest or background_dump_dest depending on the process

ADR_HOME/incident/


See Also:

"Structure, Contents, and Location of the Automatic Diagnostic Repository" in Oracle Database Administrator's Guide

F.2.3 Naming Database Files

The following table lists the recommended file naming conventions for database files:

Note:

Oracle Managed Files (OMF) and files stored in Oracle Automatic Storage Management disk groups use different naming conventions. For more information about these naming conventions, refer to the Oracle Database Administrator's Guide.
File Type File Naming Convention
Control files /h/q/d/control.ctl
Redo log files /h/q/d/redon.log
Data files /h/q/d/tn.dbf

The following table describes this syntax:

Variable Description
h Oracle base directory
q A string (typically oradata) distinguishing Oracle data from all other files
d The value of the DB_NAME initialization parameter (typically, the same as the instance SID for single-instance databases)
t An Oracle tablespace name
n A two-digit string

Note:

Do not store files other than control files, redo log files, or data files associated with database d in the path /h/q/d.

Using this convention, it is easy to determine the database to which the /u01/app/oracle/oradata/sab/system01.dbf file belongs.

F.2.4 Separating Segments with Different Requirements

Separate groups of segments with different lifespans, I/O request demands, and backup frequencies across different tablespaces.

Table F-6 describes the special tablespaces that the Database Configuration Assistant creates for each Oracle database. If you manually create a database, you must create the required tablespaces. These tablespaces are in addition to those required for application segments.

See Also:

"Creating and Configuring an Oracle Database" in Oracle Database Administrator's Guide for information about creating databases manually

Table F-6 Special Tablespaces

Tablespace Required Description

EXAMPLE

No

The EXAMPLE tablespace used to store the Sample Schemas

SYSAUX

Yes

Auxiliary tablespace to the SYSTEM tablespace

SYSTEM

Yes

Data dictionary segments

TEMP

Yes

Temporary segments

UNDOTBS1

Yes

Used by Oracle to store undo information

USERS

No

Miscellaneous user segments


Creating these special tablespaces is effective because data dictionary segments are never dropped, and no other segments that can be dropped are allowed in the SYSTEM tablespace.

See Also:

"Reviewing Tablespaces and Data Files, Redo Log Files, and Control Files" for information about redo log, and control files

F.2.5 Identifying the Optimal Flexible Architecture Structure for Oracle Files

Table F-7 describes the syntax used for identifying classes of files.

Table F-7 Directory Structure Syntax for Identifying Classes of Files

Directory Structure Syntax Description

/u[0-9][0-9]

User data directories

/*/home/*

User home directories

/*/app/*

User application software directories

/*/app/applmgr

Oracle applications software subtrees

/*/app/oracle/product

Oracle software subtrees

/*/app/oracle/product/12.1.0

Oracle software subtree for release 12c products

/*/app/oracle/product/12.1.0/db*

Oracle home directories for Oracle Database 12c

/*/app/oracle/product/12.1.0/grid*

Oracle home directory for Oracle Grid Infrastructure 12c for a standalone server, for user oracle

/*/app/oracle/admin/orcl

orcl database administrative subtrees

/*/app/oracle/admin/orcl/arch/*

orcl database archived log files

/*/app/oracle/oradata

Oracle data directories

/*/app/oracle/oradata/orcl/*

orcl database files

/*/app/oracle/oradata/orcl/*.log

orcl database redo log files


F.2.6 Optimal Flexible Architecture File Mapping

Table F-8 shows a hierarchical file mapping of a sample Optimal Flexible Architecture-compliant installation with two Oracle home directories and two databases. The database files are distributed across three mount points, /u02, /u03, and /u04.

Note:

Oracle recommends that you use Oracle ASM to provide greater redundancy and throughput.

Table F-8 Hierarchical File Mapping for an Optimal Flexible Architecture Installation

Directory Description

/

Root directory

/u01/

User data mount point 1

/u01/app/

Subtree for application software

/u01/app/oracle/

Oracle Base directory

/u01/app/oracle/admin/

Subtree for database administration files

/u01/app/oracle/admin/TAR

Subtree for support log files

/u01/app/oracle/admin/db_name1/

admin subtree for db_name1 database

/u01/app/oracle/admin/db_name2/

admin subtree for db_name2 database

/u01/app/oracle/fast_recovery_area/

Subtree for recovery files

/u01/app/oracle/fast_recovery_area/db_name1

Recovery files for db_name1 database

/u01/app/oracle/fast_recovery_area/db_name2

Recovery files for db_name2 database

/u02/app/oracle/oradata

/u03/app/oracle/oradata

/u04/app/oracle/oradata

Oracle data directory

/u01/app/oracle/product/

Distribution files

/u01/app/oracle/product/12.1.0/dbhome_1

Oracle home directory for Oracle Database, for user oracle

/u01/app/oracle/product/12.1.0/grid

Oracle home directory for Oracle Grid Infrastructure for a standalone server, for user oracle

/u01/app/kjf/

Oracle base directory for user kjf

/u01/app/edm/

Oracle base directory for user edm


Table F-9 shows a hierarchical file mapping for log files of a sample Optimal Flexible Architecture-compliant installation in the orcl database.

Table F-9 Hierarchical File Mapping for Log Files in an Optimal Flexible Architecture Installation

Directory Description

/u01/app/oracle/admin/TAR

Subtree for support log files

/u01/app/oracle/admin/orcl/arch/*

Archived log files

/u01/app/oracle/admin/orcl/create/

Contains the database creation log files

/u01/app/oracle/oradata/orcl/*.log

Redo log files

/u01/app/oracle/admin/orcl/dpdump/

Contains the data pump file dp.log

/u01/app/oracle/diag

Contains all database, listener, sqlnet and other diagnostic logs

/u01/app/oracle/audit

Contains all audit logs

/u01/app/oracle/cfgtoollogs

Contains logs for configuration assistants such as Oracle Database Configuration Assistant, Database Upgrade Assistant, and Oracle Net Configuration Assistant