【OMF】使用Oracle的OMF 特性
Oracle的OMF全稱“Oracle managed file”,關於這個概念的參考請自行查閱Oracle官方文件“Using Oracle-Managed Files”()。關於這項體現Oracle自動化演進的特性的評價褒貶不一。我們不討論是否推薦在生產系統中引入這項技術,我們一同看一下這個技術帶給我們的樂趣。
1.確認系統是否啟用OMF特性
Oracle資料庫是否啟用OMF特性可以透過檢視DB_CREATE_FILE_DEST引數來獲得。
當DB_CREATE_FILE_DEST引數值為空時表示未啟用OMF功能。
sys@ora10g> show parameter db_create_file_dest
NAME TYPE VALUE
-------------------- -------------------- -------------------
db_create_file_dest string
2.開啟OMF特性
透過修改資料庫引數使其生效。方法很多,按照個人喜好進行調整(pfile調整方法,alter system調整引數)。
sys@ora10g> alter system set db_create_file_dest='/oracle/oradata';
System altered.
sys@ora10g> show parameter db_create_file_dest
NAME TYPE VALUE
--------------------- -------------------- ------------------
db_create_file_dest string /oracle/oradata
3.使用OMF特性建立表空間
sys@ora10g> create tablespace tbs_secooler;
Tablespace created.
4.資料檔案存放位置
此時Oracle會在/oracle/oradata目錄下以資料庫例項的大寫名字(這裡是ORA10G)建立一個目錄,表空間對應的資料檔案會存放在datafile目錄下。
sys@ora10g> !ls -l /oracle/oradata/ORA10G/datafile
total 102512
-rw-r----- 1 oracle oinstall 104865792 Jul 15 05:59 o1_mf_tbs_seco_63x8xzvw_.dbf
5.表空間的預設屬性
sys@ora10g> select dbms_metadata.get_ddl('TABLESPACE','TBS_SECOOLER') from dual;
DBMS_METADATA.GET_DDL('TABLESPACE','TBS_SECOOLER')
---------------------------------------------------------------------
CREATE TABLESPACE "TBS_SECOOLER" DATAFILE
'/oracle/oradata/ORA10G/datafile/o1_mf_tbs_seco_63x8xzvw_.dbf' SIZE 104857600
AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
可見,透過OMF方式建立的表空間預設是100M大小,並且是自動擴充套件的。
6.新增資料檔案
可以簡單的透過下面的命令為表空間tbs_secooler新增一個資料檔案
sys@ora10g> alter tablespace tbs_secooler add datafile;
Tablespace altered.
sys@ora10g> select dbms_metadata.get_ddl('TABLESPACE','TBS_SECOOLER') from dual;
DBMS_METADATA.GET_DDL('TABLESPACE','TBS_SECOOLER')
---------------------------------------------------------------------
CREATE TABLESPACE "TBS_SECOOLER" DATAFILE
'/oracle/oradata/ORA10G/datafile/o1_mf_tbs_seco_63x8xzvw_.dbf' SIZE 104857600
AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M,
'/oracle/oradata/ORA10G/datafile/o1_mf_tbs_seco_63x9scb5_.dbf' SIZE 104857600
AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
sys@ora10g> !ls -l /oracle/oradata/ORA10G/datafile
total 205024
-rw-r----- 1 oracle oinstall 104865792 Jul 15 05:59 o1_mf_tbs_seco_63x8xzvw_.dbf
-rw-r----- 1 oracle oinstall 104865792 Jul 15 06:14 o1_mf_tbs_seco_63x9scb5_.dbf
7.刪除表空間資料檔案會隨之刪除
sys@ora10g> drop tablespace tbs_secooler;
Tablespace dropped.
sys@ora10g> !ls -l /oracle/oradata/ORA10G/datafile
total 0
這個特性曾經一度讓人們歡呼雀躍。
8.小結
Oracle的OMF特性很少被大規模的應用。原因很多,個人認為OMF雖然帶來了操作上的些許便利,但是它隱藏了一些必要細節,同時表空間名字與資料檔名字很難快速建立起對應關係,為後期的管理帶來了極大的不便。大家可以在實際環境酌情使用這項技術。
Good luck.
secooler
10.07.14
-- The End --
1.確認系統是否啟用OMF特性
Oracle資料庫是否啟用OMF特性可以透過檢視DB_CREATE_FILE_DEST引數來獲得。
當DB_CREATE_FILE_DEST引數值為空時表示未啟用OMF功能。
sys@ora10g> show parameter db_create_file_dest
NAME TYPE VALUE
-------------------- -------------------- -------------------
db_create_file_dest string
2.開啟OMF特性
透過修改資料庫引數使其生效。方法很多,按照個人喜好進行調整(pfile調整方法,alter system調整引數)。
sys@ora10g> alter system set db_create_file_dest='/oracle/oradata';
System altered.
sys@ora10g> show parameter db_create_file_dest
NAME TYPE VALUE
--------------------- -------------------- ------------------
db_create_file_dest string /oracle/oradata
3.使用OMF特性建立表空間
sys@ora10g> create tablespace tbs_secooler;
Tablespace created.
4.資料檔案存放位置
此時Oracle會在/oracle/oradata目錄下以資料庫例項的大寫名字(這裡是ORA10G)建立一個目錄,表空間對應的資料檔案會存放在datafile目錄下。
sys@ora10g> !ls -l /oracle/oradata/ORA10G/datafile
total 102512
-rw-r----- 1 oracle oinstall 104865792 Jul 15 05:59 o1_mf_tbs_seco_63x8xzvw_.dbf
5.表空間的預設屬性
sys@ora10g> select dbms_metadata.get_ddl('TABLESPACE','TBS_SECOOLER') from dual;
DBMS_METADATA.GET_DDL('TABLESPACE','TBS_SECOOLER')
---------------------------------------------------------------------
CREATE TABLESPACE "TBS_SECOOLER" DATAFILE
'/oracle/oradata/ORA10G/datafile/o1_mf_tbs_seco_63x8xzvw_.dbf' SIZE 104857600
AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
可見,透過OMF方式建立的表空間預設是100M大小,並且是自動擴充套件的。
6.新增資料檔案
可以簡單的透過下面的命令為表空間tbs_secooler新增一個資料檔案
sys@ora10g> alter tablespace tbs_secooler add datafile;
Tablespace altered.
sys@ora10g> select dbms_metadata.get_ddl('TABLESPACE','TBS_SECOOLER') from dual;
DBMS_METADATA.GET_DDL('TABLESPACE','TBS_SECOOLER')
---------------------------------------------------------------------
CREATE TABLESPACE "TBS_SECOOLER" DATAFILE
'/oracle/oradata/ORA10G/datafile/o1_mf_tbs_seco_63x8xzvw_.dbf' SIZE 104857600
AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M,
'/oracle/oradata/ORA10G/datafile/o1_mf_tbs_seco_63x9scb5_.dbf' SIZE 104857600
AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
sys@ora10g> !ls -l /oracle/oradata/ORA10G/datafile
total 205024
-rw-r----- 1 oracle oinstall 104865792 Jul 15 05:59 o1_mf_tbs_seco_63x8xzvw_.dbf
-rw-r----- 1 oracle oinstall 104865792 Jul 15 06:14 o1_mf_tbs_seco_63x9scb5_.dbf
7.刪除表空間資料檔案會隨之刪除
sys@ora10g> drop tablespace tbs_secooler;
Tablespace dropped.
sys@ora10g> !ls -l /oracle/oradata/ORA10G/datafile
total 0
這個特性曾經一度讓人們歡呼雀躍。
8.小結
Oracle的OMF特性很少被大規模的應用。原因很多,個人認為OMF雖然帶來了操作上的些許便利,但是它隱藏了一些必要細節,同時表空間名字與資料檔名字很難快速建立起對應關係,為後期的管理帶來了極大的不便。大家可以在實際環境酌情使用這項技術。
Good luck.
secooler
10.07.14
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29618264/viewspace-2155060/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle OMF的使用Oracle
- 4.3.4.1 在不使用Oracle OMF的情況下建立CDBOracle
- 4.3.4.2 使用OMF 件建立CDB:示例
- oracle 19c建立非OMF檔案命名格式的PDBOracle
- 2.5.8 指定OMF方式建立資料庫資料庫
- 用OMF來簡化資料庫管理(轉)資料庫
- ORACLE RAC ASM資料檔案遷移OMF檔案報錯ORA-01276解決OracleASM
- 非OMF管理 自動新增資料檔案add_datafiles.sh
- OMF管理自動新增資料檔案指令碼add_datafile.sh指令碼
- [重慶思莊每日技術分享]-ORACLE DG物理備庫使用別名資料檔案改變路徑到OMF路徑Oracle
- Oracle的特性分頁Oracle
- Oracle特性總結Oracle
- Oracle IO校準特性Oracle
- Oracle 12c新特性--ASMFD(ASM Filter Driver)特性OracleASMFilter
- Oracle中最容易被忽略的那些實用特性Oracle
- Oracle merge 與 PG新特性 UPSERTOracle
- Oracle時間資訊特性(轉)Oracle
- oracle 10G特性之awrOracle 10g
- Oracle 12C新特性-History命令Oracle
- 2.8.1.3 Oracle特性資料庫服務Oracle資料庫
- Oracle 12C新特性In-MemoryOracle
- Oracle 12c 兩個新特性Oracle
- 1 Oracle Database 19c 新特性OracleDatabase
- Oracle 18c新特性詳解 - 表和表空間相關的新特性Oracle
- Oracle 21c新特性預覽與日常管理相關的幾個新特性Oracle
- 新特性:/dev/shm對Oracle 11g的影響devOracle
- Kubernetes中使用Traefik的sticky特性
- Oracle12C新特性_DDL日誌Oracle
- Oracle 20C 多租戶_新特性Oracle
- LightDB 23.1相容Oracle新特性支援Oracle
- Oracle的DBMS_SCN修正以及SCN的auto-rollover新特性Oracle
- Oracle 20c 的 In-Memory 新特性 Spatial 和 Text 支援Oracle
- LightDB/postgresql內建特性之訪問oracle之oracle_fdw介紹SQLOracle
- WebView的基本使用及相關特性WebView
- Fish Shell 的使用特性和優勢
- oracle18c資料庫特性說明Oracle資料庫
- Oracle 12.2 新特性: Online PDB relocate (PDB hot move)Oracle
- oracle 19C新特性——混合分割槽表Oracle