Optimal Flexible Architecture

From Oracle FAQ
Jump to: navigation, search

The Optimal Flexible Architecture (or OFA) is designed to make performance tuning and database administration easier by providing a set of industry-wide standards for laying out the physical database. It is based upon storage devices. The idea is to spread files out among the different disk drives to eliminate contention and ensure optimal performance.

For example, one of the more common practices for tuning a database includes putting tables on one drive, and indexes on another. OFA would have you put the tables in one tablespace, and the indexes in another tablespace, allowing you to more easily move tables and/or indexes onto different storage devices. OFA takes it one step further, by providing standard directories in which to place datafiles.


The OFA was created by Cary Milsap in 1991 at the Oracle User's Conference. The OFA soon became widely adopted and is now considered an Oracle "Best Practice".


Essentially, for each storage device available to Oracle, a directory is created, denoting it contains Oracle database files. A couple of the more common directory names might be ORACLE, oracle, or oradata. Using the latter example, if your server has drives /u01, /u02 and /u03, you would create the directories /u01/oradata, /u02/oradata, and /u03/oradata.

Under each of these data directories, a separate directory should be created for each database whose files will reside on this drive. The directory name should match the database name. Taking drive /u01, if databases "prod" and "devl" are to reside on the device, then the directories "prod" and "devl" should be created in the directory /u01/oradata. It is these last set of directories where all database files (control files, redo log files and data files) will be placed. In other words, all files for database acct that reside on device /u01 will be in the directory /u01/oradata/prod.

OFA also provides a standard directory name many other things related to Oracle database administration. One of the most important directory names is ORACLE_HOME. Different versions of the product sets have different ORACLE_HOMEs.

Other items to note: database administration scripts are stored independent of the version of Oracle you are using, as are the instance alert.log and trace files are also stored separate of the version of Oracle (in the database administration script directory tree).