The following example illustrates the relationship between Oracle Disk Manager and Oracle Managed Files (OMF). The example shows the init.ora contents and the command for starting the database instance. To simplify Oracle UNDO management, the new Oracle10g or later init.ora parameter UNDO_MANAGEMENT is set to AUTO. This is known as System-Managed Undo.
$ cat initPROD.ora UNDO_MANAGEMENT = AUTO DB_CREATE_FILE_DEST = '/PROD' DB_CREATE_ONLINE_LOG_DEST_1 = '/PROD' db_block_size = 4096 db_name = PROD $ sqlplus /nolog SQL> connect / as sysdba SQL> startup nomount pfile= initPROD.ora
The Oracle instance starts.
Total System Global Area 93094616 bytes Fixed Size 279256 bytes Variable Size 41943040 bytes Database Buffers 50331648 bytes Redo Buffers 540672 bytes
To implement a layout that places files associated with the EMP_TABLE tablespace in a directory separate from the EMP_INDEX tablespace, use the ALTER SYSTEM statement. This example shows how OMF handles file names and storage clauses and paths. The layout allows you to think of the tablespaces as objects in a file system as opposed to a collection of data files. Since OMF uses the Oracle Disk Manager file resize function, the tablespace files are initially created with the default size of 100 MB and ODM increases the size as needed. Use the MAXSIZE attribute to limit growth.
The following example shows the commands for creating an OMF database and for creating the EMP_TABLE and EMP_INDEX tablespaces in their own locale:
SQL> create database PROD;
Note: |
The directory must exist for OMF to work, so the SQL*Plus HOST command is used to create the directories: |
The database is created.
SQL> HOST mkdir /PROD/EMP_TABLE; SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/PROD/EMP_TABLE';
The system is altered.
SQL> create tablespace EMP_TABLE DATAFILE AUTOEXTEND ON MAXSIZE \ 500M;
A tablespace is created.
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/PROD/EMP_INDEX';
The system is altered.
SQL> create tablespace EMP_INDEX DATAFILE AUTOEXTEND ON MAXSIZE \ 100M;
A tablespace is created.
Use the ls command to show the newly created database:
$ ls -lFR total 638062 drwxr-xr-x 2 oracle10g dba 96 May 3 15:43 EMP_INDEX/ drwxr-xr-x 2 oracle10g dba 96 May 3 15:43 EMP_TABLE/ -rw-r--r-- 1 oracle10g dba 104858112 May 3 17:28 ora_1_BEhYgc0m.log -rw-r--r-- 1 oracle10g dba 104858112 May 3 17:27 ora_2_BEhYu4NA.log -rw-r--r-- 1 oracle10g dba 806912 May 3 15:43 ora_BEahlfUX.ctl -rw-r--r-- 1 oracle10g dba 10489856 May 3 15:43 ora_sys_undo_BEajPSVq.dbf -rw-r--r-- 1 oracle10g dba 104861696 May 3 15:4 ora_system_BEaiFE8v.dbf -rw-r--r-- 1 oracle10g dba 186 May 3 15:03 PROD.ora ./EMP_INDEX: total 204808 -rw-r--r-- 1 oracle10g dba 104861696 May 3 15:43 ora_emp_inde_BEakGfun.dbf ./EMP_TABLE: total 204808 -rw-r--r-- 1 oracle10g dba 104861696 May 3 15:43 ora_emp_tabl_BEak1LqK.dbf