版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、DM8 共享存儲(chǔ)集群IDM8 共享存儲(chǔ)集群II前言概述本文檔主要介紹 DM 共享存儲(chǔ)集群的系統(tǒng)特性、基本概念、實(shí)現(xiàn)原理、主要功能,以及如何搭建 DM 共享存儲(chǔ)集群并使用等。讀者對(duì)象本文檔主要適用于 DM 數(shù)據(jù)庫(kù)的:開(kāi)發(fā)工程師測(cè)試工程師技術(shù)支持工程師數(shù)據(jù)庫(kù)管理員通用約定在本文檔中可能出現(xiàn)下列標(biāo)志,它們所代表的含義如下:表 0.1 標(biāo)志含義標(biāo)志說(shuō)明表示可能導(dǎo)致系統(tǒng)損壞、數(shù)據(jù)丟失或不可預(yù)知的結(jié)果。表示可能導(dǎo)致性能降低、服務(wù)不可用??梢詭椭鉀Q某個(gè)問(wèn)題或節(jié)省您的時(shí)間。表示正文的附加信息,是對(duì)正文的強(qiáng)調(diào)和補(bǔ)充。DM8 共享存儲(chǔ)集群在本文檔中可能出現(xiàn)下列格式,它們所代表的含義如下:表 0.2 格式含義格
2、式說(shuō)明宋體表示正文。Courier new表示代碼或者屏幕顯示內(nèi)容。粗體表示命令行中的關(guān)鍵字(命令中保持不變、必須照輸?shù)牟糠郑┗蛘哒闹袕?qiáng)調(diào)的內(nèi)容。標(biāo)題、警告、注意、小竅門(mén)、說(shuō)明等內(nèi)容均采用粗體。語(yǔ)法符號(hào)中,表示一個(gè)語(yǔ)法對(duì)象。:=語(yǔ)法符號(hào)中,表示定義符,用來(lái)定義一個(gè)語(yǔ)法對(duì)象。定義符左邊為語(yǔ)法對(duì)象,右邊為相應(yīng)的語(yǔ)法描述。|語(yǔ)法符號(hào)中,表示或者符,限定的語(yǔ)法選項(xiàng)在實(shí)際語(yǔ)句中只能出現(xiàn)一個(gè)。 語(yǔ)法符號(hào)中,大括號(hào)內(nèi)的語(yǔ)法選項(xiàng)在實(shí)際的語(yǔ)句中可以出現(xiàn) 0N 次(N 為大于 0 的自然數(shù)),但是大括號(hào)本身不能出現(xiàn)在語(yǔ)句中。 語(yǔ)法符號(hào)中,中括號(hào)內(nèi)的語(yǔ)法選項(xiàng)在實(shí)際的語(yǔ)句中可以出現(xiàn) 01 次,但是中括號(hào)本身不能出現(xiàn)
3、在語(yǔ)句中。關(guān)鍵字關(guān)鍵字在 DM_SQL 語(yǔ)言中具有特殊意義,在 SQL 語(yǔ)法描述中,關(guān)鍵字以大寫(xiě)形式出現(xiàn)。但在實(shí)際書(shū)寫(xiě) SQL 語(yǔ)句時(shí),關(guān)鍵字既可以大寫(xiě)也可以小寫(xiě)。訪問(wèn)相關(guān)文檔如果您安裝了 DM 數(shù)據(jù)庫(kù),可在安裝目錄的“doc”子目錄中找到 DM 數(shù)據(jù)庫(kù)的各種手冊(cè)與技術(shù)叢書(shū)。 DM8 共享存儲(chǔ)集群 PAGE * ROMAN VI目錄 HYPERLINK l _bookmark0 引言1 HYPERLINK l _bookmark1 DMDSC 概述2 HYPERLINK l _bookmark2 系統(tǒng)特性4 HYPERLINK l _bookmark3 基本概念5 HYPERLINK l _b
4、ookmark4 使用說(shuō)明8 HYPERLINK l _bookmark5 DMDSC 使用的環(huán)境10 HYPERLINK l _bookmark6 DMDSC 實(shí)現(xiàn)原理11 HYPERLINK l _bookmark7 事務(wù)管理11 HYPERLINK l _bookmark8 封鎖管理13 HYPERLINK l _bookmark9 閂管理13 HYPERLINK l _bookmark10 緩存交換14 HYPERLINK l _bookmark11 重做日志管理20 HYPERLINK l _bookmark12 回滾記錄管理22 HYPERLINK l _bookmark13 DM
5、CSS 介紹23 HYPERLINK l _bookmark14 啟動(dòng)命令23 HYPERLINK l _bookmark15 心跳信息24 HYPERLINK l _bookmark16 選舉DMCSS 控制節(jié)點(diǎn)24 HYPERLINK l _bookmark17 選取監(jiān)控對(duì)象控制節(jié)點(diǎn)24 HYPERLINK l _bookmark18 啟動(dòng)流程管理24 HYPERLINK l _bookmark19 狀態(tài)檢測(cè)24 HYPERLINK l _bookmark20 故障處理25 HYPERLINK l _bookmark21 節(jié)點(diǎn)重加入25 HYPERLINK l _bookmark22 集群
6、指令26 HYPERLINK l _bookmark23 狀態(tài)查看26 HYPERLINK l _bookmark24 主普通節(jié)點(diǎn)顯示信息差異28 HYPERLINK l _bookmark25 配置VIP28 HYPERLINK l _bookmark26 注意事項(xiàng)29 HYPERLINK l _bookmark27 DMASM 介紹30 HYPERLINK l _bookmark28 DMASM 概述30 HYPERLINK l _bookmark29 DMASM 基本概念31 HYPERLINK l _bookmark30 DMASM 原理32 HYPERLINK l _bookmark
7、31 DMASM 技術(shù)指標(biāo)35 HYPERLINK l _bookmark32 DMASM 使用說(shuō)明36 HYPERLINK l _bookmark33 DMASMCMD37 HYPERLINK l _bookmark34 DMASMSVR40 HYPERLINK l _bookmark35 DMASMAPI41 HYPERLINK l _bookmark36 DMASMTOOL44 HYPERLINK l _bookmark37 DMDSC 啟動(dòng)、關(guān)閉流程50 HYPERLINK l _bookmark38 DMDSC 故障處理51 HYPERLINK l _bookmark39 DMDSC
8、 節(jié)點(diǎn)重加入53 HYPERLINK l _bookmark40 配置說(shuō)明54 HYPERLINK l _bookmark41 DMDCR_CFG.INI54 HYPERLINK l _bookmark42 DMDCR.INI58 HYPERLINK l _bookmark43 DMINIT.INI60 HYPERLINK l _bookmark44 MAL 系統(tǒng)配置文件(DMMAL.INI、DMASVRMAL.INI)63 HYPERLINK l _bookmark45 DM.INI64 HYPERLINK l _bookmark46 DMDSC 搭建67 HYPERLINK l _book
9、mark47 環(huán)境準(zhǔn)備67 HYPERLINK l _bookmark48 搭建 2 節(jié)點(diǎn)DMDSC(DMASM)67 HYPERLINK l _bookmark49 搭建 2 節(jié)點(diǎn)DMDSC(裸設(shè)備)74 HYPERLINK l _bookmark50 單節(jié)點(diǎn)搭建DMDSC 測(cè)試環(huán)境79 HYPERLINK l _bookmark51 故障自動(dòng)重連80 HYPERLINK l _bookmark52 配置服務(wù)名(DM_SVC.CONF)80 HYPERLINK l _bookmark53 體驗(yàn)故障自動(dòng)重連81 HYPERLINK l _bookmark54 動(dòng)態(tài)擴(kuò)展節(jié)點(diǎn)83 HYPERLIN
10、K l _bookmark55 動(dòng)態(tài)擴(kuò)展節(jié)點(diǎn)流程83 HYPERLINK l _bookmark56 監(jiān)控 DMDSC89 HYPERLINK l _bookmark57 DMCSSM 監(jiān)視器89 HYPERLINK l _bookmark58 動(dòng)態(tài)視圖95 HYPERLINK l _bookmark59 備份還原114 HYPERLINK l _bookmark60 DMDSC 和單節(jié)點(diǎn)差異114 HYPERLINK l _bookmark61 遠(yuǎn)程歸檔115 HYPERLINK l _bookmark62 DMDSC 備份集117 HYPERLINK l _bookmark63 DMDSC
11、 備份還原實(shí)例117 HYPERLINK l _bookmark64 使用說(shuō)明119 HYPERLINK l _bookmark65 DMDSC 使用說(shuō)明120 HYPERLINK l _bookmark66 統(tǒng)一組件版本120 HYPERLINK l _bookmark67 提升DMDSC 性能120 HYPERLINK l _bookmark68 心跳說(shuō)明121 HYPERLINK l _bookmark69 重新格式化DMASM121 HYPERLINK l _bookmark70 重新初始化DMDSC 庫(kù)122 HYPERLINK l _bookmark71 內(nèi)部網(wǎng)絡(luò)異常122 HYP
12、ERLINK l _bookmark72 創(chuàng)建DBLINK123 HYPERLINK l _bookmark73 節(jié)點(diǎn)硬件故障,如何啟動(dòng)DMDSC 集群125 HYPERLINK l _bookmark74 MOUNT/OPEN 操作125 HYPERLINK l _bookmark75 裸設(shè)備路徑變化125 HYPERLINK l _bookmark76 17附錄127 HYPERLINK l _bookmark77 DMASMAPI 接口127 HYPERLINK l _bookmark79 DMCSSM 接口153DM8 共享存儲(chǔ)集群 PAGE 77引言DM 共享存儲(chǔ)數(shù)據(jù)庫(kù)集群的英文全稱(chēng)
13、 DM Data Shared Cluster,簡(jiǎn)稱(chēng) DMDSC。DM 共享存儲(chǔ)數(shù)據(jù)庫(kù)集群,允許多個(gè)數(shù)據(jù)庫(kù)實(shí)例同時(shí)訪問(wèn)、操作同一數(shù)據(jù)庫(kù),具有高可用、高性能、負(fù)載均衡等特性。DMDSC 支持故障自動(dòng)切換和故障自動(dòng)重加入,某一個(gè)數(shù)據(jù)庫(kù)實(shí)例故障后,不會(huì)導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)無(wú)法提供。本文主要介紹 DMDSC 集群的功能、概念、實(shí)現(xiàn)原理,并舉例說(shuō)明搭建過(guò)程和管理方法。本手冊(cè)可以幫助用戶(hù):了解 DMDSC/DMCSS/DMASM 等集群相關(guān)概念了解 DMASM 分布式文件系統(tǒng)、DMDSC 集群,以及基于 DMASM 的 DMDSC 集群配置過(guò)程和應(yīng)用DMDSC 概述DMDSC 集群是一個(gè)多實(shí)例、單數(shù)據(jù)庫(kù)的系統(tǒng)。
14、多個(gè)數(shù)據(jù)庫(kù)實(shí)例可以同時(shí)訪問(wèn)、修改同一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)。用戶(hù)可以登錄集群中的任意一個(gè)數(shù)據(jù)庫(kù)實(shí)例,獲得完整的數(shù)據(jù)庫(kù)服務(wù)。數(shù)據(jù)文件、控制文件在集群系統(tǒng)中只有一份,不論有幾個(gè)節(jié)點(diǎn),這些節(jié)點(diǎn)都平等地使用這些文件。各個(gè)節(jié)點(diǎn)有自己獨(dú)立的聯(lián)機(jī)日志和歸檔日志。這些文件就保存在共享存儲(chǔ)上。DMDSC 集群得以實(shí)現(xiàn)的重要 基礎(chǔ)就是共享存儲(chǔ)。DM 支持的共享存儲(chǔ)有兩種:裸設(shè)備和DMASM。這兩種存儲(chǔ)的區(qū)別在于后者在前者的基礎(chǔ)上,部署并使用了 DMASM 文件系統(tǒng)。為了方便對(duì)裸設(shè)備上的磁盤(pán)或文件進(jìn)行管理,推薦用戶(hù)使用后者。DMDSC集群主要由數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)實(shí)例、共享存儲(chǔ)、本地存儲(chǔ)、通信網(wǎng)絡(luò)、以及集群控制軟件 DMCSS
15、組成。下面以 部署了 DMASM 的 DMDSC 集群為例,展示 DMDSC集群系統(tǒng)結(jié)構(gòu)(圖 2.1)。節(jié)點(diǎn)0節(jié)點(diǎn)1MAL本地存儲(chǔ)本地存儲(chǔ)MALtemp.dbfvoting diskdcr diskDBFLOG共享存儲(chǔ)dmcssdmasmsvrdmserverdm.inidmarch.inidmcssdmasmsvrdmserverCTLGroup datadmasm disk Ndmasm disk 2dmasm disk 1Group logdmasm disk Ndmasm disk 2dmasm disk 1圖 2.1 DMDSC 系統(tǒng)結(jié)構(gòu)圖數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)實(shí)例數(shù)據(jù)庫(kù)(Database)
16、是一個(gè)文件集合(包括數(shù)據(jù)文件、臨時(shí)文件、重做日志文件和控制文件等),保存在物理磁盤(pán)或文件系統(tǒng)中。數(shù)據(jù)庫(kù)實(shí)例就是一組操作系統(tǒng)進(jìn)程(或者是一個(gè)多線程的進(jìn)程)以及一些內(nèi)存。通過(guò)數(shù)據(jù)庫(kù)實(shí)例,可以操作數(shù)據(jù)庫(kù),一般情況下,我們?cè)L問(wèn)、修改數(shù)據(jù)庫(kù)都是通過(guò)數(shù)據(jù)庫(kù)實(shí)例來(lái)完成的。共享存儲(chǔ)DMDSC集群中,為了實(shí)現(xiàn)多個(gè)實(shí)例同時(shí)訪問(wèn)、修改數(shù)據(jù),要求將數(shù)據(jù)文件、控制文件、日志文件保存在共享存儲(chǔ)上。DMDSC 支持使用裸設(shè)備或 DMASM 文件系統(tǒng)作為共享存儲(chǔ)。配置 DMDSC 集群需要的 DCR、Voting disk 也必須保存在共享存儲(chǔ)上(目前僅支持裸設(shè)備存放 DCR 和 Voting disk)。本地存儲(chǔ)DMDSC
17、集群中,本地存儲(chǔ)用來(lái)保存配置文件(記錄數(shù)據(jù)庫(kù)實(shí)例配置信息的 dm.ini、dmarch.ini、dmmal.ini),本地歸檔日志、遠(yuǎn)程歸檔日志。通信網(wǎng)絡(luò)DMDSC集群中,網(wǎng)絡(luò)分為內(nèi)部網(wǎng)絡(luò)和公共網(wǎng)絡(luò)兩個(gè)部分。實(shí)際應(yīng)用中一般還存在服務(wù)器到共享存儲(chǔ)的網(wǎng)絡(luò)。內(nèi)部網(wǎng)絡(luò)用于數(shù)據(jù)庫(kù)實(shí)例之間交換信息和數(shù)據(jù),MAL 鏈路使用的就是內(nèi)部網(wǎng)絡(luò)。公共網(wǎng)絡(luò)用于對(duì)外提供數(shù)據(jù)庫(kù)服務(wù),用戶(hù)使用公共網(wǎng)絡(luò)地址登錄 DMDSC 集群,訪問(wèn)數(shù)據(jù)庫(kù)。集群控制集群控制是集群系統(tǒng)的重要組成部分。DMCSS 就是一款集群控制軟件,專(zhuān)門(mén)負(fù)責(zé)監(jiān)控集群中各個(gè)節(jié)點(diǎn)的運(yùn)行狀態(tài)。DMCSS 主要功能包括:管理集群的啟動(dòng)和關(guān)閉,控制節(jié)點(diǎn)故障處理,以及管
18、理節(jié)點(diǎn)重加入流程。系統(tǒng)特性DMDSC 的主要特點(diǎn)包括:高可用性只要集群中有一個(gè)活動(dòng)節(jié)點(diǎn),就能正常提供數(shù)據(jù)庫(kù)服務(wù)。高吞吐量多個(gè)節(jié)點(diǎn)同時(shí)提供數(shù)據(jù)庫(kù)服務(wù),有效提升集群的整體事務(wù)處理能力。負(fù)載均衡用戶(hù)的連接請(qǐng)求被平均分配到集群中的各個(gè)節(jié)點(diǎn),確保各個(gè)節(jié)點(diǎn)的負(fù)載大致平衡。高可用性DMDSC 集群提供了一種達(dá)夢(mèng)數(shù)據(jù)庫(kù)高可用解決方案。當(dāng)出現(xiàn)系統(tǒng)故障、硬件故障、或人為操作失誤時(shí),DMCSS 檢測(cè)故障、并自動(dòng)將故障節(jié)點(diǎn)踢出集群,保證數(shù)據(jù)庫(kù)服務(wù)的正常提供。故障節(jié)點(diǎn)的用戶(hù)連接會(huì)自動(dòng)切換到活動(dòng)節(jié)點(diǎn),這些連接上的未提交事務(wù)將被回滾,已提交事務(wù)不受影響;活動(dòng)節(jié)點(diǎn)的用戶(hù)連接不受影響,正在執(zhí)行的操作將被掛起一段時(shí)間,在故障處理
19、完成后,繼續(xù)執(zhí)行。當(dāng) DMCSS 檢測(cè)到故障節(jié)點(diǎn)恢復(fù)時(shí),自動(dòng)啟動(dòng)節(jié)點(diǎn)重加入流程, 將恢復(fù)的故障節(jié)點(diǎn)重新加入 DMDSC 集群,將集群恢復(fù)到正常的運(yùn)行狀態(tài)。因此,通過(guò)部署DMDSC 集群,可以在一定程度上避免由軟、硬件故障引起的非計(jì)劃停機(jī),減少這些意外給客戶(hù)帶來(lái)的損失。與同樣使用共享存儲(chǔ)的雙機(jī)熱備系統(tǒng)相比,DMDSC 具有更快的故障處理速度。雙機(jī)熱備系統(tǒng)故障切換時(shí),需要完整重做 Redo 日志,所有數(shù)據(jù)需要重新從磁盤(pán)加載;而 DMDSC 故障處理時(shí),只需要重做故障節(jié)點(diǎn)的 Redo 日志,并且大部分?jǐn)?shù)據(jù)頁(yè)已經(jīng)包含在處理節(jié)點(diǎn)的Buffer 緩沖區(qū)中,不需要重新從磁盤(pán)加載。高吞吐量DMDSC 集群中包
20、含多個(gè)數(shù)據(jù)庫(kù)實(shí)例,數(shù)據(jù)庫(kù)實(shí)例訪問(wèn)獨(dú)立的處理器、內(nèi)存,數(shù)據(jù)庫(kù)實(shí)例之間通過(guò)緩存交換技術(shù)提升共享數(shù)據(jù)的訪問(wèn)速度,每個(gè)數(shù)據(jù)庫(kù)實(shí)例都可以接收并處理用戶(hù)的各種數(shù)據(jù)庫(kù)請(qǐng)求。與單節(jié)點(diǎn)數(shù)據(jù)庫(kù)管理系統(tǒng)相比,DMDSC 集群可以充分利用多臺(tái)物理機(jī)器的處理能力, 支撐更多的用戶(hù)連接請(qǐng)求,提供更高的吞吐量。與雙機(jī)熱備系統(tǒng)相比,DMDSC 集群不存在始終保持備用狀態(tài)的節(jié)點(diǎn),不會(huì)造成硬件資源的浪費(fèi)。負(fù)載均衡用戶(hù)通過(guò)配置 DM 數(shù)據(jù)庫(kù)連接服務(wù)名來(lái)訪問(wèn) DMDSC 集群,可以實(shí)現(xiàn)節(jié)點(diǎn)間的自動(dòng)負(fù)載均衡,用戶(hù)的數(shù)據(jù)庫(kù)連接請(qǐng)求會(huì)被自動(dòng)、平均地分配到 DMDSC 集群中的各個(gè)節(jié)點(diǎn)。并且連接服務(wù)名支持 JDBC、DPI、ODBC、DCI
21、、.Net Provider 等各種數(shù)據(jù)庫(kù)接口?;靖拍罴海–luster)是由兩個(gè)或多個(gè)節(jié)點(diǎn)(服務(wù)器)構(gòu)成的一種松散耦合的計(jì)算機(jī)節(jié)點(diǎn)集合,這個(gè)集合在整個(gè)網(wǎng)絡(luò)中表現(xiàn)為一個(gè)單一的系統(tǒng),并通過(guò)單一接口進(jìn)行使用和管理。大多數(shù)模式下,集群中的所有計(jì)算機(jī)都擁有一個(gè)相同的名稱(chēng),集群內(nèi)任意一個(gè)系統(tǒng)都可以被所有的網(wǎng)絡(luò)用戶(hù)使用。每個(gè)集群節(jié)點(diǎn)都是運(yùn)行其自己進(jìn)程的獨(dú)立服務(wù)器,因此每個(gè)節(jié)點(diǎn)都有自己的運(yùn)算能力。這些進(jìn)程間彼此通信進(jìn)行協(xié)調(diào),協(xié)同起來(lái)向用戶(hù)提供應(yīng)用程序、系統(tǒng)資源和數(shù)據(jù)以及計(jì)算能力。本書(shū)中涉及到的集群有三種:DMDSC 集群,DMCSS 集群和 DMASM 集群。DMDSC 集群DMDSC 集群由若干數(shù)據(jù)庫(kù)
22、實(shí)例(Instance)組成,這些實(shí)例間通過(guò)網(wǎng)絡(luò)(MAL 鏈路) 連接,通過(guò)一個(gè)特殊的軟件(DMCSS,集群同步服務(wù))的協(xié)助,共同操作一個(gè)數(shù)據(jù)庫(kù)。從外部用戶(hù)視角來(lái)看,他們看到的只是一個(gè)數(shù)據(jù)庫(kù)。數(shù)據(jù)文件、控制文件等文件在集群中只有一份,所有節(jié)點(diǎn)平等地使用這些數(shù)據(jù)文件。這份數(shù)據(jù)一般放在共享存儲(chǔ)上,每個(gè)服務(wù)器通過(guò)光纖連接到共享存儲(chǔ)上。DMDSC 支持使用裸設(shè)備或 DMASM 文件系統(tǒng)存放共享數(shù)據(jù)庫(kù)文件。為了方便對(duì)裸設(shè)備上的磁盤(pán)或文件進(jìn)行管理,DM 推薦使用 DMASM 文件系統(tǒng)。裸設(shè)備(Raw Device)一種沒(méi)有經(jīng)過(guò)格式化,不被 Unix/Linux 通過(guò)文件系統(tǒng)來(lái)讀取的特殊字符設(shè)備,允許直接訪
23、問(wèn)磁盤(pán)而不經(jīng)過(guò)操作系統(tǒng)的高速緩存和緩沖器。因?yàn)槭褂寐阍O(shè)備避免了經(jīng)過(guò)操作系統(tǒng)這一層,數(shù)據(jù)直接從磁盤(pán)到數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行傳輸,所以使用裸設(shè)備對(duì)于讀寫(xiě)頻繁的數(shù)據(jù)庫(kù)應(yīng)用來(lái)說(shuō),可以有效提高數(shù)據(jù)庫(kù)系統(tǒng)的性能。但是裸設(shè)備的使用有很多限制,比如 Linux 主機(jī)的每個(gè)磁盤(pán)最多能劃分 16 個(gè)分區(qū),去掉一個(gè)擴(kuò)展分區(qū)后,可用的只有 15 個(gè);每個(gè)分區(qū)只支持一個(gè)裸設(shè)備;每個(gè)裸設(shè)備只能對(duì)應(yīng)一個(gè)文件、裸設(shè)備一經(jīng)創(chuàng)建大小就固定、不能動(dòng)態(tài)調(diào)整等。所以實(shí)際使用時(shí)可能會(huì)出現(xiàn)數(shù)據(jù)庫(kù)文件空間不夠或者空間浪費(fèi)的情況,需要根據(jù)應(yīng)用實(shí)際情況提前分配好裸設(shè)備大小。DMASM(DM Auto Storage Manager)是一個(gè)專(zhuān)用的分布式
24、文件系統(tǒng)。支持多個(gè)節(jié)點(diǎn)同時(shí)訪問(wèn)、修改數(shù)據(jù)文件,并減少直接使用裸設(shè)備存在的諸多限制。DMASM 文件系統(tǒng)把指定的裸設(shè)備打包管理,使用 DMASM 文件系統(tǒng)可以方便地創(chuàng)建、刪除、擴(kuò)展、截?cái)辔募?,不用?dān)心空間不足(空間不足可以通過(guò)增加磁盤(pán)擴(kuò)展空間)或空間浪費(fèi);不用考慮文件個(gè)數(shù)限制;可以方便查看空間使用情況;可以在線通過(guò)增加裸設(shè)備的方式擴(kuò)展總體使用空間。DMASM 不是一個(gè)通用的文件系統(tǒng),只能通過(guò) dmasmapi 接口訪問(wèn)。理論上通過(guò)dmasmapi 接口可以存放任何文件,但在 DMDSC 集群中,一般只建議將需要在節(jié)點(diǎn)間共享訪問(wèn)的文件存在 DMASM 文件中,如數(shù)據(jù)文件、聯(lián)機(jī) Redo 日志文件、
25、控制文件等。歸檔 Redo 日志文件、備份集文件也可以考慮保存到 DMASM 文件系統(tǒng)中,避免還原、恢復(fù)等操作時(shí)節(jié)點(diǎn)間的文件拷貝,簡(jiǎn)化備份、還原操作。其他的一些本地配置文件比如 dm.ini 等保存在本地磁盤(pán)中。DMDSC 集群中若配置 DMASM,則要求 DMASM 站點(diǎn)數(shù)和 DMCSS 站點(diǎn)數(shù)一致,且只能存在一個(gè) DMCSS 組和一個(gè) DMASM 組。這些 DMASM 站點(diǎn)共同構(gòu)成了一個(gè) DMASM 集群。DMCSS(DM Cluster Synchronization Services)DMCSS 是 DM 集群同步服務(wù)的簡(jiǎn)稱(chēng),是 DMDSC 集群應(yīng)用的基礎(chǔ),使用 DMDSC 集群或者D
26、MASM 集群都必須要配置 DMCSS。DMCSS 負(fù)責(zé)集群環(huán)境中節(jié)點(diǎn)的啟動(dòng)、故障處理、節(jié)點(diǎn)重加入等操作。每個(gè)集群節(jié)點(diǎn)都需要有一個(gè) DMCSS 服務(wù)。這些 DMCSS 服務(wù)又共同構(gòu)成一個(gè) DMCSS 集群。單節(jié)點(diǎn)應(yīng)用時(shí),可以不配置 CSS。DMCSSM(DM Cluster Synchronization Services Monitor)DMCSSM(DM Cluster Synchronization Services Monitor)是 DM 集群監(jiān)視器的簡(jiǎn)稱(chēng)。DMCSSM 與 DMCSS 相互通信,獲取并監(jiān)控整個(gè)集群系統(tǒng)的狀態(tài)信息。DMCSSM 還提供了一系列的命令來(lái)管理、維護(hù)集群。同
27、一個(gè)集群中,允許最多同時(shí)啟動(dòng) 10 個(gè)監(jiān)視器,一般建議將監(jiān)視器放在獨(dú)立的第三方機(jī)器上。DCR(DM Clusterware Registry)DCR 是 DM 集群注冊(cè)表的簡(jiǎn)稱(chēng),用于存儲(chǔ)、維護(hù)集群配置的詳細(xì)信息,整個(gè)集群環(huán)境共享 DCR 配置信息,包括 DMDSC、DMASM、DMCSS 資源,包括實(shí)例名、監(jiān)聽(tīng)端口、集群中故障節(jié)點(diǎn)信息等。DCR 必須存儲(chǔ)在集群中所有節(jié)點(diǎn)都可以訪問(wèn)到的共享存儲(chǔ)中,并且只支持裸設(shè)備。在一個(gè)集群環(huán)境中只能配置一個(gè) DCR 磁盤(pán)。表決磁盤(pán)(Voting Disk)表決磁盤(pán)記錄了集群成員信息,DM 集群通過(guò) Voting Disk 進(jìn)行心跳檢測(cè),確定集群中節(jié)點(diǎn)的狀態(tài),判
28、斷節(jié)點(diǎn)是否出現(xiàn)故障。當(dāng)集群中出現(xiàn)網(wǎng)絡(luò)故障時(shí),使用 Voting Disk 來(lái)確定哪些 DMDSC 節(jié)點(diǎn)應(yīng)該被踢出集群。表決磁盤(pán)還用來(lái)傳遞命令,在集群的不同狀態(tài)(啟動(dòng)、節(jié)點(diǎn)故障、節(jié)點(diǎn)重加入等)DMCSS 通過(guò) Voting Disk 傳遞控制命令,通知節(jié)點(diǎn)執(zhí)行相應(yīng)命令。Voting Disk 必須存儲(chǔ)在集群中所有節(jié)點(diǎn)都可以訪問(wèn)到的共享存儲(chǔ)中,并且只支持裸設(shè)備。在一個(gè)集群環(huán)境中只能配置一個(gè)表決磁盤(pán)。集群中各實(shí)例啟動(dòng)時(shí),通過(guò)訪問(wèn) DCR 獲取集群配置信息。被監(jiān)控實(shí)例從 Voting Disk讀取監(jiān)控命令,并向 Voting Disk 寫(xiě)入命令響應(yīng)以及自身心跳信息;DMCSS 也向 VotingDis
29、k 寫(xiě)入自己的心跳信息,并從 Voting Disk 訪問(wèn)各被監(jiān)控節(jié)點(diǎn)的運(yùn)行情況,并將監(jiān)控命令寫(xiě)入 Voting Disk,供被監(jiān)控實(shí)例訪問(wèn)執(zhí)行。HeartBeat(心跳機(jī)制)DMCSS 的心跳機(jī)制是通過(guò) Voting Disk 的 Disk Heartbeat。這種機(jī)制有最大時(shí)延, 只有超過(guò)最大時(shí)延,才認(rèn)為監(jiān)測(cè)對(duì)象故障。MAL 鏈路MAL 系統(tǒng)是達(dá)夢(mèng)數(shù)據(jù)庫(kù)基于 TCP 協(xié)議實(shí)現(xiàn)的一種內(nèi)部通信機(jī)制,具有可靠、靈活、高效的特性。使用 DMASM 文件系統(tǒng)的 DMDSC 集群中存在兩套 MAL 系統(tǒng),DMASM 服務(wù)器之間配置一套 MAL 系統(tǒng),dmserver 服務(wù)器之間配置一套 MAL 系統(tǒng)。
30、一旦 MAL 鏈路出現(xiàn)異常, DMCSS 會(huì)進(jìn)行裁定,并從集群中踢出一個(gè)節(jié)點(diǎn),保證集群環(huán)境正常運(yùn)行。共享內(nèi)存共享內(nèi)存是一種快速、高效的進(jìn)程間通信手段。所謂共享內(nèi)存,就是同一塊物理內(nèi)存被映射到多個(gè)進(jìn)程的地址空間,進(jìn)程 A 可以即時(shí)看到進(jìn)程 B 對(duì)共享內(nèi)存的修改,反之亦然。DMASM 服務(wù)器進(jìn)程和 DMASM 客戶(hù)端進(jìn)程之間通過(guò)共享內(nèi)存方式共享 DMASM 文件到實(shí)際磁盤(pán)的映射關(guān)系。VIPVIP(虛擬IP 地址),是一個(gè)不與特定計(jì)算機(jī)或者計(jì)算機(jī)中的網(wǎng)絡(luò)接口相連的IP 地址。數(shù)據(jù)包被發(fā)送到這個(gè) VIP 地址,但是所有的數(shù)據(jù)還是經(jīng)過(guò)真實(shí)的網(wǎng)絡(luò)接口。在集群環(huán)境中, 應(yīng)用通過(guò) VIP 連接數(shù)據(jù)庫(kù)服務(wù)器,實(shí)
31、例故障后,把實(shí)例配置的 VIP 設(shè)置到其他活動(dòng)節(jié)點(diǎn)(叫做 IP 漂移),這樣應(yīng)用可以不用修改配置,繼續(xù)訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)。使用說(shuō)明目前 DMDSC 在功能上與單機(jī)版 DM 相比存在一定限制,暫不支持下列功能:支持定時(shí)器,但只有控制節(jié)點(diǎn)上配置的定時(shí)器生效。只支持脫機(jī)配置定時(shí)器,不支持聯(lián)機(jī)配置支持作業(yè),但只有控制節(jié)點(diǎn)上支持執(zhí)行作業(yè)不支持 HUGE 表不支持外部表不支持堆表不支持類(lèi)型別名相關(guān)操作不支持 table 級(jí)別的 space limit 功能不支持全文索引、詞庫(kù)相關(guān)操作不支持安全版本、審計(jì)相關(guān)操作不支持 DBMS_ALERT、DBMS_LOCK 包不支持?jǐn)?shù)據(jù)復(fù)制不能與 MPP 集群混合使用不支持
32、為表空間文件指定 mirror_path不支持閃回查詢(xún),不允許打開(kāi)閃回功能DMDSC 使用的環(huán)境部署 DMDSC 集群所用到的硬件和軟件環(huán)境。硬件環(huán)境 主機(jī)兩臺(tái)。用于部署數(shù)據(jù)庫(kù)實(shí)例 dmserver、DMCSS、DMASMSVR。內(nèi)存大小要求: 至少 2GB。 共享存儲(chǔ)。兩臺(tái)機(jī)器可以同時(shí)訪問(wèn)到的,可以劃分為裸設(shè)備的磁盤(pán)。 網(wǎng)卡。每臺(tái)主機(jī)至少準(zhǔn)備 2 塊網(wǎng)卡。提供內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)服務(wù)。軟件環(huán)境 操作系統(tǒng)。Linux、Unix、Windows 等。 達(dá)夢(mèng)數(shù)據(jù)庫(kù)軟件。安裝好 DM 數(shù)據(jù)庫(kù)軟件之后,將擁有配置和管理 DMDSC 所需的所有軟件:dmserver、dminit、dmasmcmd、dma
33、smsvr、dmasmtool、dmcss、dmcssm 等。這些軟件位于安裝目錄/dmdbms/bin 中。DMDSC 實(shí)現(xiàn)原理DMDSC 是一個(gè)共享存儲(chǔ)的數(shù)據(jù)庫(kù)集群系統(tǒng)。多個(gè)數(shù)據(jù)庫(kù)實(shí)例同時(shí)訪問(wèn)、修改同一個(gè)數(shù)據(jù)庫(kù),因此必然帶來(lái)了全局并發(fā)問(wèn)題。DMDSC 集群基于單節(jié)點(diǎn)數(shù)據(jù)庫(kù)管理系統(tǒng)之上,改造了 Buffer 緩沖區(qū)、事務(wù)系統(tǒng)、封鎖系統(tǒng)和日志系統(tǒng)等,來(lái)適應(yīng)共享存儲(chǔ)集群節(jié)點(diǎn)間的全局并發(fā)訪問(wèn)控制要求。同時(shí),引入緩存交換技術(shù),提升數(shù)據(jù)在節(jié)點(diǎn)間的傳遞效率。事務(wù)管理多版本并發(fā)控制(MVCC)可以確保數(shù)據(jù)庫(kù)的讀操作與寫(xiě)操作不會(huì)相互阻塞,大幅度提升數(shù)據(jù)庫(kù)的并發(fā)度以及使用體驗(yàn),大多數(shù)主流商用數(shù)據(jù)庫(kù)管理系統(tǒng)都實(shí)
34、現(xiàn)了 MVCC。DM 的多版本并發(fā)控制實(shí)現(xiàn)策略是:數(shù)據(jù)頁(yè)中只保留物理記錄的最新版本數(shù)據(jù),通過(guò)回滾記錄維護(hù)數(shù)據(jù)的歷史版本,通過(guò)活動(dòng)事務(wù)視圖(V$DSC_TRX_VIEW)判斷事務(wù)可見(jiàn)性,確定獲取哪一個(gè)版本的數(shù)據(jù)。每一條物理記錄中包含了兩個(gè) 字段:TID 和 RPTR。TID 保存修改記錄的事務(wù)號(hào),RPTR 保存回滾段中上一個(gè)版本回滾記錄的物理地址。插入、刪除和更新物理記錄時(shí),RPTR 指向操作生成的回滾記錄的物理地址?;貪L記錄與物理記錄一樣,也包含了 TID 和 RPTR 這兩個(gè)字段。TID 保存產(chǎn)生回滾記錄時(shí)物理記錄上的 TID 值(也就是上一個(gè)版本的事務(wù)號(hào)),RPTR 保存回滾段中上一個(gè)版本
35、回滾記錄的物理地址。每一條記錄(物理記錄或回滾記錄)代表一個(gè)版本。如下圖所示:物理記錄TIDRPTR回滾記錄TRX 2TRX 1TIDRPTRTRX N-1TRX N-2TRX N圖 4.1 各版本之間的關(guān)系如何找到對(duì)當(dāng)前事務(wù)可見(jiàn)的特定版本數(shù)據(jù),進(jìn)行可見(jiàn)性判斷,是 DM 實(shí)現(xiàn)多版本并發(fā)控制的關(guān)鍵。根據(jù)事務(wù)隔離級(jí)別的不同,在事務(wù)啟動(dòng)時(shí)(串行化),或者語(yǔ)句執(zhí)行時(shí)(讀提交),收集這一時(shí)刻所有活動(dòng)事務(wù),并記錄系統(tǒng)中即將產(chǎn)生的事務(wù)號(hào) NEXT_TID。DM 多版本并發(fā)控制可見(jiàn)性原則:物理記錄 TID 等于當(dāng)前事務(wù)號(hào),說(shuō)明是本事務(wù)修改的物理記錄,物理記錄可見(jiàn)物理記錄 TID 不在活動(dòng)事務(wù)表中,并且 TID
36、 小于 NEXT_TID,物理記錄可見(jiàn)物理記錄的 TID 包含在活動(dòng)事務(wù)表中,或者 TID=NEXT_TID,物理記錄不可見(jiàn)為了在 DMDSC 集群中實(shí)現(xiàn)與單節(jié)點(diǎn)相同的多版本并發(fā)控制(MVCC)策略,每個(gè)事務(wù)需要知道所有節(jié)點(diǎn)當(dāng)前活動(dòng)的事務(wù)信息,根據(jù)事務(wù)隔離級(jí)的不同,在事務(wù)啟動(dòng)時(shí)(串行化),或者語(yǔ)句執(zhí)行時(shí)(讀提交),收集這一時(shí)刻所有節(jié)點(diǎn)上的活動(dòng)事務(wù),以及系統(tǒng)中即將產(chǎn)生的事務(wù)號(hào) NEXT_TID,記錄到事務(wù)的活動(dòng)事務(wù)視圖中。DMDSC 集群將事務(wù)信息全局化,由控制節(jié)點(diǎn)統(tǒng)一管理集群中所有節(jié)點(diǎn)的全局事務(wù)視圖(Global Transaction View,簡(jiǎn)稱(chēng)GTV);與之對(duì)應(yīng)的是每個(gè)節(jié)點(diǎn)維護(hù)一個(gè)本地
37、事務(wù)視圖(Local Transaction View,簡(jiǎn)稱(chēng) LTV),在事務(wù)啟動(dòng)、收集活動(dòng)事務(wù)信息時(shí)通知全局事務(wù)視圖,并獲取相應(yīng)的信息。封鎖管理數(shù)據(jù)庫(kù)管理系統(tǒng)一般采用行鎖進(jìn)行并發(fā)訪問(wèn)控制,避免多個(gè)用戶(hù)同時(shí)修改相同數(shù)據(jù);通過(guò)表鎖、字典鎖控制 DDL 和 DML 操作的并發(fā)訪問(wèn),保證對(duì)象定義的有效性和數(shù)據(jù)訪問(wèn)的正確性。DM 則采用了獨(dú)特的封鎖機(jī)制,使用 TID 鎖和對(duì)象鎖進(jìn)行并發(fā)訪問(wèn)控制,有效減少封鎖沖突、提升系統(tǒng)并發(fā)性能。TID 鎖以事務(wù)號(hào)為封鎖對(duì)象,每個(gè)事務(wù)啟動(dòng)時(shí),自動(dòng)以獨(dú)占(X)方式對(duì)當(dāng)前事務(wù)號(hào)進(jìn)行封鎖,由于事務(wù)號(hào)是全局唯一的,因此這把 TID 鎖不存在沖突,總是可以封鎖成功。同時(shí),在 4
38、.1 事務(wù)管理中,介紹了物理記錄上包含一個(gè) TID 字段,記錄了修改數(shù)據(jù)的事務(wù)號(hào)。執(zhí)行 INSERT、DELETE、UPDATE 操作修改物理記錄時(shí),設(shè)置事務(wù)號(hào)到 TID 字段的動(dòng)作, 就相當(dāng)于隱式地對(duì)物理記錄上了一把 X 方式的 TID 鎖。因此,通過(guò)事務(wù)啟動(dòng)時(shí)創(chuàng)建的 TID 鎖,以及寫(xiě)入物理記錄的 TID 值,DM 中所有修改物理記錄的操作都不再需要額外的行鎖, 避免了大量行鎖對(duì)系統(tǒng)資源的消耗,有效減少封鎖沖突。特別是在 DMDSC 集群中,需要進(jìn)行全局封鎖,封鎖的代價(jià)比單節(jié)點(diǎn)更高,通過(guò) TID 鎖可以有效減少封鎖引發(fā)的性能損失。對(duì)象鎖則通過(guò)對(duì)象 ID 進(jìn)行封鎖,將對(duì)數(shù)據(jù)字典的封鎖和表鎖合
39、并為對(duì)象鎖,以達(dá)到減少封鎖沖突、提升系統(tǒng)并發(fā)性能的目的。與事務(wù)管理類(lèi)似,DMDSC 集群將封鎖管理拆分為全局封鎖服務(wù)(Global Locking Services,簡(jiǎn)稱(chēng) GLS)和本地封鎖服務(wù)(Local Locking Services,簡(jiǎn)稱(chēng) LLS)兩部分。整個(gè)系統(tǒng)中,只有控制節(jié)點(diǎn)擁有一個(gè) GLS??刂乒?jié)點(diǎn)的 GLS 統(tǒng)一處理集群中所有節(jié)點(diǎn)的封鎖請(qǐng)求、維護(hù)全局封鎖信息、進(jìn)行死鎖檢測(cè),確保事務(wù)并發(fā)訪問(wèn)的正確性。每個(gè)節(jié)點(diǎn)都有一個(gè) LLS。各節(jié)點(diǎn)的 LLS 負(fù)責(zé)與 GLS 協(xié)調(diào)、通訊,完成事務(wù)的封鎖請(qǐng)求,DMDSC 集群中所有封鎖請(qǐng)求都需要通過(guò) LLS 向 GLS 發(fā)起,并在獲得 GLS 授權(quán)
40、后,才能進(jìn)行后續(xù)操作。閂管理閂(Latch)是數(shù)據(jù)庫(kù)管理系統(tǒng)的一種內(nèi)部數(shù)據(jù)結(jié)構(gòu),通常用來(lái)協(xié)調(diào)、管理 Buffer 緩沖區(qū)、字典緩存和數(shù)據(jù)庫(kù)文件等資源的并發(fā)訪問(wèn)。與鎖(Lock)在事務(wù)生命周期中一直保持不同,閂(Latch)通常只保持極短的一段時(shí)間,比如修改 Buffer 中數(shù)據(jù)頁(yè)內(nèi)容后, 馬上會(huì)釋放。閂(Latch)的封鎖類(lèi)型也比較簡(jiǎn)單,就是共享(Share)和獨(dú)占(Exclusive)兩種類(lèi)型。為了適用 DMDSC 集群,我們同樣將閂劃分為全局閂服務(wù)(Global Latch Services) 和本地閂服務(wù)(Local Latch Services)兩個(gè)部分。但是,為了與全局封鎖服務(wù) GL
41、S 和本地封鎖服務(wù) LLS 的名字簡(jiǎn)稱(chēng)區(qū)分開(kāi)來(lái),我們以使用最為頻繁的 Buffer 來(lái)命名全局閂服務(wù)。因此,全局閂服務(wù)也稱(chēng)為全局緩沖區(qū)服務(wù)(Global Buffer Services),簡(jiǎn)稱(chēng)GBS;本地閂服務(wù)也稱(chēng)為本地緩沖區(qū)服務(wù)(Local Buffer Services),簡(jiǎn)稱(chēng) LBS。整個(gè)系統(tǒng)中,每一個(gè)節(jié)點(diǎn)上都部署一個(gè) GBS 和一個(gè)LBS。GBS 服務(wù)協(xié)調(diào)節(jié)點(diǎn)間的Latch 封鎖請(qǐng)求、以及 Latch 權(quán)限回收。GBS 與 GTV/GLS 由控制節(jié)點(diǎn)統(tǒng)一管理不同,GBS 不是集中式管理,而是由 DMDSC 集群中的所有節(jié)點(diǎn)共同管理,Buffer 對(duì)象會(huì)根據(jù)數(shù)據(jù)頁(yè)號(hào)(Page No)對(duì)數(shù)
42、據(jù)頁(yè)進(jìn)行劃分,分給某一個(gè)節(jié)點(diǎn)的 GBS 服務(wù)處理。LBS 服務(wù)與 LLS/LTV 一樣,部署在每一個(gè)節(jié)點(diǎn),LBS 服務(wù)根據(jù)用戶(hù)請(qǐng)求,向 GBS 發(fā)起 Latch 封鎖,或者根據(jù)GBS 請(qǐng)求,回收本地的 Latch 封鎖。為了避免兩個(gè)、或多個(gè)節(jié)點(diǎn)同時(shí)修改同一個(gè)數(shù)據(jù)頁(yè),導(dǎo)致數(shù)據(jù)損壞,或者數(shù)據(jù)頁(yè)修改過(guò)程中,別的節(jié)點(diǎn)讀取到無(wú)效內(nèi)容,DMDSC 集群中數(shù)據(jù)頁(yè)的封鎖流程產(chǎn)生一定變化,與單節(jié)點(diǎn)相比,增加了全局 Latch 封鎖、釋放兩個(gè)步驟。并且,在獲取全局 Latch 授權(quán)后,仍然需要進(jìn)行正常的本地 Latch 封鎖,避免節(jié)點(diǎn)內(nèi)訪問(wèn)沖突。緩存交換根據(jù)目前的硬件發(fā)展?fàn)顩r來(lái)看,網(wǎng)絡(luò)的傳輸速度比磁盤(pán)的讀、寫(xiě)速度
43、更快,因此,DMDSC 集群引入了緩存交換(Buffer Swap)技術(shù),節(jié)點(diǎn)間的數(shù)據(jù)頁(yè)盡可能通過(guò)網(wǎng)絡(luò)傳遞,避免通過(guò)磁盤(pán)的寫(xiě)入、再讀出方式在節(jié)點(diǎn)間傳遞數(shù)據(jù),從而減少數(shù)據(jù)庫(kù)的 IO 等待時(shí)間,提升系統(tǒng)的響應(yīng)速度。緩存交換的實(shí)現(xiàn)基礎(chǔ)是 GBS/LBS 服務(wù),在 GBS/LBS 中維護(hù)了 Buffer 數(shù)據(jù)頁(yè)的相關(guān)信息。包括:1. 閂的封鎖權(quán)限(LATCH);2. 哪些站點(diǎn)訪問(wèn)過(guò)此數(shù)據(jù)頁(yè)(Access MAP);最新數(shù)據(jù)保存在哪一個(gè)節(jié)點(diǎn)(Fresh EP)中;4. 以及最新數(shù)據(jù)頁(yè)的 LSN 值(Fresh LSN) 等信息。這些信息作為 LBS 封鎖、GBS 授權(quán)和 GBS 權(quán)限回收請(qǐng)求的附加信息進(jìn)
44、行傳遞,因此并不會(huì)帶來(lái)額外的通訊開(kāi)銷(xiāo)。下面,以?xún)晒?jié)點(diǎn) DMDSC 集群(EP0/EP1)訪問(wèn)數(shù)據(jù)頁(yè) P1 為例子。初始頁(yè) P1 位于共享存儲(chǔ)上,P1 的GBS 控制結(jié)構(gòu)位于節(jié)點(diǎn) EP1 上。初始頁(yè) P1 還沒(méi)有被任何一個(gè)節(jié)點(diǎn)訪問(wèn)過(guò),初始頁(yè) P1 的 LSN 為 10000。通過(guò)幾種常見(jiàn)場(chǎng)景分析,逐步深入,解析緩存交換的原理。場(chǎng)景 1節(jié)點(diǎn) EP0 訪問(wèn)數(shù)據(jù)頁(yè) P1。節(jié)點(diǎn) EP0 的本地 LBS 向 EP1 的 GBS 請(qǐng)求數(shù)據(jù)頁(yè) P1 的 S LATCH 權(quán)限節(jié)點(diǎn) EP1 的 GBS 修改 P1 控制結(jié)構(gòu),記錄訪問(wèn)節(jié)點(diǎn) EP0 的封鎖模式為 S LATCH(數(shù)據(jù)分布節(jié)點(diǎn)為 EP0),并響應(yīng) EP
45、0 的 LBS 請(qǐng)求節(jié)點(diǎn) EP0 的 LBS 獲得 GBS 授權(quán)后,記錄獲得的授權(quán)模式是 S_LATCH,P1 數(shù)據(jù)不在其他節(jié)點(diǎn)的 Buffer 中,發(fā)起本地 IO 請(qǐng)求,從磁盤(pán)讀取數(shù)據(jù)。IO 完成后,修改 LBS 控制結(jié)構(gòu),記錄數(shù)據(jù)頁(yè)上的 LSN 信息LBS1GBSLATCH (EP0:S)Access Map (EP0) Fresh LSN (10000)Fresh EP ()2LATCH (EP0:S)Access Map (EP0) Fresh LSN (0) Fresh EP ()4BUFFER3EP0EP1內(nèi)部網(wǎng)絡(luò)共享存儲(chǔ)BUFFERP1圖 4.2 本地 IO場(chǎng)景 2節(jié)點(diǎn) EP1
46、訪問(wèn)數(shù)據(jù)頁(yè) P1。節(jié)點(diǎn) EP1 本地 LBS 向 EP1 的 GBS 請(qǐng)求數(shù)據(jù)頁(yè) P1 的 S LATCH 權(quán)限節(jié)點(diǎn) EP1 的 GBS 修改控制結(jié)構(gòu),記錄訪問(wèn)節(jié)點(diǎn) EP1 的封鎖模式為 S LATCH(數(shù)據(jù)分布節(jié)點(diǎn)為 EP0/EP1),并響應(yīng) EP1 的 LBS 請(qǐng)求GBS1LBSLatch (EP0,EP1: S) AccessM (EP0/EP1)Fresh LSN (0) Fresh EP ()LBSap 23Latch (EP0: S) Access Map (EP0) Fresh LSN (10000) Fresh EP ()Latch (EP1: S)AccessMap (EP0
47、/EP1)Fresh LSN (10000) Fresh EP ()5BufferBuffer4EP0EP1 P1P1節(jié)點(diǎn) EP1 的 LBS 獲得 GBS 授權(quán)后,記錄獲得的授權(quán)模式是 S LATCH,根據(jù)數(shù)據(jù)分布情況,EP1 向 EP0 發(fā)起 P1 的讀請(qǐng)求,通過(guò)內(nèi)部網(wǎng)絡(luò)從 EP0 獲取數(shù)據(jù),而不是重新從磁盤(pán)讀取 P1 數(shù)據(jù)圖 4.3 遠(yuǎn)程 IO場(chǎng)景 3節(jié)點(diǎn) EP0 修改數(shù)據(jù)頁(yè) P1。節(jié)點(diǎn) EP0 本地 LBS 向 EP1 的 GBS 請(qǐng)求數(shù)據(jù)頁(yè) P1 的 X LATCH 權(quán)限(附加 LSN 信息)節(jié)點(diǎn) EP1 的 GBS 修改控制結(jié)構(gòu)的 LSN 值,從 EP1 的 LBS 回收 P1 的
48、權(quán)限修改訪問(wèn)節(jié)點(diǎn) EP0 的封鎖模式為 S + X LATCH,并響應(yīng) EP0 的 LBS 請(qǐng)求節(jié)點(diǎn) EP0 的 LBS 獲得 GBS 授權(quán)后,記錄獲得的授權(quán)模式是 S + X LATCH節(jié)點(diǎn) EP0 修改數(shù)據(jù)頁(yè) P1,LSN 修改為 11000這個(gè)過(guò)程中,只有全局 Latch 請(qǐng)求,數(shù)據(jù)頁(yè)并沒(méi)有在節(jié)點(diǎn)間傳遞。GBS1Latch (EP0: S+X)Access Map (EP0/EP1) Fresh LSN (10000)Fresh EP ()4LBS2LBS3Latch (EP0: S+X)Access Map (EP0/EP1) Fresh LSN (10000)Fresh EP ()L
49、atch ()Access Map (EP0/EP1) Fresh LSN (10000)Fresh EP ()EP0EP1內(nèi)部網(wǎng)絡(luò)共享存儲(chǔ)BufferP1BufferP1圖 4.4 GBS 管理修改之后,數(shù)據(jù)頁(yè) P1 的 LSN 修改為 11000。如下所示:GBS1Latch (EP0: S+X)Access Map (EP0/EP1) Fresh LSN (10000)Fresh EP ()4LBS2LBS3Latch (EP0: S+X)Access Map (EP0) Fresh LSN (11000)Fresh EP (EP0)Latch ()Access Map (EP0/EP1
50、) Fresh LSN (10000)Fresh EP ()5BufferEP0EP1內(nèi)部網(wǎng)絡(luò)共享存儲(chǔ)BufferP1P1圖 4.5 數(shù)據(jù)修改場(chǎng)景 4節(jié)點(diǎn) EP1 修改數(shù)據(jù)頁(yè) P1。節(jié)點(diǎn) EP1 本地 LBS 向 EP1 的 GBS 請(qǐng)求數(shù)據(jù)頁(yè) P1 的 X LATCH 權(quán)限節(jié)點(diǎn) EP1 的 GBS 發(fā)現(xiàn) P1 被 EP0 以 S + X 方式封鎖,向 EP0 發(fā)起回收 P1 權(quán)限的請(qǐng)求節(jié)點(diǎn) EP0 釋放 P1 的全局 LATCH,響應(yīng) GBS,并且在響應(yīng)消息中附加了最新的 PAGE LSN 值節(jié)點(diǎn)EP1 的 GBS 收到EP0 的響應(yīng)后,修改 GBS 控制結(jié)構(gòu),記錄最新數(shù)據(jù)保存在EP0, 最
51、新的 LSN 值信息,記錄 EP0 獲得的授權(quán)模式是 S + X LATCH(此時(shí),數(shù)據(jù)分布節(jié)點(diǎn)仍然是 EP0/EP1),并授權(quán) EP1 的 LBS節(jié)點(diǎn) EP1 的 LBS 收到授權(quán)信息后,記錄獲得的授權(quán)模式是 S + X LATCH,并根據(jù)數(shù)據(jù)分布情況,向節(jié)點(diǎn) EP0 發(fā)起數(shù)據(jù)頁(yè) P1 的讀請(qǐng)求節(jié)點(diǎn) EP1 修改數(shù)據(jù)頁(yè) P1,LSN 修改為 12000GBS2Latch (EP1:S+X)Access Map (EP0/EP1) Fresh LSN (11000)Fresh EP (EP0)3LBS14LBSLatch ()Access Map (EP0/EP1) Fresh LSN (11
52、000)Fresh EP (EP0)5Latch (EP1:S+X)Access Map (EP0/EP1) Fresh LSN (11000)Fresh EP (EP0)BufferBuffer6EP0EP1內(nèi)部網(wǎng)絡(luò)共享存儲(chǔ)P1P1圖 4.6 GBS 管理修改之后,數(shù)據(jù)頁(yè) P1 的 LSN 修改為 12000。如下所示:GBS2Latch (EP1:S+X) AccessMap (EP0/EP1)Fresh LSN (11000) Fresh EP (EP0)LBS314LBSLatch () Access (EP0/EP1)Map Fresh LSN (11000) Fresh EP (E
53、P0)5Latch (EP1:S+X) Access Map (EP1) Fresh LSN (12000) Fresh EP (EP1)7BufferBuffer6EP0EP1 P1P1圖 4.7 數(shù)據(jù)修改這個(gè)過(guò)程中,數(shù)據(jù)頁(yè) P1 的最新數(shù)據(jù)從 EP0 傳遞到了 EP1,但并沒(méi)有產(chǎn)生磁盤(pán) IO。重做日志管理Redo 日志包含了所有物理數(shù)據(jù)頁(yè)的修改內(nèi)容,Insert/delete/update 等 DML 操作、Create Table 等 DDL 操作,最終都會(huì)轉(zhuǎn)化為對(duì)物理數(shù)據(jù)頁(yè)的修改,這些修改都會(huì)反映到 Redo 日志中。一般說(shuō)來(lái)一條 SQL 語(yǔ)句,在系統(tǒng)內(nèi)部會(huì)轉(zhuǎn)化為多個(gè)相互獨(dú)立的物理事務(wù)
54、來(lái)完成,物理事務(wù)提交時(shí)產(chǎn)生 Redo 日志,并最終寫(xiě)入聯(lián)機(jī) Redo 日志文件中。一個(gè)物理事務(wù)包含一個(gè)或者多個(gè) Redo 記錄(Redo Record,簡(jiǎn)稱(chēng) RREC),每條 Redo記錄都對(duì)應(yīng)一個(gè)修改物理數(shù)據(jù)頁(yè)的動(dòng)作。根據(jù)記錄內(nèi)容的不同,RREC 可以分為兩類(lèi):物理RREC 和邏輯 RREC。物理 RREC 記錄的是數(shù)據(jù)頁(yè)的變化情況,內(nèi)容包括:操作類(lèi)型、修改數(shù)據(jù)頁(yè)地址、頁(yè)內(nèi)偏移、數(shù)據(jù)頁(yè)上的修改內(nèi)容,如果是變長(zhǎng)類(lèi)型的 Redo 記錄,在 RREC 記錄頭之后還會(huì)有一個(gè)兩字節(jié)的長(zhǎng)度信息。邏輯 RREC 記錄的是一些數(shù)據(jù)庫(kù)邏輯操作步驟,主要包括:事務(wù)啟動(dòng)、事務(wù)提交、事務(wù)回滾、字典封鎖、事務(wù)封鎖、B
55、 樹(shù)封鎖、字典淘汰等, 一般只在配置為 Primary 模式時(shí)才產(chǎn)生邏輯 RREC。PTX_headerdataPTX RRECflaglenLSNRREC1RREC2.RRECnRREC_headerdatatypeADDR(ts_id fil_id page_id offset_id)len.data RRECtypesub_typelen.圖 4.8 PTX/RREC 結(jié)構(gòu)圖DMDSC 集群中,各個(gè)節(jié)點(diǎn)擁有獨(dú)立的日志文件,Redo 日志的 LSN 值也是順序遞增的, Redo 日志只會(huì)寫(xiě)入當(dāng)前數(shù)據(jù)庫(kù)實(shí)例的聯(lián)機(jī)日志文件,與集群系統(tǒng)中的其他數(shù)據(jù)庫(kù)實(shí)例沒(méi)有關(guān)系??紤]到所有節(jié)點(diǎn)都可以修改數(shù)據(jù),同
56、一個(gè)數(shù)據(jù)頁(yè)可能由不同節(jié)點(diǎn)先后修改,為了體現(xiàn)修改的先后順序,確保故障恢復(fù)時(shí)能夠按照操作的順序?qū)?shù)據(jù)正確恢復(fù)。DMDSC 集群要求對(duì)同一個(gè)數(shù)據(jù)頁(yè)的修改,產(chǎn)生的 LSN 值是全局遞增的,各個(gè)節(jié)點(diǎn)對(duì)同一數(shù)據(jù)頁(yè)的修改在日志系統(tǒng)中是嚴(yán)格有序的。但是,針對(duì)不同數(shù)據(jù)頁(yè)的修改并不要求 LSN 是全局遞增的,也就是說(shuō)只有多個(gè)節(jié)點(diǎn)修改相同數(shù)據(jù)頁(yè)時(shí),才會(huì)產(chǎn)生全局 LSN 同步問(wèn)題。并且 LSN 全局同步, 是在緩存交換時(shí)附帶完成的,并不會(huì)增加系統(tǒng)的額外開(kāi)銷(xiāo)。與單節(jié)點(diǎn)系統(tǒng)相比,DMDSC 的日志系統(tǒng)存在以下差異:本地 Redo 日志系統(tǒng)中,LSN 值保證是遞增的,后提交物理事務(wù)的 LSN 值一定更大;但順序提交的兩個(gè)物
57、理事務(wù)產(chǎn)生的 LSN 值,不能保證一定是連續(xù)的全局 Redo 日志系統(tǒng)中,LSN 值不再?lài)?yán)格保證唯一性。不同節(jié)點(diǎn)可能存在 LSN 值相等的重做日志記錄故障重啟時(shí),控制節(jié)點(diǎn)需要重做所有節(jié)點(diǎn)的 Redo 日志,重做過(guò)程中會(huì)根據(jù) LSN 排序,從小到大依次重做聯(lián)機(jī) Redo 日志文件需要保存在共享存儲(chǔ)中回滾記錄管理DMDSC 集群的多版本并發(fā)控制(MVCC)實(shí)現(xiàn)策略是,通過(guò)回滾記錄獲取數(shù)據(jù)的歷史版本,通過(guò)活動(dòng)事務(wù)視圖判斷事務(wù)可見(jiàn)性、確定獲取指定版本數(shù)據(jù)。因此,回滾記錄也必須進(jìn)行全局維護(hù),有可能在節(jié)點(diǎn)間進(jìn)行傳遞。與單節(jié)點(diǎn)一樣,DMDSC 集群中只有一個(gè)回滾表空間,回滾記錄保存在回滾頁(yè)中,回滾頁(yè)與保存用
58、戶(hù)記錄的數(shù)據(jù)頁(yè)一樣,由 Buffer 系統(tǒng)管理,并通過(guò)緩存交換機(jī)制實(shí)現(xiàn)全局?jǐn)?shù)據(jù)共享。為了減少并發(fā)沖突,提高系統(tǒng)性能,DMDSC 集群中為每個(gè)節(jié)點(diǎn)分配了一個(gè)單獨(dú)的回滾段(Segment),雖然這些回滾段位于同一個(gè)回滾表空間中,但是各個(gè)節(jié)點(diǎn)的回滾頁(yè)申請(qǐng)、釋放,并不會(huì)產(chǎn)生全局沖突。與重做日志一樣,DMDSC 集群故障重啟時(shí),控制節(jié)點(diǎn)會(huì)掃描所有節(jié)點(diǎn)的回滾段,收集未提交事務(wù)進(jìn)行回滾,收集已提交事務(wù)進(jìn)行 Purge 操作。DMCSS 介紹DMCSS(Dameng Cluster Synchronization Services)達(dá)夢(mèng)集群同步服務(wù), 使用 DMASM 集群或 DMDSC 集群都必須要配置 D
59、MCSS 服務(wù)。在 DMASM 集群或 DMDSC 集群中,每個(gè)節(jié)點(diǎn)都需要配置一個(gè) DMCSS 服務(wù)。這些 DMCSS 服務(wù)自身也構(gòu)成一個(gè)集群,DMCSS 集群中負(fù)責(zé)監(jiān)控、管理整個(gè) DMASM 集群和 DMDSC 集群的節(jié)點(diǎn)稱(chēng)為控制節(jié)點(diǎn)(control node),其他 DMCSS 節(jié)點(diǎn)稱(chēng)為普通節(jié)點(diǎn)(normal node)。DMCSS 普通節(jié)點(diǎn)不參與 DMASM 集群和 DMDSC 集群管理,當(dāng) DMCSS 控制節(jié)點(diǎn)故障時(shí),會(huì)從活動(dòng)的普通節(jié)點(diǎn)中重新選取一個(gè)DMCSS 控制節(jié)點(diǎn)。DMCSS 工作的基本原理是:在 Voting disk 中,為每個(gè)被監(jiān)控對(duì)象(dmasmsvr、dmserver、
60、DMCSS)分配一片獨(dú)立的存儲(chǔ)區(qū)域,被監(jiān)控對(duì)象定時(shí)向 Voting Disk 寫(xiě)入信息(包括時(shí)間戳、狀態(tài)、命令、以及命令執(zhí)行結(jié)果等);DMCSS 控制節(jié)點(diǎn)定時(shí)從 Voting Disk讀取信息,檢查被監(jiān)控對(duì)象的狀態(tài)變化,啟動(dòng)相應(yīng)的處理流程;被監(jiān)控對(duì)象只會(huì)被動(dòng)的接收DMCSS 控制節(jié)點(diǎn)命令,執(zhí)行并響應(yīng)。DMCSS 主要功能包括:寫(xiě)入心跳信息、選舉 DMCSS 控制節(jié)點(diǎn)、選取 DMASM/DMDSC 控制節(jié)點(diǎn)、管理被監(jiān)控對(duì)象的啟動(dòng)流程、集群狀態(tài)監(jiān)控、節(jié)點(diǎn)故障處理、節(jié)點(diǎn)重加入等,DMCSS 還可以接收并執(zhí)行 DMCSSM 指令。啟動(dòng)命令./dmcss HELP格式: dmcss.exe KEYWOR
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車(chē)租賃合同
- 對(duì)照六檢查個(gè)人自我剖析材料與反思總結(jié)三篇
- 房地產(chǎn)稅收優(yōu)惠政策解析培訓(xùn)課件:張強(qiáng)
- 2025年安徽省職教高考《語(yǔ)文》考前沖刺模擬試題庫(kù)(附答案)
- 2025年江西中醫(yī)藥高等專(zhuān)科學(xué)校高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年江蘇安全技術(shù)職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年武漢城市職業(yè)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年新疆建設(shè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 專(zhuān)題08 走進(jìn)法治天地 帶解析
- 工程維修勞務(wù)分包合同
- 江西省部分學(xué)校2024-2025學(xué)年高三上學(xué)期1月期末英語(yǔ)試題(含解析無(wú)聽(tīng)力音頻有聽(tīng)力原文)
- GA/T 2145-2024法庭科學(xué)涉火案件物證檢驗(yàn)實(shí)驗(yàn)室建設(shè)技術(shù)規(guī)范
- 2024年度窯爐施工協(xié)議詳例細(xì)則版B版
- 尿毒癥替代治療
- 基底節(jié)腦出血護(hù)理查房
- 工程公司總經(jīng)理年終總結(jié)
- 2024年海南省高考地理試卷(含答案)
- 【企業(yè)盈利能力探析的國(guó)內(nèi)外文獻(xiàn)綜述2400字】
- 三年級(jí)上冊(cè)數(shù)學(xué)口算題1000道帶答案
- 蘇教版(2024新版)一年級(jí)上冊(cè)科學(xué)全冊(cè)教案教學(xué)設(shè)計(jì)
- 特種設(shè)備日管控、周排查、月調(diào)度模板
評(píng)論
0/150
提交評(píng)論