官术网_书友最值得收藏!

3.1 為Oracle自動存儲管理(ASM)配置存儲空間

Grid Infrastructure包含ASM功能:管理用于Oracle數據庫文件的存儲空間。在早期版本(版本11.1.x 之前),ASM附帶為數據庫軟件的一部分,但從11.2.x 版本以后,它變成GI的一部分。GI是一組過程,運行為操作系統的一部分:在Windows上,服務用管理員權限運行,在Linux上,后臺過程用根權限運行。GI過程啟動一個ASM實例。在某些方面,ASM實例類似于所有數據庫管理員都很熟悉的關系數據庫管理系統(RDBMS)實例,但其目標完全不同:它管理設備,使其可用于RDBMS實例來存儲文件。這些設備必須在安裝GI之前,由系統管理員配置。

3.1.1 GI體系結構

GI由一組進程組成,所有進程都為防止失敗進行了保護。核心進程是High Availability Services 守護進程(OHASD)。它由操作系統保護。如果它失敗,操作系統就重啟動它。接著OHASD啟動并監控一組其他進程,這些進程則啟動并監控數據庫實例使用的資源。這些資源是ASM和數據庫偵聽器。

提示:

可以從數據庫主目錄或GI主目錄下運行數據庫偵聽器。最佳實踐方式是僅運行一個偵聽器(如果安裝了GI,就從GI主目錄下運行)。

GI維護一組資源,這組資源在它的控制下運行。這些資源可以包含如下一個或所有選項:

● 數據庫偵聽器

● 虛擬IP地址

● ASM實例(只有一個)

● ASM磁盤組

● 數據庫實例

● 第三方產品

注冊表在文件Oracle Local Registry(OLR)中。OLR的位置由與平臺相關的指針指定。在Linux上,該指針是文件/etc/Oracle/olr.loc。在Windows上,它是注冊鍵HKEY_LOCAL_MACHINE/SOFTWARE/Oracle/olr/olrconfig_loc。

資源在OLR中用crsctl實用工具注冊。這些注冊包括如何啟動和停止資源、應在哪個操作賬戶下運行、如果失敗該怎么辦的細節。GI守護進程使用這些信息管理資源。

crsctl實用工具也用于停止和啟動GI進程(包括OHASD),以及管理注冊的資源。另一個管理工具是srvctl實用程序。srvctl可以管理Oracle資源,但不能管理可以在GI控制下注冊、放置的任何第三方產品。在語法上,它比crsctl實用工具容易使用得多(且不容易出錯)。

考點:

GI進程和任何資源都可以用crsctl實用工具管理。srvctl實用工具只能管理Oracle資源,不能管理GI或第三方資源。

3.1.2 ASM體系結構

ASM是一個邏輯卷管理器(LVM),可用于配置帶區的卷和鏡像的卷,來存儲Oracle 數據庫文件。這些卷稱為磁盤組。磁盤組不使用操作系統可見的文件系統進行格式化;它們只能用于Oracle數據庫文件,這些文件只能用Oracle產品和實用工具來管理。

為理解ASM文件和Oracle數據庫文件之間的關系,可研究如圖3-1所示的實體-關系圖。

圖3-1 ASM存儲模型

ASM文件位于磁盤組上,由一個或多個ASM磁盤組成。ASM磁盤格式化為分配單元(AU)。AU分組為文件區,一個文件由一個或多個文件區組成。實際上,ASM文件和ASM磁盤之間是多對多關系。一個文件可以分布在許多磁盤上,一個磁盤可以包含許多文件的不同部分。優秀的關系工程師不允許多對多關系,該關系以兩種方式解析:通過磁盤組實體解析,通過文件區和AU路徑解析。任何一個文件區都在一個ASM磁盤上包含連續的AU。ASM文件用其區域地圖來定義,區域地圖就是一個指針列表,這些指針指向其文件區的物理位置。

ASM由ASM實例管理。ASM實例包含內存組件和后臺進程;它是一個輕型結構,管理ASM環境。它跟蹤定義文件位置的區域地圖,根據RDBMS實例使用文件的要求,在文件中添加或刪除文件區域。

ASM實例有一個系統全局區(System Global Area, SGA),它接受會話的方式與RDBMS實例相同,但它只能處于非裝載模式。ASM實例從來不會裝載控制文件,它沒有數據字典。因此,登錄它的唯一方式是使用操作系統驗證或密碼文件驗證。

ASM引導程序執行如下操作:

(1) 操作系統啟動GI進程。

(2) GI啟動ASM實例。

(3) ASM實例定位ASM磁盤設備。

(4) ASM實例用GI裝載磁盤組,注冊它們。

(5) RDBMS實例啟動。

(6) RDBMS實例需要一個ASM磁盤組上的文件。

(7) RDBMS從GI中請求ASM實例地址。

(8) RDBMS實例登錄到ASM實例上,請求訪問ASM文件。

(9) ASM實例返回文件的區域地圖。

(10) RDBMS實例打開文件。

總之,打開ASM文件時,GI會建立RDBMS和ASM實例之間的連接,接著ASM實例建立RDBMS實例和文件之間的連接。

考點:

數據不通過ASM實例傳遞。所有的I/O都在RDBMS實例和文件之間進行。ASM實例僅是一個控制結構。

ASM磁盤組只能存儲數據庫文件,但它定義了許多數據庫文件,包括如下文件類型:

● 控制文件

● 數據文件

● 臨時文件

● 聯機日志文件

● 歸檔日志文件

● 服務器參數文件

● 密碼文件

● RMAN備份

● Data Pump轉儲文件

下面的文件類型不能存儲在ASM磁盤組上:

● Oracle Home

● 跟蹤文件或警報日志

● pfile初始化文件

● 用戶托管的備份

3.1.3 ASM磁盤

ASM磁盤這個術語有點誤導作用,因為該設備并不是實際的磁盤。

● 直接關聯的存儲(DAS)設備的分區

● 存儲區網絡(SAN)設備

● 與網絡關聯的存儲(NAS)設備

DAS設備是物理關聯到服務器上的磁盤。這一般意味著SCSI磁盤或某些變體。在早期版本中,可以給ASM提供完整的原始磁盤用作ASM磁盤,但現在很少建議這么做了。而是要求磁盤有一個分區表,甚至在磁盤上只定義了一個覆蓋整個磁盤的分區的情況下也要有一個分區表。接著把分區提供給ASM。

SAN設備通常是帶區(也可能是鏡像的)的卷,由一個存儲數組管理,通過光導纖維連接到服務器上。它們提供給ASM,作為邏輯單元號(LUN)。這些卷的尺寸沒有實際的限制。用合適的RAID算法給卷分區會提高性能。鏡像可以在SAN級別上啟用,或用ASM管理。

NAS設備一般是iSCSI卷或NFS文件。iSCSI設備通過iSCSI目標機器導出到網絡上,由iSCSI啟動器裝載到數據庫服務器上。在從NFS服務器導出的NFS卷上,NFS文件是填充了0的大文件,由數據庫服務器裝載。當然,NAS設備的底層存儲空間可以是RAID設備, NAS層在ASM中隱藏了它。數據庫服務器和存儲服務器之間的局域網連接應是高速的,專用于這個功能。可以建議使用多路徑,以增加帶寬,提高對抗網絡失敗的彈性。

DAS、SAN或iSCSI設備(不應使用任何文件系統進行格式化)用設備驅動程序來標識。NFS文件用完全限定的文件名來標識。無論使用什么方式,ASM實例都需要確定應使用什么設備。ASM實例通過一個參數文件來控制,其方式與RDBMS實例相同。一個重要的參數是ASM_DISKSTRING,它是一個以逗號分隔的值列表(可以包含通配符),用于標識ASM磁盤。設備的命名方式,以及包含在ASM_DISKSTRING中的值,都與平臺相關。表3-1所示是一些常見操作系統的默認值:

表3-1 常見操作系統的默認值

一定要注意,默認值可能定位到不適合ASM使用的磁盤。此時,只有設置參數,才能找到合適的設備。

3.1.4 創建ASM磁盤

磁盤的創建由系統管理員完成。之后,每個磁盤設備都可以通過設備驅動程序來訪問。設備驅動程序由操作系統在啟動時創建。在啟動過程中,操作系統會掃描各種I/O總線,并為每個找到的設備創建設備驅動程序。因為這是一個動態進程,所以在每次啟動時,都可能為每個設備指定不同的設備驅動程序。而且,在創建后,設備驅動程序就由根所有。

為了使設備可由ASM使用,必須使其名字在系統多次重啟動之間是不變的,且Oracle進程可以讀寫它。在Linux上,這有3種實現技術:

ASMLib核心庫:根據Linux許可,這個庫可用于一些Linux發布版本。

ASM過濾器驅動程序:這個功能從12.1.0.2版本開始提供,可以替代ASMLib。它添加的功能禁止任何非Oracle進程寫入ASM磁盤。

udev功能:這個功能可運行系統管理員編寫的腳本,以標識設備,設置合適的擁有權和許可。

為了在Windows上配置設備,Oracle提供了asmtool.exe實用工具。其他操作系統也有自己的、與平臺相關的技術,來管理設備的擁有權和名字的一致性。

如果把NFS文件用作ASM磁盤,就使用下面的命令創建它們,該命令創建了一個1TB的文件,并允許訪問Oracle擁有者:

        dd if=/dev/zero of=/asm/disk1 bs=1048576 count=1048576
        chown oracle:dba /asm/disk1
        chmod 660 /asm/disk1

創建ASM磁盤的細節超出了OCA考試的范圍,還有許多平臺變體。

主站蜘蛛池模板: 宁夏| 景宁| 富裕县| 永丰县| 天柱县| 刚察县| 巴彦县| 鄄城县| 平顶山市| 玛沁县| 临武县| 望都县| 江源县| 玉环县| 沂水县| 龙门县| 凤冈县| 汨罗市| 巴南区| 甘洛县| 治县。| 阳春市| 高邮市| 佛教| 白朗县| 定州市| 八宿县| 遂溪县| 新泰市| 阳城县| 屏东市| 礼泉县| 陈巴尔虎旗| 垣曲县| 蓬安县| 东台市| 延长县| 香港| 乌审旗| 雷州市| 丹阳市|