天天看點

ORACLE的OMF管理(表空間,日志檔案,控制檔案)

OMF管理

  OMF,全稱是Oracle_Managed Files,即Oracle檔案管理,使用OMF可以簡化管理者的管理工作,不用指定檔案的名字、大小、路徑,其名字,大小,路徑由oracle 自動配置設定。在删除不再使用的日志、資料、控制檔案時,OMF也可以自動删除其對應的OS檔案。

OMF支援下列檔案的自動管理:

    表空間

    日志檔案(聯機)

    控制檔案

前提條件:需要為這些類型檔案設定相關參數。

一.資料檔案的OMF管理

  資料檔案管理參數:db_create_file_dest

  db_create_file_dest:Oracle建立資料檔案、臨時檔案時,在未明确指定路徑的情況下的預設路徑,當db_create_online_log_dest_n未指定時,也作為聯機日志檔案和控制檔案的預設路徑。

  假定需要建立表空間s及資料檔案

    SQL> CREATE TABLESPACE s;  /*收到了錯誤資訊*/

      create tablespace s

    *  ERROR at line 1:

      ORA-02199: missing DATAFILE/TEMPFILE clause

    SQL> show parameter db_create_file  /*檢視db_create_file_dest參數*/

      NAME                                TYPE        VALUE

      ------------------------------------ ----------- ------------------------------

      db_create_file_dest                  string

    --設定db_create_file_dest參數

    SQL> ALTER SYSTEM SET db_create_file_dest = '/u01/app/oracle/oradata/orcl';

      System altered.

    --設定參數後,建立成功

    SQL> CREATE TABLESPACE s; 

     Tablespace created.

    SQL> SELECT NAME FROM v$datafile;  /*可以看到ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf是Oralce自動建立的資料檔案*/

      NAME

      --------------------------------------------------------------------------------

      /u01/app/oracle/oradata/orcl/system01.dbf

      /u01/app/oracle/oradata/orcl/undotbs01.dbf

      /u01/app/oracle/oradata/orcl/sysaux01.dbf

      /u01/app/oracle/oradata/orcl/users01.dbf

      /u01/app/oracle/oradata/orcl/example01.dbf

      /u01/app/oracle/oradata/orcl/Test.dbf

      /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf

    /*檢視實體檔案,預設為MB*/

    SQL> ho ls -lh /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf 

      -rw------- 1 oracle oinstall 101M Apr  7 16:54 /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf

    SQL> CREATE TABLESPACE t DATAFILE SIZE 10m;  /*也可指定資料檔案的大小為MB*/

      Tablespace created.

  SQL> SELECT NAME FROM v$datafile;

      /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf

    SQL> ho ls -lh /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf

      -rw------- 1 oracle oinstall 11M Apr  7 17:01 /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf

    --删除表空間時,對于使用了OMF生成的資料檔案将随着表空間的删除一起被删除

    SQL> DROP TABLESPACE t;

    Tablespace dropped.

 --檢視實體檔案,已經不存在

    SQL> ho ls -lh /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf 

      ls: /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf: No such file or directory

    --對于未采用OMF來建立的表空間,在删除表空間之後,其資料檔案并沒有删除,v$datafile視圖中被删除

    --下面是未使用OMF建立的x表空間及資料檔案

    SQL> CREATE TABLESPACE x DATAFILE '/u01/app/oracle/oradata/orcl/x.dbf' SIZE 10m;

       Tablespace created.

    SQL> SELECT NAME FROM v$datafile;     

      /u01/app/oracle/oradata/orcl/x.dbf

     SQL> DROP TABLESPACE x;

      Tablespace dropped.

     SQL> SELECT NAME FROM v$datafile; /*視圖中已不存在x.dbf的資料檔案*/

      SQL> ho ls /u01/app/oracle/oradata/orcl/x.dbf  /*作業系統中依然存在*/

    --注意:使用OMF的時候會将實體檔案删除,應特别注意使用

    --使用下面的方法重建x表空間,然後使用including contents and datafiles 徹底删除表空間及實體檔案

     SQL> CREATE TABLESPACE X DATAFILE '/u01/app/oracle/oradata/orcl/x.dbf' REUSE; 

     SQL> DROP TABLESPACE x INCLUDING CONTENTS AND DATAFILES;

    SQL> ho ls /u01/app/oracle/oradata/orcl/x.dbf

      ls: /u01/app/oracle/oradata/orcl/x.dbf: No such file or directory

總結:使用OMF管理檔案的方法

  1.使用ALTER SYSTEM SET db_create_file_dest = '<path>'設定路徑

  2.檢視剛剛的設定SHOW PARAMETER db_create_file_dest;

  3.建立表空間及資料檔案CREATE TABLESPACE tablespace_name

  4.單獨建立表空間CREATE TABLESPACE <> DATAFILE '<path>' SIZE <>;

  5.也可以建立undo和temporary tablespace 。CREATE UNDO TABLESPACE tablespace_name ;CREATE TEMPORARY TABLESPACE tablespace_name;

  6.删除表空間DROP TABLESPACE tablespace_name ;OMF情況下則删除實體檔案,等效于未使用OMF建立,使用INCLUDING CONTENTS AND DATAFILES 删除方式

更多詳情見請繼續閱讀下一頁的精彩内容: http://www.linuxidc.com/Linux/2013-11/92490p2.htm

相關閱讀:

Oracle表空間建立删除,OMF,分區表建立 http://www.linuxidc.com/Linux/2012-01/51695.htm