oracle OMF的使用

不一樣的天空w發表於2018-04-13

OMF ----oracle managed files   是在10g之後推出的

 

使用OMF的好處
使用OMF有如下好處:
·使資料庫易於管理。
不需要編制檔名和確定指定的儲存,一組一致的規則是用來命名所有相關檔案。檔案系統確定分配它的儲存特性和池。
·減少管理員指定錯誤檔案導致的損壞。
每個OMF和檔名是唯一的。在兩個不同的資料庫使用相同的檔案是一個常見的錯誤,可能導致長時間停止和丟失已提交的事務。使用兩個不同的名字執行同一個檔案是另一錯誤,會導致重大損壞。
·減少過期檔案造成的磁碟空間的浪費。
Oracle會自動刪除舊的OMF,在它們不再需要時。在一個簡單的大型系統中很多磁碟空間被浪費,因為沒有人知道是否一個特定檔案仍然需要。對於磁碟上不再需要的內容,可以簡化管理任務,防止誤刪除檔案。
·可以簡化建立任務和資料庫開發。
你可以使用很少時間確定檔案結構和檔名字,減少檔案管理任務。集中精力測試和進行資料庫開發,滿足它的實際需要。
·OMF使利用第三方工具開發更加容易。
OMF不再需要在SQL指令碼中放入作業系統指定的名字。

 

實現資料檔案OMF管理

 

以前建立一個表空間需要指定資料檔案路徑及大小

SQL> create tablespace wer datafile '/u01/app/oracle/oradata/fengzi/wer.dbf' size 100m;

 

 

實現資料檔案OMF管理只需要設定一個引數就可以

 

SQL> show parameter db_create_file_dest

 

NAME                                 TYPE        VALUE

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

db_create_file_dest                  string     

SQL>

SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/';

System altered.

SQL> create tablespace wer;

Tablespace created.

SQL>    

SQL> select name from v$datafile;

 

NAME

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

+DATA/fengzi/datafile/system.277.842187103

+DATA/fengzi/datafile/undotbs1.dbf

+DATA/fengzi/datafile/sysaux.279.842187235

+DATA/fengzi/datafile/users2.dbf

+DATA/fengzi/datafile/undotbs.dbf

+DATA/fengzi/datafile/users1.dbf

/u01/app/oracle/oradata/FENGZI/datafile/o1_mf_wer_9ns1wd2n_.dbf

 

7 rows selected.

 

SQL>

SQL> ho ls -lh /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_wer_9ns1wd2n_.dbf

-rw------- 1 oracle oinstall 101M Apr 15 09:12 /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_wer_9ns1wd2n_.dbf

                    (預設分配大小為100M

SQL>

也可以直接指定大小

SQL> create tablespace qwe datafile size 15m;

SQL> ho ls -lh /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_qwe_9ns25pms_.dbf

-rw------- 1 oracle oinstall 16M Apr 15 09:17 /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_qwe_9ns25pms_.dbf

 

SQL>

 

如果使用drop tablespace {tablespace_name};命令刪除表空間,OMF管理的會將物理檔案也一同刪除

 

SQL> drop tablespace qwe;

 

Tablespace dropped.

 

SQL> ho ls -lh /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_qwe_9ns25pms_.dbf

ls: /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_qwe_9ns25pms_.dbf: No such file or directory

 

SQL>

其他的使用drop tablespace {tablespace_name};命令是不會刪除物理檔案的

 

SQL> create tablespace qaz datafile '/u01/app/oracle/oradata/fengzi/qaz.dbf' size 10m;

 

Tablespace created.

 

SQL> ho ls /u01/app/oracle/oradata/fengzi/qaz.dbf

/u01/app/oracle/oradata/fengzi/qaz.dbf

 

SQL> drop tablespace qaz;

 

Tablespace dropped.

 

SQL> ho ls /u01/app/oracle/oradata/fengzi/qaz.dbf

/u01/app/oracle/oradata/fengzi/qaz.dbf

 

SQL>

想要刪除應該

drop tablespace tablespace_name  including contents and datafiles;

 

including contents:用於刪除表空間同時刪除表空間上的所有段

including contents and datafiles刪除表空間、資料檔案以及表空間上段的資訊,同時刪除OS中的資料檔案

 

 

實現日誌檔案OMF管理

 

確認原預設存放組位置

SQL> alter database add logfile;

 

Database altered.

 

SQL> select member from v$logfile;

 

MEMBER

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

+DATA/fengzi/onlinelog/group_1_1.log

+DATA/fengzi/onlinelog/group_1_2.log

+DATA/fengzi/onlinelog/group_2_1.log

+DATA/fengzi/onlinelog/group_2_2.log

+DATA/fengzi/onlinelog/group_3_1.log

+DATA/fengzi/onlinelog/group_3_2.log

/u01/app/oracle/oradata/FENGZI/onlinelog/o1_mf_4_9ns3nvl6_.log

+DATA/fengzi/onlinelog/group_4.345.844940573                

 

8 rows selected.

以上預設建立組的成員路徑是由以下引數決定的

SQL> show parameter db_create_file_dest

 

NAME                                 TYPE        VALUE

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

db_create_file_dest                  string      /u01/app/oracle/oradata/

SQL> show parameter db_recovery_file_dest

 

NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string      +DATA

SQL>

 

同樣的,只需要修改相應引數就可以

 

SQL> show parameter db_create_online

 

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

SQL>

可以看到在一個組中給出了5個成員,一般一個組下有2個成員就足夠了。所以根據情況選擇使用引數數量

 

 

 

先選擇存放日誌的路徑

SQL> ho mkdir /u01/app/oracle/d1

 

SQL> ho mkdir /u01/app/oracle/d2

 

SQL>

定義引數db_create_online_log_dest_1db_create_online_log_dest_2

SQL> alter system set db_create_online_log_dest_1='/u01/app/oracle/d1';

 

System altered.

 

SQL> alter system set db_create_online_log_dest_2='/u01/app/oracle/d2';

 

System altered.

 

SQL>

再次建立日誌組

SQL> alter database add logfile;

 

Database altered.

 

 

SQL> select group#,member from v$logfile;

 

    GROUP#

----------

MEMBER

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

         1

+DATA/fengzi/onlinelog/group_1_1.log

 

         1

+DATA/fengzi/onlinelog/group_1_2.log

 

         2

+DATA/fengzi/onlinelog/group_2_1.log

 

 

    GROUP#

----------

MEMBER

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

         2

+DATA/fengzi/onlinelog/group_2_2.log

 

         3

+DATA/fengzi/onlinelog/group_3_1.log

 

         3

+DATA/fengzi/onlinelog/group_3_2.log

 

 

    GROUP#

----------

MEMBER

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

         4

/u01/app/oracle/oradata/FENGZI/onlinelog/o1_mf_4_9ns3nvl6_.log

 

         4

+DATA/fengzi/onlinelog/group_4.345.844940573

 

         5

/u01/app/oracle/d1/FENGZI/onlinelog/o1_mf_5_9ns4dov5_.log

 

 

    GROUP#

----------

MEMBER

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

         5

/u01/app/oracle/d2/FENGZI/onlinelog/o1_mf_5_9ns4dptw_.log

 

 

10 rows selected.

 

SQL>

 

對於日誌檔案OMF管理,是不能向組中新增成員的,與資料檔案一樣,在 drop 的時候同樣會將OS物理檔案刪除。

 

如果想使用控制檔案OMF管理

需要幹掉下面引數

SQL> alter system reset control_files scope=spfile sid='*';

 

 

控制檔案也是根據日誌檔案的引數決定的(存放路徑與日誌檔案一致)

SQL> show parameter db_create_online_log

 

NAME                                 TYPE        VALUE

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

db_create_online_log_dest_1          string      /u01/app/oracle/d1

db_create_online_log_dest_2          string      /u01/app/oracle/d2  (定義了幾個成員就有幾個控制檔案)

db_create_online_log_dest_3          string

db_create_online_log_dest_4          string

db_create_online_log_dest_5          string

SQL>

 

 

 

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

相關文章