OMF是Oracle文件管理,全称是Oracle Managed Files,使用OMF可以简化管理员的管理工作,不用指定文件的路径,名字,大小等,由Oracle自动分配,在删除不再使用的日志、数据和控制文件的时候,OMF也会对应删除其在OS上的文件。
为这些文件的相关参数设置之后OMF可管理一下文件:
1).表空间
2).联机日志文件
3).控制文件
一.对数据文件的管理:
对数据文件的管理具体使用方法如下:
1).使用ALTER SYSTEM SET db_create_file_dest='<path>' --设置路劲
2).使用SHOW PARAMETER db_create_file_dest; --查看路径设置
3).也可以创建undo和temporary tablespace。
4).删除表空间,OMF下会删除物理文件,表空间中有表时并不能删除表空间,并不等同于未使用OMF创建的INCLUDING
CONTENTS ADN DATAFILE 的删除方式,网络上很多人这里理解错了(INCLUDINGCONTENTS ADN DATAFILE禁用).
下面来看具体操作:
SQL> show parameter db_create_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string
SQL> alter system set db_create_file_dest = '/home/oracle/dest';
System altered.
SQL> show parameter db_create_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string /home/oracle/dest
SQL> CREATE TABLESPACE Oracle;
Tablespace created.
[oracle@localhost datafile]$ pwd
/home/oracle/dest/ORCL/datafile
[oracle@localhost datafile]$ ls
o1_mf_oracle_91nqd70s_.dbf
OS上面已经有这个文件。
SQL> CREATE TABLESPACE Oracle;
Tablespace created.
SQL> CREATE TABLE BENWEN1(A NUMBER,B CHAR(10)) TABLESPACE Oracle;
Table created.
SQL> DROP TABLESPACE Oracle;
DROP TABLESPACE Oracle
*
ERROR at line 1:
ORA-01549: tablespace not empty, use INCLUDING CONTENTS option /*这里报错了,并不等同于非OMF管理的
INCLUDING CONTENTS AND DATAFILE;*/
SQL> DROP TABLE BENWEN1;
Table dropped.
SQL> DROP TABLESPACE Oracle;
Tablespace dropped.
二.OMF管理日志文件:
日志文件管理参数:db_create_online_dest_n:
下面通过操作来看效果:
SQL> show parameter db_create_online_log_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_online_log_dest_1 string
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
/*这是未设置参数的online_log*/
SQL> desc v$logfile
Name Null? Type
----------------------- -------- ----------------
GROUP# NUMBER
STATUS VARCHAR2(7)
TYPE VARCHAR2(7)
MEMBER VARCHAR2(513)
IS_RECOVERY_DEST_FILE VARCHAR2(3)
SQL> SELECT MEMBER FROM V$LOGFILE;
MEMBER
--------------------------------------------------
/opt/oracle/oradata/orcl/redo03.log
/opt/oracle/oradata/orcl/redo02.log
/opt/oracle/oradata/orcl/redo01.log