詳解Oracle資料庫表空間設計--ASM/BFT/OMF綜合使用

2019-10-11     波波說運維

概述

為滿足海量數據的高性能、易管理性等綜合需求,很多項目在表空間設計方面,基本都會綜合採用ASM、OMF和大表空間技術,下面分別介紹一下這幾個概念。


1、ASM

ASM是Oracle 10g R2中為了簡化Oracle資料庫的管理而推出來的一項新功能,這是Oracle自己提供的卷管理器,主要用於替代作業系統所提供的LVM,它不僅支持單實例,同時對RAC的支持也是非常好。ASM可以自動管理磁碟組並提供有效的數據冗餘功能。

ASM它提供了以平台無關的文件系統、邏輯卷管理以及軟RAID服務。ASM可以支持條帶化和磁碟鏡像,從而實現了在資料庫被加載的情況下添加或移除磁碟以及自動平衡I/O以刪除「熱點」。它還支持直接和異步的I/O並使用Oracle9i中引入的Oracle數據管理器API(簡化的I/O系統調用接口)。

RAC環境下的ASM結構

ASM對DBA有許多好處,使用ASM可以避免:

  • I/O性能優化
  • 數據文件移動和重新組織
  • 文件名管理
  • 邏輯卷管理
  • 文件系統管理
  • 集群文件系統管理
  • 裸設備管理

資料庫實例與ASM實例的交互

使用ASM可以顯著減少:

  • 邏輯單元號(LUN)管理,邏輯單元數量較少,大小較大
  • 資料庫管理員對系統管理員的依賴性
  • 手動執行任務時可能發生的錯誤

2、BFT

在Oracle中用戶可以創建大文件表空間。這樣Oracle資料庫使用的表空間可以由一個單一的大文件構成,而不是若干個小數據文件。這使Oracle可以發揮64位系統的能力,創建、管理超大的文件。在64位系統中,Oracle資料庫的存儲能力被擴展到了8 EB(1EB =1024PB,1PB = 1024TB,1TB=1024GB)。

當 資料庫文件由Oracle管理,且使用大文件表空間時,數據文件對用戶完全透明。換句話說,用戶只須針對表空間執行管理操作,而無須關心處於底層的數據文件。使用大文件表空間,使表空間成為磁碟空間管理,備份,和恢復等操作的主要對象。使用大文件表空間,並與由Oracle管理資料庫文件技術以及自動存儲管理技術相結合,就不再需要管理員手工創建新的數據文件並維護眾多資料庫文件,因此簡化了資料庫文件管理工作。

數 據庫默認創建的是小文件表空間,即Oracle中傳統的表空間類型。資料庫中 SYSTEM 和 SYSAUX 表空間在創建時總是使用傳統類型只有本地管理的,且段空間自動管理的表空間才能使用大文件表空間。 但是有兩個例外:本地管理的撤銷表空間和臨時表空間,即使其段為手工管理,也可以使用大文件表空間。一個Oracle資料庫可以同時包含大文件/小文件表空間。SQL語句執行時無需考慮表空間的類型,除非語句中顯式地引用了數據文件名。

管理員可以創建一組臨時表空間,用戶在需要時可以利用組內各個表空間提供的臨時空間。管理員還可以指定表空間組為資料庫默認的臨時表空間。當用戶需要大量臨時空間進行排序操作時,就可以利用大文件表空間及表空間組。

使用大文件表空間的優勢

使用大文件表空間(bigfile tablespace)可以顯著地增強Oracle資料庫的存儲能力。一個小文件表空間(smallfile tablespace)最多可以包含1024個數據文件,而 一個大文件表空間中只包含一個文件,這個數據文件的最大容量是小數據文件的1024倍。這樣看來,大文件表空間和小文件表空間的最大容量是相同的。但是由 於每個資料庫最多使用64K個數據文件,因此使用大文件表空間時資料庫中表空間的極限個數是使用小文件表空間時的1024倍,使用大文件表空間時的總數據 庫容量比使用小文件表空間時高出三個數量級。換言之,當一個Oracle資料庫使用大文件表空間,且使用最大的數據塊容量時(32K),其總容量可以達到 8EB。

在超大型資料庫中使用大文件表空間減少了數據文件的數量,因此也簡化了對數據文件的管理工作。由於數據文件的減少,SGA中關於數據文件的信息,以及控制文件(control file)的容量也得以減小。

由於數據文件對用戶透明,由此簡化了資料庫管理工作。

使用大文件表空間時需要考慮的因素:

大文件表空間(bigfile tablespace)應該和自動存儲管理(Automatic Storage Management)或其他邏輯卷管理工具(logical volume manager)配合使用,這些工具應該能夠支持動態擴展邏輯卷,也能支持striping(數據跨磁碟分布)或RAID。

應該避免在不支持striping的系統上使用大文件表空間,因為這將不利於並行執行(parallel execution)及 RMAN 的並行備份(backup parallelization)。

當表空間正在使用的磁碟組(disk group)可能沒有足夠的空間,且擴展表空間的唯一辦法是向另一個磁碟組加入數據文件時,應避免使用大文件表空間。

不建議在不支持大文件的平台上使用大文件表空間,這會限制表空間(tablespace)的容量。參考相關的作業系統文檔了解其支持的最大文件容量。

如果使用大文件表空間替代傳統的表空間,資料庫開啟(open),checkpoints,以及 DBWR 進程的性能會得到提高。但是增大數據文件(datafile)容量可能會增加備份與恢復的時間。

大文件表空間從某種角度來說提高了 Oracle 在 VLDB 上的管理能力。只有自動段空間管理的 LMT (Locally Managed Tablespaces ) 支持 BIGFILE 表空間。 大文件表空間只能包含一個文件,但是文件可以達到 4G 個數據塊大小。


3、OMF

OMF,全稱是Oracle_Managed Files,即Oracle文件管理,使用OMF可以簡化管理員的管理工作,不用指定文件的名字、大小、路徑,其名字,大小,路徑由oracle 自動分配。在刪除不再使用的日誌、數據、控制文件時,OMF也可以自動刪除其對應的OS文件。

OMF支持下列文件的自動管理:

  • 表空間
  • 日誌文件(聯機)
  • 控制文件

前提條件:需要為這些類型文件設定相關參數。

OMF優缺點:

優點:可以自動化管理條件數據文件,操作簡潔,節約空間

缺點:減少了數據文件的可控性,作為一個DBA 在維護DB 時就應該規劃好數據文件存放的位置,命名規則和初始大小。

OMF並非10g/11g新技術,但通過與ASM、大表空間技術的結合,將極大的簡化了資料庫管理工作。


4、ASM\\BFT\\OMF綜合建議

傳統數據系統,尤其是在ORACLE RAC上部署的資料庫系統,採用的是經典的卷組和裸設備技術方案,這種方案將導致大量存儲空間的設計工作,例如各個表空間、數據文件大小、名稱以及相對應的卷組和裸設備的設計工作。在投入運行後,由於裸設備不能自動擴展,而數據規模不斷增長,會給後期運行維護帶來很大負擔。

4.1、建議

針對那些數據量龐大、表空間多的海量系統特點,為簡化管理,建議將ASM、OMF、BFT技術綜合使用。為使用OMF,建議對資料庫實例設置以下參數:

DB_CREATE_FILE_DEST='+DATA'

4.2、使用過程及效果評估

ASM、OMF、BFT技術綜合使用,有以下優點:

1)使表空間的創建和刪除腳本簡化,不需要指定具體的數據文件,如:

create bigfile tablespace TS_TAB_TRANSACTIONS datafile size 20G;

2)在刪除表空間時,對應的ASM數據文件會自動刪除,如:

drop tablespace TS_TAB_TRANSACTIONS including contents;

3)可直接對表空間自動擴容,不需要指定數據文件

alter tablespace TS_TAB_TRANSACTIONS resize 30G;

通過以上設計,將為海量系統的存儲空間設計和管理工作帶來極大便利,根本不需要去設計卷組、裸設備,也不用考慮每個裸設備應設計多大。


覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

文章來源: https://twgreatdaily.com/zh-hk/cGeJt20BMH2_cNUg6huq.html