Oralce 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;
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
/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;
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
/u01/app/oracle/oradata/orcl/x.dbf
SQL> DROP TABLESPACE x;
Tablespace dropped.
SQL> SELECT NAME FROM v$datafile; /*檢視中已不存在x.dbf的資料檔案*/
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
SQL> ho ls /u01/app/oracle/oradata/orcl/x.dbf /*作業系統中依然存在*/
/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;
Tablespace created.
SQL> DROP TABLESPACE x INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped.
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 = '
2.檢視剛剛的設定SHOW PARAMETER db_create_file_dest;
3.建立表空間及資料檔案CREATE TABLESPACE tablespace_name
4.單獨建立表空間CREATE TABLESPACE <> DATAFILE '
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 刪除方式
二.日誌檔案的OMF管理
日誌檔案管理引數:db_create_online_log_dest_n
db_create_online_log_dest_n:Oracle建立聯機日誌檔案和控制檔案時,在未明確指定路徑的情況下的預設路徑
--檢視日誌檔案的引數,下面是未作設定的db_create_online引數
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
--從上面可以看出系統預留了一個日誌組個成員來形成OMF,一般情況下我們僅僅需要個成員即可。因為在此設定個引數檔案
--下面是未設定的情況下建立日誌檔案,則預設為在資料檔案路徑及閃回區各放一個檔案,因為上述兩個路徑都是OMF路徑,如下:
SQL> SELECT MEMBER FROM v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log
/u01/app/oracle/oradata/orcl/ORCL/onlinelog/o1_mf_4_5vtgzjyz_.log
/u01/app/oracle/flash_recovery_area/ORCL/onlinelog/o1_mf_4_5vtgzlhb_.log
SQL> SHOW PARAMETER db_create_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string /u01/app/oracle/oradata/orcl
SQL> show parameter db_recovery_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/flash_recovery
_area
db_recovery_file_dest_size big integer 2G
--將日誌檔案存放到指定的disk1,disk2下面
SQL> ho mkdir /u01/app/oracle/disk1
SQL> ho mkdir /u01/app/oracle/disk2
SQL> ALTER SYSTEM SET db_create_online_log_dest_1 = '/u01/app/oracle/disk1';
System altered.
SQL> ALTER SYSTEM SET db_create_online_log_dest_2 = '/u01/app/oracle/disk2';
System altered.
SQL> ALTER DATABASE ADD logfile;
Database altered.
SQL> SELECT * FROM v$logfile; /*可以看到新的日誌檔案放到disk1,disk2下面*/
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ---------------------------------------- ---
3 ONLINE /u01/app/oracle/oradata/orcl/redo03.log NO
2 ONLINE /u01/app/oracle/oradata/orcl/redo02.log NO
1 ONLINE /u01/app/oracle/oradata/orcl/redo01.log NO
4 ONLINE /u01/app/oracle/oradata/orcl/ORCL/online NO
log/o1_mf_4_5vtgzjyz_.log
4 ONLINE /u01/app/oracle/flash_recovery_area/ORCL YES
/onlinelog/o1_mf_4_5vtgzlhb_.log
5 ONLINE /u01/app/oracle/disk1/ORCL/onlinelog/o1_ NO
mf_5_5vtlpxo0_.log
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ---------------------------------------- ---
5 ONLINE /u01/app/oracle/disk2/ORCL/onlinelog/o1_ NO
mf_5_5vtlpz4d_.log
SQL> alter database drop logfile group 5;
Database altered.
/*刪除日誌檔案組*/
SQL> ALTER DATABASE DROP logfile GROUP 4;
Database altered.
SQL> SELECT group#,member FROM v$logfile;
GROUP# MEMBER
---------- ----------------------------------------
3 /u01/app/oracle/oradata/orcl/redo03.log
2 /u01/app/oracle/oradata/orcl/redo02.log
1 /u01/app/oracle/oradata/orcl/redo01.log
SQL> ho ls /u01/app/oracle/disk1/ORCL/onlinelog/o1_mf_5_5vtlpxo0_.log;
ls: /u01/app/oracle/disk1/ORCL/onlinelog/o1_mf_5_5vtlpxo0_.log: No such file or directory
總結:
1.當定義了db_recovery_file_dest 和db_create_file_dest路徑,且沒有定義db_create_online_log_dest_n的時候,
則OMF將日誌檔案存放在db_recovery_file_dest和db_create_file_dest路徑下,而且日誌組下為個成員
2.當定義了db_create_online_log_dest_1則將日誌檔案存放到db_create_online_log_dest_1
和db_create_file_dest路徑下,且日誌組下為個成員
3.當定義了db_create_online_log_dest_1和db_create_online_log_dest_2則存放到
db_create_online_log_dest_1和db_create_online_log_dest_2下
4.當定義了多個db_create_online_log_dest_n,則為每個組n個日誌成員,且多路複用
5.增加日誌檔案的方法;
alter database add logfile;
alter database add logfile [group n];
alter database add logfile member '
/*add logfile member這個方法僅使用未使用OMF的日誌檔案,對於已經運用了OMF的日誌組,無法使用該功能新增日誌檔案*/
6.刪除日誌檔案組時,對於OMF的日誌檔案組,其對應的物理檔案同時被刪除
alter database drop logfile group [n]
三.使用OMF管理控制檔案
使用OMF管理控制檔案同管理日誌檔案類似,主要涉及到的也是db_create_online_log_dest_n引數
即控制檔案預設存放在db_create_online_log_dest_n下,當定義了一個db_create_online_log_dest_n
則生成一個控制檔案,當定義了多了則生成多個控制檔案。
前提條件:去掉control_files引數
alter system reset control_files scope = spfile sid = '*';
以下是預留的OMF路徑:
SQL> SHOW PARAMETER db_create
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string /u01/app/oracle/oradata/orcl
db_create_online_log_dest_1 string /u01/app/oracle/disk1
db_create_online_log_dest_2 string /u01/app/oracle/disk2
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
SQL> show parameter db_recovery_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/flash_recovery
_area
db_recovery_file_dest_size big integer 2G
總結
引數 適用範圍
db_create_file_dest_size datafile,create tablespace<>
db_create_online_log_dest_n logfile ,controlfile
db_recovery_file_dest rman, archivelog,onlinelog
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22578826/viewspace-703491/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oralce 使用SQL中的exists 和not exists 用法詳解SQL
- ORALCE函式:LAG()和LEAD() 分析函式詳解函式
- 【OMF】使用Oracle的OMF 特性Oracle
- iptables 功能詳解
- /etc/fstab功能詳解
- Hive的Transform功能詳解HiveORM
- PS濾鏡功能詳解
- Nginx高階功能詳解Nginx
- JavaScript快速排序功能詳解JavaScript排序
- CEPH-3:cephfs功能詳解
- Python 日誌功能詳解Python
- oralce觸發器解決問題觸發器
- oracle OMF的使用Oracle
- OMF (Oracle Managed File)Oracle
- 【OMF】在OMF管理模式下日誌組新增效果模式
- 海報分享功能實現詳解
- Angular 6釋出,新功能詳解Angular
- STM32 串列埠功能詳解串列埠
- 詳解 Qt 呼叫 DLL功能函式QT函式
- oracle 資料庫ASM功能詳解Oracle資料庫ASM
- Oracle OMF 為雞肋Oracle
- Oracle OMF特性試驗Oracle
- PHP7 新增功能詳解(例項)PHP
- 影視APP開發基礎功能詳解APP
- Vivado使用技巧(20):Waveform功能詳解ORM
- ABAQUS 2022新增功能詳解
- Linux mv命令格式及功能詳解!Linux
- Modbus常用功能碼協議詳解協議
- javascript實現的非同步功能詳解JavaScript非同步
- Nginx代理功能與負載均衡詳解Nginx負載
- R/3 功能詳解----財務會計
- Oralce SQL hintSQL
- oracle實驗記錄 (OMF)Oracle
- 小程式電商系統後臺功能詳解
- 標籤實現預載入功能詳解
- Apache Superset 1.2.0教程 (三)—— 圖表功能詳解Apache
- Vivado使用技巧(4):查詢功能詳解
- Android APK開發:Menu介面功能詳解AndroidAPK