Oracle OMF特性試驗

realkid4發表於2011-06-11

 

Oracle 9i開始,Oracle提供了OMFOracle Manage File)特性,實現了檔案系統命名自動化。目前的Oracle版本中,已經可以支援對資料檔案(Data File)和線上日誌檔案(Online Log File)的OMF處理。

 

 

1、OMF特性與相關引數

 

傳統的方式下,我們建立資料檔案或者日誌檔案要明確的確定出建立檔案的名稱和路徑。而使用OMF特性的時候,是不需要明確指定出檔名稱路徑,Oracle會透過預先設定引數建立符合規範的檔名稱。

 

Data FileOnline Redo Log而言,Oracle提供了引數進行目錄指定。

 

 

SQL> select * from v$version where rownum<2;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

 

SQL> show parameter create

NAME                                 TYPE        VALUE

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

create_bitmap_area_size              integer     8388608

create_stored_outlines               string     

db_create_file_dest                  string      /u01/oradata

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  

 

 

其中,標註紅色的內容為使用OMF所涉及到的引數。db_create_file_dest指定的就是在建立資料檔案時,如果語句命令不指定資料檔案的位置,就在db_create_file_dest總目錄下進行建立。同樣,db_create_online_log_destn就表示當建立一個日誌檔案時,同時在多個位置進行的多重備份(Online Redo Log File通常是成組出現,每個日誌組中包括很多相同的Redo Log File)。

 

 

下面的實驗中,我們透過資料檔案的OMF建立,來掩飾其特性。

 

2、傳統表空間Tablespace建立與相關選項引數

 

首先,我們檢視一下傳統方式建立Tablespace和資料檔案的方法和引數。

 

 

SQL> create tablespace tradway datafile '/u01/oradata/WILSON/datafile/trad.dbf' size 100m autoextend off extent management local uniform. size 1m segment space management manual;

 

Tablespace created

 

SQL> select tablespace_name, extent_management, allocation_type, SEGMENT_SPACE_MANAGEMENT from dba_tablespaces;

 

TABLESPACE_NAME                EXTENT_MANAGEMENT ALLOCATION_TYPE SEGMENT_SPACE_MANAGEMENT

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

(篇幅原因,有省略

TRADWAY                 LOCAL             UNIFORM  MANUAL

 

9 rows selected

 

 

在傳統方式下,我們需要明確指定資料檔案的位置和命名。

 

 

SQL> col file_name for a60;

SQL> select file_name,tablespace_name,bytes/1024/1024,AUTOEXTENSIBLE, INCREMENT_BY from dba_data_files;

 

FILE_NAME                                                    TABLESPACE_NAME                BYTES/1024/1024 AUTOEXTENSIBLE INCREMENT_BY

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

(篇幅原因,有省略……

/u01/oradata/WILSON/datafile/trad.dbf                        TRADWAY                                    100 NO                        0

 

7 rows selected

 

傳統方式下,如果我們直接進行表空間的刪除,對應的資料檔案是不會自動隨之刪除的。

 

 

SQL> drop tablespace tradway;

Tablespace dropped

 

//表空間被刪除,但是資料檔案依然存在

[oracle@oracle11g datafile]$ pwd

/u01/oradata/WILSON/datafile

[oracle@oracle11g datafile]$ ls -l | grep trad

-rw-r-----  1 oracle oinstall 104865792 Jun  5 07:59 trad.dbf

[oracle@oracle11g datafile]$

 

 

當然,也可以使用命令drop tablespace xxx including contents and datafiles;來實現直接刪除。

 

此處,我們需要注意一下與資料檔案相關的引數。在Oracle中,資料檔案相關常見引數選項包括下面幾個:

 

ü        資料檔案大小size:表示建立檔案時刻的初始大小;

ü        自動擴充功能autoextend開關:該資料檔案在使用盡預設值空間之後,是否允許進行自動擴充;

ü        擴充體積引數increasment by:如果資料檔案是允許進行自動擴充(autoextend on),那麼每次擴充的空間大小是多大。如果資料檔案增加頻繁,建議設定略大的擴充體積引數,避免作業系統OS進行過於頻繁的擴充操作;

ü        最大檔案體積max size:生產環境下,所有的檔案和磁碟空間都是受控制的,不會允許無限制的增長。max size就是設定資料檔案增長的上限;

 

 

3OMF效用實現

 

首先,我們檢查一下預設下,OMF使用情況。

 

 

SQL> create tablespace defaulttbs;

Tablespace created

 

SQL> select tablespace_name, extent_management, allocation_type,SEGMENT_SPACE_MANAGEMENT from dba_tablespaces;

 

TABLESPACE_NAME                EXTENT_MANAGEMENT ALLOCATION_TYPE SEGMENT_SPACE_MANAGEMENT

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

(篇幅原因,有省略

DEFAULTTBS                     LOCAL             SYSTEM          AUTO

 

9 rows selected

 

 

沒有指定資料檔案的位置和名稱,檢查自動生成的效果。

 

 

SQL> select file_name,tablespace_name,bytes/1024/1024,AUTOEXTENSIBLE, INCREMENT_BY from dba_data_files;

 

FILE_NAME                                                    TABLESPACE_NAME                BYTES/1024/1024 AUTOEXTENSIBLE INCREMENT_BY

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

(篇幅原因,有省略

/u01/oradata/WILSON/datafile/o1_mf_defaultt_6yoksxvd_.dbf    DEFAULTTBS                                 100 YES                   12800

 

7 rows selected

 

 

可見,在不指定資料檔案相關引數的情況下,OracleOMF資料檔案命名是採用系統內部命名方式。建立的資料檔案大小為100M,支援自動檔案擴充,每次增加大小為10m

 

說明:在資料字典中的increment_by列列出的12800為每次擴充時候分配的資料塊數量。計算公式:10*1024*1024/(8*1024)=1280,也就是10m的資料庫空間在每個資料塊8k大小的資料庫中,對應1280個塊。

 

此時,如果我們刪除表空間,Oracle會連帶負責的將檔案刪除。

 

//刪除表空間

SQL> drop tablespace defaulttbs;

Tablespace dropped

 

[oracle@oracle11g datafile]$ ls

o1_mf_example_6bcsrj44_.dbf  o1_mf_temp_6bcsr6d8_.tmp      perfstatdata.dbf

o1_mf_sysaux_6bcsnqjb_.dbf   o1_mf_undotbs1_6bcsnqjt_.dbf  perfstattemp.dbf

o1_mf_system_6bcsnqfc_.dbf   o1_mf_users_6bcsnql5_.dbf

 

 

如果我們在建立檔案時指定引數,方式是如何呢?

 

 

--設定引數實驗

 

SQL> create tablespace customf datafile size 150m autoextend off extent management local uniform. size 1m segment space management manual;

Tablespace created

 

 

SQL> select file_name,tablespace_name,bytes/1024/1024,AUTOEXTENSIBLE, INCREMENT_BY from dba_data_files;

 

FILE_NAME                                                    TABLESPACE_NAME                BYTES/1024/1024 AUTOEXTENSIBLE INCREMENT_BY

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

(篇幅原因,有省略

/u01/oradata/WILSON/datafile/o1_mf_customf_6yol3wr2_.dbf     CUSTOMF                                    150 NO                        0

 

7 rows selected

 

 

我們透過datafile字句不帶路徑名稱的引數size等,實現了自定義OMF資料檔案。

 

 

4、結論

 

從網路中的一些反映看,OMF在生產環境下使用的情況還是有限的。

 

OMF的核心就是將檔案儲存透明化。實現DBA和資料庫配置人員不需要關注檔案具體名稱和位置,透過OracleOMFOFA體系實現規範化。但是目前的很多資料庫系統部署,特別是生產部署,是需要將檔案級別列入到部署規範中的。所以,從目前的OMF來看,實際應用還是相對較窄。

 

不過伴隨著ASM、裸裝置等儲存技術的發展和透明化,OMF的發展應用還是值得關注的。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17203031/viewspace-697689/,如需轉載,請註明出處,否則將追究法律責任。

相關文章