溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

oracle中OMF怎么用

發(fā)布時(shí)間:2021-11-09 08:41:53 來(lái)源:億速云 閱讀:215 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫(kù)

小編給大家分享一下oracle中OMF怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

使用OMF的好處
使用OMF有如下好處:
·使數(shù)據(jù)庫(kù)易于管理。
不需要編制文件名和確定指定的存儲(chǔ),一組一致的規(guī)則是用來(lái)命名所有相關(guān)文件。文件系統(tǒng)確定分配它的存儲(chǔ)特性和池。
·減少管理員指定錯(cuò)誤文件導(dǎo)致的損壞。
每個(gè)OMF和文件名是唯一的。在兩個(gè)不同的數(shù)據(jù)庫(kù)使用相同的文件是一個(gè)常見(jiàn)的錯(cuò)誤,可能導(dǎo)致長(zhǎng)時(shí)間停止和丟失已提交的事務(wù)。使用兩個(gè)不同的名字執(zhí)行同一個(gè)文件是另一錯(cuò)誤,會(huì)導(dǎo)致重大損壞。
·減少過(guò)期文件造成的磁盤(pán)空間的浪費(fèi)。
Oracle會(huì)自動(dòng)刪除舊的OMF,在它們不再需要時(shí)。在一個(gè)簡(jiǎn)單的大型系統(tǒng)中很多磁盤(pán)空間被浪費(fèi),因?yàn)闆](méi)有人知道是否一個(gè)特定文件仍然需要。對(duì)于磁盤(pán)上不再需要的內(nèi)容,可以簡(jiǎn)化管理任務(wù),防止誤刪除文件。
·可以簡(jiǎn)化創(chuàng)建任務(wù)和數(shù)據(jù)庫(kù)開(kāi)發(fā)。
你可以使用很少時(shí)間確定文件結(jié)構(gòu)和文件名字,減少文件管理任務(wù)。集中精力測(cè)試和進(jìn)行數(shù)據(jù)庫(kù)開(kāi)發(fā),滿足它的實(shí)際需要。
·OMF使利用第三方工具開(kāi)發(fā)更加容易。
OMF不再需要在SQL腳本中放入操作系統(tǒng)指定的名字。

實(shí)現(xiàn)數(shù)據(jù)文件OMF管理

 

以前創(chuàng)建一個(gè)表空間需要指定數(shù)據(jù)文件路徑及大小

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

 

實(shí)現(xiàn)數(shù)據(jù)文件OMF管理只需要設(shè)置一個(gè)參數(shù)就可以

 

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

                    (默認(rèn)分配大小為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管理的會(huì)將物理文件也一同刪除

 

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};命令是不會(huì)刪除物理文件的

 

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>

想要?jiǎng)h除應(yīng)該

drop  tablespace tablespace_name  including contents and  datafiles;

 

including  contents:用于刪除表空間同時(shí)刪除表空間上的所有段

including  contents and datafiles刪除表空間、數(shù)據(jù)文件以及表空間上段的信息,同時(shí)刪除OS中的數(shù)據(jù)文件

實(shí)現(xiàn)日志文件OMF管理

 

確認(rèn)原默認(rèn)存放組位置

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.

以上默認(rèn)創(chuàng)建組的成員路徑是由以下參數(shù)決定的

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>

 

同樣的,只需要修改相應(yīng)參數(shù)就可以

 

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>

可以看到在一個(gè)組中給出了5個(gè)成員,一般一個(gè)組下有2個(gè)成員就足夠了。所以根據(jù)情況選擇使用參數(shù)數(shù)量

 

 

 

先選擇存放日志的路徑

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

 

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

 

SQL>

定義參數(shù)db_create_online_log_dest_1與db_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>

再次創(chuàng)建日志組

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>

 

對(duì)于日志文件OMF管理,是不能向組中添加成員的,與數(shù)據(jù)文件一樣,在 drop 的時(shí)候同樣會(huì)將OS物理文件刪除。

 

如果想使用控制文件OMF管理

需要干掉下面參數(shù)

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

 

 

控制文件也是根據(jù)日志文件的參數(shù)決定的(存放路徑與日志文件一致)

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  (定義了幾個(gè)成員就有幾個(gè)控制文件)

db_create_online_log_dest_3          string

db_create_online_log_dest_4          string

db_create_online_log_dest_5          string

SQL>

以上是“oracle中OMF怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI