小编给大家分享一下如何使用Oracle的OMF 特性,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1.确认系统是否启用OMF特性
Oracle数据库是否启用OMF特性可以通过查看DB_CREATE_FILE_DEST参数来获得。
当DB_CREATE_FILE_DEST参数值为空时表示未启用OMF功能。
sys@ora10g> show parameter db_create_file_dest

NAME                 TYPE                 VALUE
——————– ——————– ——————-
db_create_file_dest  string

2.开启OMF特性
通过修改数据库参数使其生效。方法很多,按照个人喜好进行调整(pfile调整方法,alter system调整参数)。
sys@ora10g> alter system set db_create_file_dest='/oracle/oradata';

System altered.

sys@ora10g> show parameter db_create_file_dest

NAME                  TYPE                 VALUE
——————— ——————– ——————
db_create_file_dest   string               /oracle/oradata

3.使用OMF特性创建表空间
sys@ora10g> create tablespace tbs_secooler;

Tablespace created.

4.数据文件存放位置
此时Oracle会在/oracle/oradata目录下以数据库实例的大写名字(这里是ORA10G)创建一个目录,表空间对应的数据文件会存放在datafile目录下。
sys@ora10g> !ls -l /oracle/oradata/ORA10G/datafile
total 102512
-rw-r—– 1 oracle oinstall 104865792 Jul 15 05:59 o1_mf_tbs_seco_63x8xzvw_.dbf

5.表空间的默认属性
sys@ora10g> select dbms_metadata.get_ddl('TABLESPACE','TBS_SECOOLER') from dual;

DBMS_METADATA.GET_DDL('TABLESPACE','TBS_SECOOLER')
———————————————————————

  CREATE TABLESPACE "TBS_SECOOLER" DATAFILE
  '/oracle/oradata/ORA10G/datafile/o1_mf_tbs_seco_63x8xzvw_.dbf' SIZE 104857600
  AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO

可见,通过OMF方式创建的表空间默认是100M大小,并且是自动扩展的。

6.添加数据文件
可以简单的通过下面的命令为表空间tbs_secooler添加一个数据文件
sys@ora10g> alter tablespace tbs_secooler add datafile;

Tablespace altered.

sys@ora10g> select dbms_metadata.get_ddl('TABLESPACE','TBS_SECOOLER') from dual;

DBMS_METADATA.GET_DDL('TABLESPACE','TBS_SECOOLER')
———————————————————————

  CREATE TABLESPACE "TBS_SECOOLER" DATAFILE
  '/oracle/oradata/ORA10G/datafile/o1_mf_tbs_seco_63x8xzvw_.dbf' SIZE 104857600
  AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M,
  '/oracle/oradata/ORA10G/datafile/o1_mf_tbs_seco_63x9scb5_.dbf' SIZE 104857600
  AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO

sys@ora10g> !ls -l /oracle/oradata/ORA10G/datafile
total 205024
-rw-r—– 1 oracle oinstall 104865792 Jul 15 05:59 o1_mf_tbs_seco_63x8xzvw_.dbf
-rw-r—– 1 oracle oinstall 104865792 Jul 15 06:14 o1_mf_tbs_seco_63x9scb5_.dbf

7.删除表空间数据文件会随之删除
sys@ora10g> drop tablespace tbs_secooler;

Tablespace dropped.

sys@ora10g> !ls -l /oracle/oradata/ORA10G/datafile
total 0