Oracle 儲存型別
Oracle 儲存型別
Oracle 資料庫支援的主要儲存型別包括:
1) 普通檔案系統
2) 叢集檔案系統
3) 裸裝置
4) 自動儲存管理 (ASM)
============
一 檔案系統
============
1 檔案系統:
作業系統用於明確儲存裝置(常見的是磁碟,也有基於 NAND Flash 的固態硬碟)或分割槽上的檔案的方法和資料結構;
作業系統中負責管理和儲存檔案資訊的軟體機構稱為檔案管理系統,簡稱檔案系統。即在儲存裝置上組織檔案的方法。
從系統角度來看, 檔案系統是對檔案儲存裝置的空間進行組織和分配,負責檔案儲存並對存入的檔案進行保護和檢索的系統 。
具體地說,它 負責為使用者建立檔案,存入、讀出、修改、轉儲檔案,控制檔案的存取,當使用者不再使用時撤銷檔案 等。
2 檔案系統由三部分組成:
1) 檔案系統的介面
2) 對物件操縱和管理的軟體集合物件
3) 對物件操縱和管理的軟體集合屬性
3 檔案系統分類:
1 FAT:FAT16;FAT32
2 NTFS:NTFS4.0;NTFS5.0
3 CDFS:CD-R;CD-W
4 exFAT
5 RAW
6 EXT:Ext2;Ext3;Ext4
7 Btrfs
8 ZFS
9 HFS
10 HFS+
11 ReiserFS
12 JFS
13 VMFS
14 XFS
15 UFS
16 VXFS
17 ReFS
================
二 叢集檔案系統
================
1 叢集檔案系統是指 :
執行在多臺計算機之上,之間透過某種方式相互通訊從 , 而將叢集內所有儲存空間資源整合、虛擬化並對外提供檔案訪問服務的檔案系統。
其與 NTFS 、 EXT 等本地檔案系統的目的不同,前者是為了擴充套件性,後者執行在單機環境,純粹管理塊和檔案之間的對映以及檔案屬性。
2 叢集檔案系統分為多類
按照對儲存空間的訪問方式 :
1) 可分為共享儲存型叢集檔案系統
2) 分散式叢集檔案系統
前者是多臺計算機識別到同樣的儲存空間,並相互協調共同管理其上的檔案,又被稱為共享檔案系統;
後者則是每臺計算機各自提供自己的儲存空間,並各自協調管理所有計算機節點中的檔案。
Veritas 的 VxFS/VCS ,昆騰 Stornext ,中科藍鯨 BWFS , EMC 的 MPFS ,屬於共享儲存型叢集檔案系統。
而 HDFS 、 Gluster 、 Ceph 、 Swift 等網際網路常用的大規模叢集檔案系統無一例外都屬於分散式叢集檔案系統。
分散式叢集檔案系統可擴充套件性更強,目前已知最大可擴充套件至 10K 節點。
按照後設資料的管理方式 :
1) 可分為對稱式叢集檔案系統
2) 非對稱式叢集檔案系統。
前者每個節點的角色均等,共同管理檔案後設資料,節點間透過高速網路進行資訊同步和互斥鎖等操作,典型代表是 Veritas 的 VCS 。
而非對稱式叢集檔案系統中,有專門的一個或者多個節點負責管理後設資料,其他節點需要頻繁與後設資料節點通訊以獲取最新的後設資料比如目錄列表檔案屬性等等,後者典型代表比如 HDFS 、 GFS 、 BWFS 、 Stornext 等。
對於叢集檔案系統,其可以是分散式 + 對稱式、分散式 + 非對稱式、共享式 + 對稱式、共享式 + 非對稱式,兩兩任意組合。
對於分散式叢集,其對檔案後設資料的管理方式又可以分為 :
1)single path image
2)single filesystem image
按照檔案訪問方式 :
1) 可分為序列訪問式
2) 並行訪問式 ( 俗稱為並行檔案系統 )
序列訪問是指客戶端只能從叢集中的某個節點來訪問叢集內的檔案資源,而並行訪問則是指客戶端可以直接從叢集中任意一個或者多個節點同時收發資料,做到並行資料存取,加快速度。
HDFS 、 GFS 、 pNFS 等叢集檔案系統,都支援並行訪問,需要安裝專用客戶端,傳統的 NFS/CIFS 客戶端不支援並行訪問。
==========
三 裸裝置
==========
1 裸裝置 (raw device):
也叫裸分割槽(原始分割槽),是一種 沒有經過格式化 ,不被 Unix 透過檔案系統來讀取的特殊塊裝置檔案。
由應用程式負責對它進行讀寫操作。 不經過檔案系統的緩衝 。它是不被作業系統直接管理的裝置。
這種裝置少了作業系統這一層, I/O 效率更高。不少資料庫都能透過使用裸裝置作為儲存介質來提高 I/O 效率。
2 裸裝置和檔案系統效能對比:
1) 聯機交易操作 ( 併發使用者多,事務小 ) :
刪除,插入,查詢,更新 操作在 裸裝置 上執行的 響應時間 ,比在檔案系統執行的響應實現 更快 ;
2) 全表掃描操作 ( 併發使用者少,事務大 ) :
第一次進行查詢: 裸裝置響應時間 低於 檔案系統
第二次進行查詢: 裸裝置響應時間 高於 檔案系統
充分快取後查詢: 裸裝置響應時間 高於 檔案系統
3)
順序讀:檔案系統快
順序寫:裸裝置快
隨機讀:裸裝置快
隨機寫:裸裝置快
3 檔案系統和裸裝置的原理分析:
基於 檔案系統 的資料庫操作,對資料的 I/O 操作需要經過作業系統的記憶體緩衝區,同時也要儲存在資料庫的 SGA 區,這樣不僅在記憶體儲存兩份資料,也導致了訪問開銷的增加;
基於 裸裝置 的資料庫操作, I/O 操作不需要儲存在作業系統的記憶體緩衝區,同時也支援非同步 I/O ,支援更大批次的讀寫操作。
因此裸裝置總體上 I/O 操作開銷小,而效能更佳。
但是在 大批次資料進行順序讀時 ,也就是 資料倉儲等系統進行大型統計操作 的情況下,特別是進行 全表掃描 時,由於 Oracle Buffer Cache 採用 LRU 演算法,這些資料儲存在 LRU 列表的尾部,比按索引訪問的資料會更快的淘汰出 Buffer Cache 。
如果採用 裸裝置 技術,這些資料的重複訪問將很可能導致磁碟 I/O 操作。
如果採用 檔案系統技術 ,這些資料雖然不在 Oracle 記憶體中,但只要作業系統記憶體足夠,這些資料還儲存在作業系統記憶體中。
因此,檔案系統情況下,大量統計運算操作,特別是重複資料的訪問反而會更快些。
====================
四 自動儲存管理 (ASM)
====================
1 ASM 將傳統檔案系統和裸裝置的優點儘量結合起來。
ASM 不需要在作業系統記憶體進行快取,因此 ASM 也是一種 裸裝置 ,具有與裸裝置相當,甚至更優勢的效能。
而 ASM 的 自動管理特性 又大大降低了裸裝置方式的管理負擔,特別是 11G 的 ASM 叢集管理系統 (ACFS), 使使用者訪問和管理 ASM 更加方便和快捷。
2 Oracle 即將不支援裸裝置
所謂部分不支援裸裝置是指不能透過 DBCA 工具將資料庫建立在裸裝置上,而只能透過命令列方式進行。
11gR2 不能將 OCR 和 Voting Disk 建立在裸裝置上。
3 ASM 和裸裝置效能對比:
在 並行 模式下, Oracle ASM 模式速度略 快 ,而在 單執行緒 模式下, 裸裝置更快 些。
也就是說在 OLTP 系統中, 裸裝置略快 些,而在 大批次資料 訪問情況下,由於 Oracle ASM 更容易將資料 均勻分佈 到多個儲存單元中,所有表現更好。
歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-1770469/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle Lob型別儲存淺析Oracle型別
- Oracle基本資料型別儲存格式淺析——RAW型別Oracle資料型別
- oracle資料型別與儲存結構Oracle資料型別
- Oracle基本資料型別儲存格式淺析(五)——RAW型別Oracle資料型別
- Oracle基本資料型別儲存格式淺析(四)——ROWID型別Oracle資料型別
- Oracle基本資料型別儲存格式淺析(三)——日期型別(一)Oracle資料型別
- Oracle基本資料型別儲存格式淺析(三)——日期型別(二)Oracle資料型別
- Oracle基本資料型別儲存格式淺析(三)——日期型別(三)Oracle資料型別
- Oracle基本資料型別儲存格式淺析(三)——日期型別(四)Oracle資料型別
- Oracle基本資料型別儲存格式淺析[zt]Oracle資料型別
- 字元型別的字元儲存與位元組儲存字元型別
- 建立NFS型別的儲存NFS型別
- Oracle基本資料型別儲存格式淺析(二)——數字型別Oracle資料型別
- MYSQL 資料型別儲存-數值型MySQL 資料型別
- Block型別及儲存區域BloC型別
- oracle中dump函式及oracle NUMBER型別內部儲存機制Oracle函式型別
- oracle資料型別data type與儲存空間大小(一)Oracle資料型別
- oracle資料型別data type與儲存空間大小(二)Oracle資料型別
- JavaScript中的資料型別-儲存差別JavaScript資料型別
- mysql儲存日期使用什麼型別MySql型別
- SAP EWM - 儲存型別 - 入庫控制型別
- redis-4.資料儲存型別Redis型別
- MYSQL-資料型別儲存-DATEMySql資料型別
- PHP memcached 各種資料型別儲存PHP資料型別
- 【精】C語言之變數儲存型別C語言變數型別
- 轉摘_儲存型別與連線方式型別
- 【MySQL】時間型別儲存格式選擇MySql型別
- java呼叫oracle儲存過程的自定義型別(可變陣列)JavaOracle儲存過程型別陣列
- C#引用型別和值型別在堆、棧中的儲存C#型別
- Golang的值型別和引用型別的範圍、儲存區域、區別Golang型別
- 作用域、連結屬性和儲存型別型別
- 使用SequenceFile儲存BytesWritable型別時要注意型別
- [20191219]oracle timestamp資料型別的儲存.txtOracle資料型別
- [20190930]oracle number型別儲存轉化指令碼.txtOracle型別指令碼
- [20191013]oracle number型別儲存轉化指令碼.txtOracle型別指令碼
- InnoDB儲存引擎鎖機制(二、 鎖的型別)儲存引擎型別
- 關於MYSQL中FLOAT和DOUBLE型別的儲存MySql型別
- 如何檢視mysql中表的儲存引擎型別薦MySql儲存引擎型別