




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
達(dá)夢(mèng)技術(shù)叢書
DM8共享存儲(chǔ)集群
前百
概述
本文檔主要介紹DM共享存儲(chǔ)集群的系統(tǒng)特性、基本概念、實(shí)現(xiàn)原理、主要功能,以及
如何搭建DM共享存儲(chǔ)集群并使用等。
讀者對(duì)象
本文檔主要適用于DM數(shù)據(jù)庫的:
?開發(fā)工程師
?測(cè)試工程師
?技術(shù)支持工程師
?數(shù)據(jù)庫管理員
通用約定
在本文檔中可能出現(xiàn)下列標(biāo)志,它們所代表的含義如下:
表0.1標(biāo)志含義
志說明
△越告
表示可能導(dǎo)致系統(tǒng)損壞、數(shù)據(jù)丟失或不可預(yù)知的結(jié)果。
=>C3?
1表示可能導(dǎo)致性能降低、服務(wù)不可用。
注意:
可以幫助您解決某個(gè)問題或節(jié)省您的時(shí)間。
鼎4:
表示正文的附加信息,是對(duì)正文的強(qiáng)調(diào)和補(bǔ)充。
說明:
II
DM8共享存儲(chǔ)集群
在本文檔中可能出現(xiàn)下列格式,它們所代表的含義如下:
表0.2格式含義
格式說明
宋體表示正文。
Couriernew表示代碼或者屏幕顯示內(nèi)容。
表示命令行中的關(guān)鍵字(命令中保持不變、必須照輸?shù)牟糠郑┗蛘哒闹袕?qiáng)調(diào)的內(nèi)容。
粗體
標(biāo)題、警告、注意、小竅門、說明等內(nèi)容均采用粗體。
<>語法符號(hào)中,表示一個(gè)語法對(duì)象。
語法符號(hào)中,表示定義符,用來定義一個(gè)語法對(duì)象。定義符左邊為語法對(duì)象,右邊為相
::=
應(yīng)的語法描述。
1語法符號(hào)中,表示或者符,限定的語法選項(xiàng)在實(shí)際語句中只能出現(xiàn)一個(gè)。
語法符號(hào)中,大括號(hào)內(nèi)的語法選項(xiàng)在實(shí)際的語句中可以出現(xiàn)0...N次(N為大于0的自然
(}
數(shù)),但是大括號(hào)本身不能出現(xiàn)在語句中。
語法符號(hào)中,中括號(hào)內(nèi)的語法選項(xiàng)在實(shí)際的語句中可以出現(xiàn)0...1次,但是中括號(hào)本身
[]
不能出現(xiàn)在語句中。
關(guān)鍵字在DM_SQL語言中具有特殊意義,在SQL語法描述中,關(guān)鍵字以大寫形式出現(xiàn)。
關(guān)鍵字
但在實(shí)際書寫SQL語句時(shí),關(guān)鍵字既可以大寫也可以小寫。
訪問相關(guān)文檔
如果您安裝了DM數(shù)據(jù)庫,可在安裝目錄的、'\d°C”子目錄中找到DM數(shù)據(jù)庫的各種手冊(cè)
與技術(shù)叢書。
DM8共享存儲(chǔ)集群
目錄
1引言1
2DMDSC概述2
2.1系統(tǒng)特性4
2.2基本概念5
2.3使用說明8
3DMDSC使用的環(huán)境10
4DMDSC實(shí)現(xiàn)原理11
4.1事務(wù)管理11
4.2封鎖管理13
4.3閂管理13
4.4緩存交換14
4.5重做日志管理20
4.6回滾記錄管理22
5DMCSS介紹23
5.1啟動(dòng)命令23
5.2心跳信息24
5.3選舉DMCSS控制節(jié)點(diǎn)24
5.4選取監(jiān)控對(duì)象控制節(jié)點(diǎn)24
5.5啟動(dòng)流程管理24
5.6狀態(tài)檢測(cè)24
5.7故障處理25
5.8節(jié)點(diǎn)重加入25
5.9集群指令26
5.10狀態(tài)查看26
5.11主普通節(jié)點(diǎn)顯示信息差異28
5.12配置V1P28
5.13注意事項(xiàng)29
6DMASM介紹30
6.1DMASM概述30
6.2DMASM基本概念31
6.3DMASM原理32
6.4DMASM技術(shù)指標(biāo)35
6.5DMASM使用說明36
6.6DMASMCMD37
6.7DMASMSVR40
6.8DMASMAPI41
6.9DMASMTOOL44
IV
DM8共享存儲(chǔ)集群
7DMDSC啟動(dòng)、關(guān)閉流程50
8DMDSC故障處理51
9DMDSC節(jié)點(diǎn)重加入53
10配置說明54
10.1DMDCR_CFG.INI54
10.2DMDCR.INI58
10.3DMINIT.INI60
10.4MAL系統(tǒng)配置文件(DMMAL.INI、DMASVRMAL.INI)63
10.5DM.INI64
11DMDSC搭建67
11.1環(huán)境準(zhǔn)備67
11.2搭建2節(jié)點(diǎn)DMDSC(DMASM)67
11.3搭建2節(jié)點(diǎn)DMDSC(裸設(shè)備)74
11.4單節(jié)點(diǎn)搭建DMDSC測(cè)試環(huán)境79
12故障自動(dòng)重連80
12.1配置服務(wù)名(DM_SVC.CONF)80
12.2體驗(yàn)故障自動(dòng)重連81
13動(dòng)態(tài)擴(kuò)展節(jié)點(diǎn)83
13.1動(dòng)態(tài)擴(kuò)展節(jié)點(diǎn)流程83
14監(jiān)控DMDSC89
14.1DMCSSM監(jiān)視器89
14.2動(dòng)態(tài)視圖95
15備份還原114
15.1DMDSC和單節(jié)點(diǎn)差異114
15.2遠(yuǎn)程歸檔115
15.3DMDSC備份集117
15.4DMDSC備份還原實(shí)例117
15.5使用說明119
16DMDSC使用說明120
16.1統(tǒng)一組件版本120
16.2提升DMDSC性能120
16.3心跳說明121
16.4重新格式化DMASM121
16.5重新初始化DMDSC庫122
16.6內(nèi)部網(wǎng)絡(luò)異常122
16.7創(chuàng)建DBLINK123
16.8節(jié)點(diǎn)硬件故障,如何啟動(dòng)DMDSC集群125
16.9MOUNT/OPEN操作125
V
DM8共享存儲(chǔ)集群
16.10裸設(shè)備路徑變化125
17附錄127
17.1DMASMAP工接口127
17.2DMCSSM接口153
DM8共享存儲(chǔ)集群
1引言
DM共享存儲(chǔ)數(shù)據(jù)庫集群的英文全稱DMDataSharedCluster,簡稱DMDSCo
DM共享存儲(chǔ)數(shù)據(jù)庫集群,允許多個(gè)數(shù)據(jù)庫實(shí)例同時(shí)訪問、操作同一數(shù)據(jù)庫,具有高可
用、高性能、負(fù)載均衡等特性。DMDSC支持故障自動(dòng)切換和故障自動(dòng)重加入,某一個(gè)數(shù)據(jù)
庫實(shí)例故障后,不會(huì)導(dǎo)致數(shù)據(jù)庫服務(wù)無法提供。
本文主要介紹DMDSC集群的功能、概念、實(shí)現(xiàn)原理,并舉例說明搭建過程和管理方法。本
手冊(cè)可以幫助用戶:
?了解DMDSC/DMCSS/DMASM等集群相關(guān)概念
?了解DMASM分布式文件系統(tǒng)、DMDSC集群,以及基于DMASM的DMDSC集群配置
過程和應(yīng)用
1
DM8共享存儲(chǔ)集群
2DMDSC概述
DMDSC集群是一個(gè)多實(shí)例、單數(shù)據(jù)庫的系統(tǒng)。多個(gè)數(shù)據(jù)庫實(shí)例可以同時(shí)訪問、修改同
一個(gè)數(shù)據(jù)庫的數(shù)據(jù)。用戶可以登錄集群中的任意一個(gè)數(shù)據(jù)庫實(shí)例,獲得完整的數(shù)據(jù)庫服務(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è)備和
DMASMo這兩種存儲(chǔ)的區(qū)別在于后者在前者的基礎(chǔ)上,部署并使用了DMASM文件系統(tǒng)。為
了方便對(duì)裸設(shè)備上的磁盤或文件進(jìn)行管理,推薦用戶使用后者。
DMDSC集群主要由數(shù)據(jù)庫和數(shù)據(jù)庫實(shí)例、共享存儲(chǔ)、本地存儲(chǔ)、通信網(wǎng)絡(luò)、以及集群控
制軟件DMCSS組成。下面以部署了DMASM的DMDSC集群為例,展示DMDSC集群系統(tǒng)結(jié)
構(gòu)(圖2.1)。
2
DM8共享存儲(chǔ)集群
a
a
■
圖2.1DMDSC系統(tǒng)結(jié)構(gòu)圖
數(shù)據(jù)庫和數(shù)據(jù)庫實(shí)例
數(shù)據(jù)庫(Database)是一個(gè)文件集合(包括數(shù)據(jù)文件、臨時(shí)文件、重做日志文件和控
制文件等),保存在物理磁盤或文件系統(tǒng)中。
數(shù)據(jù)庫實(shí)例就是一組操作系統(tǒng)進(jìn)程(或者是一個(gè)多線程的進(jìn)程)以及一些內(nèi)存。通過數(shù)
據(jù)庫實(shí)例,可以操作數(shù)據(jù)庫,一般情況下,我們?cè)L問、修改數(shù)據(jù)庫都是通過數(shù)據(jù)庫實(shí)例來完成
的。
共享存儲(chǔ)
3
DM8共享存儲(chǔ)集群
DMDSC集群中,為了實(shí)現(xiàn)多個(gè)實(shí)例同時(shí)訪問、修改數(shù)據(jù),要求將數(shù)據(jù)文件、控制文件、
日志文件保存在共享存儲(chǔ)上。DMDSC支持使用裸設(shè)備或DMASM文件系統(tǒng)作為共享存儲(chǔ)。
配置DMDSC集群需要的DCR、Votingdisk也必須保存在共享存儲(chǔ)上(目前僅支持
裸設(shè)備存放DCR和Votingdisk)。
本地存儲(chǔ)
DMDSC集群中,本地存儲(chǔ)用來保存配置文件(記錄數(shù)據(jù)庫實(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ù)庫實(shí)例之間交換信息和數(shù)據(jù),MAL鏈路使用的就是內(nèi)部網(wǎng)
絡(luò)。公共網(wǎng)絡(luò)用于對(duì)外提供數(shù)據(jù)庫服務(wù),用戶使用公共網(wǎng)絡(luò)地址登錄DMDSC集群,訪問數(shù)
據(jù)庫。
集群控制
集群控制是集群系統(tǒng)的重要組成部分。DMCSS就是一款集群控制軟件,專門負(fù)責(zé)監(jiān)控
集群中各個(gè)節(jié)點(diǎn)的運(yùn)行狀態(tài)。DMCSS主要功能包括:管理集群的啟動(dòng)和關(guān)閉,控制節(jié)點(diǎn)故
障處理,以及管理節(jié)點(diǎn)重加入流程。
2.1系統(tǒng)特性
DMDSC的主要特點(diǎn)包括:
■高可用性只要集群中有一個(gè)活動(dòng)節(jié)點(diǎn),就能正常提供數(shù)據(jù)庫服務(wù)。
■高吞吐量多個(gè)節(jié)點(diǎn)同時(shí)提供數(shù)據(jù)庫服務(wù),有效提升集群的整體事務(wù)處理能力。
■負(fù)載均衡用戶的連接請(qǐng)求被平均分配到集群中的各個(gè)節(jié)點(diǎn),確保各個(gè)節(jié)點(diǎn)的負(fù)
載大致平衡。
2.1.1高可用性
DMDSC集群提供了一種達(dá)夢(mèng)數(shù)據(jù)庫高可用解決方案。當(dāng)出現(xiàn)系統(tǒng)故障、硬件故障、或
人為操作失誤時(shí),DMCSS檢測(cè)故障、并自動(dòng)將故障節(jié)點(diǎn)踢出集群,保證數(shù)據(jù)庫服務(wù)的正常
提供。
故障節(jié)點(diǎn)的用戶連接會(huì)自動(dòng)切換到活動(dòng)節(jié)點(diǎn),這些連接上的未提交事務(wù)將被回滾,己提
4
DM8共享存儲(chǔ)集群
交事務(wù)不受影響;活動(dòng)節(jié)點(diǎn)的用戶連接不受影響,正在執(zhí)行的操作將被掛起一段時(shí)間,在故障
處理完成后,繼續(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)。因此,通過部署
DMDSC集群,可以在一定程度上避免由軟、硬件故障引起的非計(jì)劃停機(jī),減少這些意外給
客戶帶來的損失。
與同樣使用共享存儲(chǔ)的雙機(jī)熱備系統(tǒng)相比,DMDSC具有更快的故障處理速度。雙機(jī)熱
備系統(tǒng)故障切換時(shí),需要完整重做Redo日志,所有數(shù)據(jù)需要重新從磁盤加載;而DMDSC
故障處理時(shí),只需要重做故障節(jié)點(diǎn)的Redo日志,并且大部分?jǐn)?shù)據(jù)頁已經(jīng)包含在處理節(jié)點(diǎn)的
Buffer緩沖區(qū)中,不需要重新從磁盤加載。
2.1.2高吞吐量
DMDSC集群中包含多個(gè)數(shù)據(jù)庫實(shí)例,數(shù)據(jù)庫實(shí)例訪問獨(dú)立的處理器、內(nèi)存,數(shù)據(jù)庫實(shí)
例之間通過緩存交換技術(shù)提升共享數(shù)據(jù)的訪問速度,每個(gè)數(shù)據(jù)庫實(shí)例都可以接收并處理用戶
的各種數(shù)據(jù)庫請(qǐng)求。
與單節(jié)點(diǎn)數(shù)據(jù)庫管理系統(tǒng)相比,DMDSC集群可以充分利用多臺(tái)物理機(jī)器的處理能力,
支撐更多的用戶連接請(qǐng)求,提供更高的吞吐量。與雙機(jī)熱備系統(tǒng)相比,DMDSC集群不存在
始終保持備用狀態(tài)的節(jié)點(diǎn),不會(huì)造成硬件資源的浪費(fèi)。
2.1.3負(fù)載均衡
用戶通過配置DM數(shù)據(jù)庫連接服務(wù)名來訪問DMDSC集群,可以實(shí)現(xiàn)節(jié)點(diǎn)間的自動(dòng)負(fù)載
均衡,用戶的數(shù)據(jù)庫連接請(qǐng)求會(huì)被自動(dòng)、平均地分配到DMDSC集群中的各個(gè)節(jié)點(diǎn)。并且連
接服務(wù)名支持JDBC、DPI、ODBC、DCI>.NetProvider等各種數(shù)據(jù)庫接口。
2.2基本概念
集群(Cluster)
是由兩個(gè)或多個(gè)節(jié)點(diǎn)(服務(wù)器)構(gòu)成的一種松散耦合的計(jì)算機(jī)節(jié)點(diǎn)集合,這個(gè)集合在整
個(gè)網(wǎng)絡(luò)中表現(xiàn)為一個(gè)單一的系統(tǒng),并通過單一接口進(jìn)行使用和管理。大多數(shù)模式下,集群中的
所有計(jì)算機(jī)都擁有一個(gè)相同的名稱,集群內(nèi)任意一個(gè)系統(tǒng)都可以被所有的網(wǎng)絡(luò)用戶使用。
5
DM8共享存儲(chǔ)集群
每個(gè)集群節(jié)點(diǎn)都是運(yùn)行其自己進(jìn)程的獨(dú)立服務(wù)器,因此每個(gè)節(jié)點(diǎn)都有自己的運(yùn)算能力。這些
進(jìn)程間彼此通信進(jìn)行協(xié)調(diào),協(xié)同起來向用戶提供應(yīng)用程序、系統(tǒng)資源和數(shù)據(jù)以及計(jì)算能力。本
書中涉及到的集群有三種:DMDSC集群,DMCSS集群和DMASM集群。
DMDSC集群
DMDSC集群由若干數(shù)據(jù)庫實(shí)例(Instance)組成,這些實(shí)例間通過網(wǎng)絡(luò)(MAL鏈路)
連接,通過一個(gè)特殊的軟件(DMCSS,集群同步服務(wù))的協(xié)助,共同操作一個(gè)數(shù)據(jù)庫。從外
部用戶視角來看,他們看到的只是一個(gè)數(shù)據(jù)庫。數(shù)據(jù)文件、控制文件等文件在集群中只有一份,
所有節(jié)點(diǎn)平等地使用這些數(shù)據(jù)文件。這份數(shù)據(jù)一般放在共享存儲(chǔ)上,每個(gè)服務(wù)器通過光纖連接
到共享存儲(chǔ)上。
DMDSC支持使用裸設(shè)備或DMASM文件系統(tǒng)存放共享數(shù)據(jù)庫文件。為了方便對(duì)裸設(shè)備上
的磁盤或文件進(jìn)行管理,DM推薦使用DMASM文件系統(tǒng)。
裸設(shè)備(RawDevice)
一種沒有經(jīng)過格式化,不被Unix/Linux通過文件系統(tǒng)來讀取的特殊字符設(shè)備,允許
直接訪問磁盤而不經(jīng)過操作系統(tǒng)的高速緩存和緩沖器。因?yàn)槭褂寐阍O(shè)備避免了經(jīng)過操作系統(tǒng)
這一層,數(shù)據(jù)直接從磁盤到數(shù)據(jù)庫服務(wù)器進(jìn)行傳輸,所以使用裸設(shè)備對(duì)于讀寫頻繁的數(shù)據(jù)庫應(yīng)
用來說,可以有效提高數(shù)據(jù)庫系統(tǒng)的性能。但是裸設(shè)備的使用有很多限制,比如Linux
主機(jī)的每個(gè)磁盤最多能劃分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ù)庫文件空間不夠或者空間浪費(fèi)的情況,需要根據(jù)應(yīng)
用實(shí)際情況提前分配好裸設(shè)備大小。
DMASM(DMAutoStorageManager)
是一個(gè)專用的分布式文件系統(tǒng)。支持多個(gè)節(jié)點(diǎn)同時(shí)訪問、修改數(shù)據(jù)文件,并減少直接使
用裸設(shè)備存在的諸多限制。DMASM文件系統(tǒng)把指定的裸設(shè)備打包管理,使用DMASM文件系
統(tǒng)可以方便地創(chuàng)建、刪除、擴(kuò)展、截?cái)辔募挥脫?dān)心空間不足(空間不足可以通過增加磁
盤擴(kuò)展空間)或空間浪費(fèi);不用考慮文件個(gè)數(shù)限制;可以方便查看空間使用情況;可以在線通
過增加裸設(shè)備的方式擴(kuò)展總體使用空間。
DMASM不是一個(gè)通用的文件系統(tǒng),只能通過dmasmapi接口訪問。理論上通過
dmasmapi接口可以存放任何文件,但在DMDSC集群中,一般只建議將需要在節(jié)點(diǎn)間共享
訪問的文件存在DMASM文件中,如數(shù)據(jù)文件、聯(lián)機(jī)Redo日志文件、控制文件等。歸檔Redo
日志文件、備份集文件也可以考慮保存到DMASM文件系統(tǒng)中,避免還原、恢復(fù)等操作時(shí)節(jié)
6
DM8共享存儲(chǔ)集群
點(diǎn)間的文件拷貝,簡化備份、還原操作。其他的一些本地配置文件比如dm.ini等保存在
本地磁盤中。
DMDSC集群中若配置DMASM,則要求DMASM站點(diǎn)數(shù)和DMCSS站點(diǎn)數(shù)一致,且只能存
在一個(gè)DMCSS組和一個(gè)DMASM組。這些DMASM站點(diǎn)共同構(gòu)成了一個(gè)DMASM集群。DMCSS
(DMClusterSynchronizationServices)
DMCSS是DM集群同步服務(wù)的簡稱,是DMDSC集群應(yīng)用的基礎(chǔ),使用DMDSC集群或者
DMASM集群都必須要配置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í),可以不配置CSSo
DMCSSM(DMClusterSynchronizationSexrvicesMonitor)
DMCSSM(DMClusterSynchronizationServicesMonitor)是DM集群監(jiān)
視器的簡稱。DMCSSM與DMCSS相互通信,獲取并監(jiān)控整個(gè)集群系統(tǒng)的狀態(tài)信息。DMCSSM
還提供了一系列的命令來管理、維護(hù)集群。
同一個(gè)集群中,允許最多同時(shí)啟動(dòng)10個(gè)監(jiān)視器,一般建議將監(jiān)視器放在獨(dú)立的第三方
機(jī)器上。
DCR(DMClusterwareRegistry)
DCR是DM集群注冊(cè)表的簡稱,用于存儲(chǔ)、維護(hù)集群配置的詳細(xì)信息,整個(gè)集群環(huán)境共
享DCR配置信息,包括DMDSC,DMASM、DMCSS資源,包括實(shí)例名、監(jiān)聽端口、集群中故
障節(jié)點(diǎn)信息等。DCR必須存儲(chǔ)在集群中所有節(jié)點(diǎn)都可以訪問到的共享存儲(chǔ)中,并且只支持裸
設(shè)備。在一個(gè)集群環(huán)境中只能配置一個(gè)DCR磁盤。
表決磁盤(VotingDisk)
表決磁盤記錄了集群成員信息,DM集群通過VotingDisk進(jìn)行心跳檢測(cè),確定集群
中節(jié)點(diǎn)的狀態(tài),判斷節(jié)點(diǎn)是否出現(xiàn)故障。當(dāng)集群中出現(xiàn)網(wǎng)絡(luò)故障時(shí),使用VotingDisk
來確定哪些DMDSC節(jié)點(diǎn)應(yīng)該被踢出集群。表決磁盤還用來傳遞命令,在集群的不同狀態(tài)(啟
動(dòng)、節(jié)點(diǎn)故障、節(jié)點(diǎn)重加入等)DMCSS通過VotingDisk傳遞控制命令,通知節(jié)點(diǎn)執(zhí)行
相應(yīng)命令。VotingDisk必須存儲(chǔ)在集群中所有節(jié)點(diǎn)都可以訪問到的共享存儲(chǔ)中,并且只
支持裸設(shè)備。在一個(gè)集群環(huán)境中只能配置一個(gè)表決磁盤。
集群中各實(shí)例啟動(dòng)時(shí),通過訪問DCR獲取集群配置信息。被監(jiān)控實(shí)例從VotingDisk
讀取監(jiān)控命令,并向VotingDisk寫入命令響應(yīng)以及自身心跳信息;DMCSS也向Voting
7
DM8共享存儲(chǔ)集群
Disk寫入自己的心跳信息,并從VotingDisk訪問各被監(jiān)控節(jié)點(diǎn)的運(yùn)行情況,并將監(jiān)控
命令寫入VotingDisk,供被監(jiān)控實(shí)例訪問執(zhí)行。
HeartBeat(心跳機(jī)制)
DMCSS的心跳機(jī)制是通過VotingDisk的DiskHeartbeat..這種機(jī)制有最大時(shí)延,
只有超過最大時(shí)延,才認(rèn)為監(jiān)測(cè)對(duì)象故障。
MAL鏈路
MAL系統(tǒng)是達(dá)夢(mèng)數(shù)據(jù)庫基于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)。一旦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客戶端進(jìn)程之間通過共享內(nèi)存方式共享DMASM文件到實(shí)際磁
盤的映射關(guān)系。
VIP
V1P(虛擬IP地址),是一個(gè)不與特定計(jì)算機(jī)或者計(jì)算機(jī)中的網(wǎng)絡(luò)接口相連的IP地址。
數(shù)據(jù)包被發(fā)送到這個(gè)V1P地址,但是所有的數(shù)據(jù)還是經(jīng)過真實(shí)的網(wǎng)絡(luò)接口。在集群環(huán)境中,
應(yīng)用通過VIP連接數(shù)據(jù)庫服務(wù)器,實(shí)例故障后,把實(shí)例配置的V1P設(shè)置到其他活動(dòng)節(jié)點(diǎn)(叫
做IP漂移),這樣應(yīng)用可以不用修改配置,繼續(xù)訪問數(shù)據(jù)庫服務(wù)。
2.3使用說明
目前DMDSC在功能上與單機(jī)版DM相比存在一定限制,暫不支持下列功能:
1.支持定時(shí)器,但只有控制節(jié)點(diǎn)上配置的定時(shí)器生效。只支持脫機(jī)配置定時(shí)器,不支持
聯(lián)機(jī)配置
2.支持作業(yè),但只有控制節(jié)點(diǎn)上支持執(zhí)行作業(yè)
3.不支持HUGE表
4.不支持外部表
5.不支持堆表
8
DM8共享存儲(chǔ)集群
6.不支持類型別名相關(guān)操作
7.不支持table級(jí)別的spacelimit功能
8.不支持全文索引、詞庫相關(guān)操作
9.不支持安全版本、審計(jì)相關(guān)操作
10.不支持DBMS_ALERT、DBMS_LOCK包
11.不支持?jǐn)?shù)據(jù)復(fù)制
12.不能與MPP集群混合使用
13.不支持為表空間文件指定mirror_path
14.不支持閃回查詢,不允許打開閃回功能
9
DM8共享存儲(chǔ)集群
3DMDSC使用的環(huán)境
部署DMDSC集群所用到的硬件和軟件環(huán)境。
■硬件環(huán)境
1主機(jī)兩臺(tái)。用于部署數(shù)據(jù)庫實(shí)例dmserver、DMCSS、DMASMSVR。內(nèi)存大小要求:
至少2GB。
1共享存儲(chǔ)。兩臺(tái)機(jī)器可以同時(shí)訪問到的,可以劃分為裸設(shè)備的磁盤。
上網(wǎng)卡。每臺(tái)主機(jī)至少準(zhǔn)備2塊網(wǎng)卡。提供內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)服務(wù)。
■軟件環(huán)境
X操作系統(tǒng)。Linux、Unix、Windows等。
1達(dá)夢(mèng)數(shù)據(jù)庫軟件。安裝好DM數(shù)據(jù)庫軟件之后,將擁有配置和管理DMDSC所需的
所有軟件:dmserver>dminit、dmasmcmd、dmasmsvr、dmasmtool、dmcss、dmcssm
等。這些軟件位于安裝目錄/dmdbms/bin中。
10
DM8共享存儲(chǔ)集群
4DMDSC實(shí)現(xiàn)原理
DMDSC是一個(gè)共享存儲(chǔ)的數(shù)據(jù)庫集群系統(tǒng)。多個(gè)數(shù)據(jù)庫實(shí)例同時(shí)訪問、修改同一個(gè)數(shù)
據(jù)庫,因此必然帶來了全局并發(fā)問題.DMDSC集群基于單節(jié)點(diǎn)數(shù)據(jù)庫管理系統(tǒng)之上,改造
了Buffer緩沖區(qū)、事務(wù)系統(tǒng)、封鎖系統(tǒng)和日志系統(tǒng)等,來適應(yīng)共享存儲(chǔ)集群節(jié)點(diǎn)間的全
局并發(fā)訪問控制要求。同時(shí),引入緩存交換技術(shù),提升數(shù)據(jù)在節(jié)點(diǎn)間的傳遞效率。
4.1事務(wù)管理
多版本并發(fā)控制(MVCC)可以確保數(shù)據(jù)庫的讀操作與寫操作不會(huì)相互阻塞,大幅度提
升數(shù)據(jù)庫的并發(fā)度以及使用體驗(yàn),大多數(shù)主流商用數(shù)據(jù)庫管理系統(tǒng)都實(shí)現(xiàn)了MVCCoDM的
多版本并發(fā)控制實(shí)現(xiàn)策略是:數(shù)據(jù)頁中只保留物理記錄的最新版本數(shù)據(jù),通過回滾記錄維護(hù)
數(shù)據(jù)的歷史版本,通過活動(dòng)事務(wù)視圖(V$DSC_TRX_V1EW)判斷事務(wù)可見性,確定獲取哪
一個(gè)版本的數(shù)據(jù)。
每一條物理記錄中包含了兩個(gè)字段:TID和RPTRoTID保存修改記錄的事務(wù)號(hào),RPTR
保存回滾段中上一個(gè)版本回滾記錄的物理地址。插入、刪除和更新物理記錄時(shí),RPTR指向
操作生成的回滾記錄的物理地址。
回滾記錄與物理記錄一樣,也包含了T1D和RPTR這兩個(gè)字段。T1D保存產(chǎn)生回滾記
錄時(shí)物理記錄上的T1D值(也就是上一個(gè)版本的事務(wù)號(hào)),RPTR保存回滾段中上一個(gè)版本
回滾記錄的物理地址。
每一條記錄(物理記錄或回滾記錄)代表一個(gè)版本。如下圖所示:
11
DM8共享存儲(chǔ)集群
物理記錄回滾記錄
TID
TRXN
圖4.1各版本之間的關(guān)系
如何找到對(duì)當(dāng)前事務(wù)可見的特定版本數(shù)據(jù),進(jìn)行可見性判斷,是DM實(shí)現(xiàn)多版本并發(fā)控
制的關(guān)鍵。根據(jù)事務(wù)隔離級(jí)別的不同,在事務(wù)啟動(dòng)時(shí)(串行化),或者語句執(zhí)行時(shí)(讀提交),
收集這一時(shí)刻所有活動(dòng)事務(wù),并記錄系統(tǒng)中即將產(chǎn)生的事務(wù)號(hào)NEXT_TID?DM多版本并發(fā)
控制可見性原則:
1.物理記錄T1D等于當(dāng)前事務(wù)號(hào),說明是本事務(wù)修改的物理記錄,物理記錄可見
2.物理記錄T1D不在活動(dòng)事務(wù)表中,并且T1D小于NEXT_T]:D,物理記錄可見
3.物理記錄的TID包含在活動(dòng)事務(wù)表中,或者T1D>=NEXT_T[D,物理記錄不可見
為了在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í)(串行化),
或者語句執(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ù)視圖(GlobalTransactionView,簡稱
GTV);與之對(duì)應(yīng)的是每個(gè)節(jié)點(diǎn)維護(hù)一個(gè)本地事務(wù)視圖(LocalTransactionView,簡
稱LTV),在事務(wù)啟動(dòng)、收集活動(dòng)事務(wù)信息時(shí)通知全局事務(wù)視圖,并獲取相應(yīng)的信息、。
12
DM8共享存儲(chǔ)集群
4.2封鎖管理
數(shù)據(jù)庫管理系統(tǒng)一般采用行鎖進(jìn)行并發(fā)訪問控制,避免多個(gè)用戶同時(shí)修改相同數(shù)據(jù);通
過表鎖、字典鎖控制DDL和DML操作的并發(fā)訪問,保證對(duì)象定義的有效性和數(shù)據(jù)訪問的正
確性。DM則采用了獨(dú)特的封鎖機(jī)制,使用T1D鎖和對(duì)象鎖進(jìn)行并發(fā)訪問控制,有效減少封
鎖沖突、提升系統(tǒng)并發(fā)性能。
T1D鎖以事務(wù)號(hào)為封鎖對(duì)象,每個(gè)事務(wù)啟動(dòng)時(shí),自動(dòng)以獨(dú)占(X)方式對(duì)當(dāng)前事務(wù)號(hào)進(jìn)
行封鎖,由于事務(wù)號(hào)是全局唯一的,因此這把T1D鎖不存在沖突,總是可以封鎖成功。同
時(shí),在4.1事務(wù)管理中,介紹了物理記錄上包含一個(gè)T1D字段,記錄了修改數(shù)據(jù)的事務(wù)號(hào)。執(zhí)
行工NSERT、DELETE、UPDATE操作修改物理記錄時(shí),設(shè)置事務(wù)號(hào)到TID字段的動(dòng)作,
就相當(dāng)于隱式地對(duì)物理記錄上了一把X方式的T1D鎖。因此,通過事務(wù)啟動(dòng)時(shí)創(chuàng)建的T1D
鎖,以及寫入物理記錄的T1D值,DM中所有修改物理記錄的操作都不再需要額外的行鎖,
避免了大量行鎖對(duì)系統(tǒng)資源的消耗,有效減少封鎖沖突。特別是在DMDSC集群中,需要進(jìn)
行全局封鎖,封鎖的代價(jià)比單節(jié)點(diǎn)更高,通過T1D鎖可以有效減少封鎖引發(fā)的性能損失。
對(duì)象鎖則通過對(duì)象1D進(jìn)行封鎖,將對(duì)數(shù)據(jù)字典的封鎖和表鎖合并為對(duì)象鎖,以達(dá)到減
少封鎖沖突、提升系統(tǒng)并發(fā)性能的目的。
與事務(wù)管理類似,DMDSC集群將封鎖管理拆分為全局封鎖服務(wù)(GlobalLocking
Services,簡稱GLS)和本地封鎖服務(wù)(LocalLockingServices,簡稱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ā)訪問的正確性。每個(gè)節(jié)點(diǎn)都
有一個(gè)LLS。各節(jié)點(diǎn)的LLS負(fù)責(zé)與GLS協(xié)調(diào)、通訊,完成事務(wù)的封鎖請(qǐng)求,DMDSC集群中
所有封鎖請(qǐng)求都需要通過LLS向GLS發(fā)起,并在獲得GLS授權(quán)后,才能進(jìn)行后續(xù)操作。
4.3閂管理
閂(Latch)是數(shù)據(jù)庫管理系統(tǒng)的一種內(nèi)部數(shù)據(jù)結(jié)構(gòu),通常用來協(xié)調(diào)、管理Buffer
緩沖區(qū)、字典緩存和數(shù)據(jù)庫文件等資源的并發(fā)訪問。與鎖(Lock)在事務(wù)生命周期中一直
保持不同,閂(Latch)通常只保持極短的一段時(shí)間,比如修改Buffer中數(shù)據(jù)頁內(nèi)容后,
馬上會(huì)釋放。閂(Latch)的封鎖類型也比較簡單,就是共享(Share)和獨(dú)占(Exclusive)
兩種類型。
13
DM8共享存儲(chǔ)集群
為了適用DMDSC集群,我們同樣將閂劃分為全局閂服務(wù)(GlobalLatchServices)
和本地閂服務(wù)(LocalLatchServices)兩個(gè)部分。但是,為了與全局封鎖服務(wù)GLS
和本地封鎖服務(wù)LLS的名字簡稱區(qū)分開來,我們以使用最為頻繁的Buffer來命名全局閂
服務(wù)。因此,全局閂服務(wù)也稱為全局緩沖區(qū)服務(wù)(GlobalBufferServices),簡稱
GBS;本地門服務(wù)也稱為本地緩沖區(qū)服務(wù)(LocalBufferServices),簡稱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ù)頁號(hào)
(PageNo)對(duì)數(shù)據(jù)頁進(jìn)行劃分,分給某一個(gè)節(jié)點(diǎn)的GBS服務(wù)處理。LBS服務(wù)與LLS/LTV
一樣,部署在每一個(gè)節(jié)點(diǎn),LBS服務(wù)根據(jù)用戶請(qǐng)求,向GBS發(fā)起Latch封鎖,或者根據(jù)
GBS請(qǐng)求,回收本地的Latch封鎖。
為了避免兩個(gè)、或多個(gè)節(jié)點(diǎn)同時(shí)修改同一個(gè)數(shù)據(jù)頁,導(dǎo)致數(shù)據(jù)損壞,或者數(shù)據(jù)頁修改過程
中,別的節(jié)點(diǎn)讀取到無效內(nèi)容,DMDSC集群中數(shù)據(jù)頁的封鎖流程產(chǎn)生一定變化,與單節(jié)點(diǎn)
相比,增加了全局Latch封鎖、釋放兩個(gè)步驟。并且,在獲取全局Latch授權(quán)后,仍然需
要進(jìn)行正常的本地Latch封鎖,避免節(jié)點(diǎn)內(nèi)訪問沖突。
4.4緩存交換
根據(jù)目前的硬件發(fā)展?fàn)顩r來看,網(wǎng)絡(luò)的傳輸速度比磁盤的讀、寫速度更快,因此,EMDSC
集群引入了緩存交換(BufferSwap)技術(shù),節(jié)點(diǎn)間的數(shù)據(jù)頁盡可能通過網(wǎng)絡(luò)傳遞,避免
通過磁盤的寫入、再讀出方式在節(jié)點(diǎn)間傳遞數(shù)據(jù),從而減少數(shù)據(jù)庫的10等待時(shí)間,提升系
統(tǒng)的響應(yīng)速度。
緩存交換的實(shí)現(xiàn)基礎(chǔ)是GBS/LBS服務(wù),在GBS/LBS中維護(hù)了Buffer數(shù)據(jù)頁的相關(guān)信
息。包括:1.閂的封鎖權(quán)限(LATCH);2.哪些站點(diǎn)訪問過此數(shù)據(jù)頁(AccessMAP);
3最新數(shù)據(jù)保存在哪一個(gè)節(jié)點(diǎn)(FreshEP)中;4.以及最新數(shù)據(jù)頁的LSN值(FreshLSN)
等信息。這些信息作為LBS封鎖、GBS授權(quán)和GBS權(quán)限回收請(qǐng)求的附加信息進(jìn)行傳遞,因
此并不會(huì)帶來額外的通訊開銷。
下面,以兩節(jié)點(diǎn)DMDSC集群(EP0/EP1)訪問數(shù)據(jù)頁P(yáng)1為例子。初始頁P(yáng)1位于共
享存儲(chǔ)上,P1的GBS控制結(jié)構(gòu)位于節(jié)點(diǎn)EP1上。初始頁P(yáng)1還沒有被任何一個(gè)節(jié)點(diǎn)訪問過,
初始頁P(yáng)1的LSN為10000。通過兒種常見場(chǎng)景分析,逐步深入,解析緩存交換的原理。
14
DM8共享存儲(chǔ)集群
■場(chǎng)景1
節(jié)點(diǎn)EPO訪問數(shù)據(jù)頁P(yáng)l?
1.節(jié)點(diǎn)EP0的本地LBS向EP1的GBS請(qǐng)求數(shù)據(jù)頁P(yáng)1的SLATCH權(quán)限
2.節(jié)點(diǎn)EP1的GBS修改P1控制結(jié)構(gòu),記錄訪問節(jié)點(diǎn)EP0的封鎖模式為SLATCH
(數(shù)據(jù)分布節(jié)點(diǎn)為EP0),并響應(yīng)EP0的LBS請(qǐng)求
3.節(jié)點(diǎn)EP0的LBS獲得GBS授權(quán)后,記錄獲得的授權(quán)模式是S_LATCH,P1數(shù)據(jù)不
在其他節(jié)點(diǎn)的Buffer中,發(fā)起本地10請(qǐng)求,從磁盤讀取數(shù)據(jù)。10完成后,修改LBS控
制結(jié)構(gòu),記錄數(shù)據(jù)頁上的LSN信息
圖4.2本地10
■場(chǎng)景2
節(jié)點(diǎn)EP1訪問數(shù)據(jù)頁P(yáng)l?
1.節(jié)點(diǎn)EP1本地LBS向EP1的GBS請(qǐng)求數(shù)據(jù)頁P(yáng)1的SLATCH權(quán)限
2.節(jié)點(diǎn)EP1的GBS修改控制結(jié)構(gòu),記錄訪問節(jié)點(diǎn)EP1的封鎖模式為SLATCH(數(shù)
據(jù)分布節(jié)點(diǎn)為EP0/EP1),并響應(yīng)EP1的LBS請(qǐng)求
15
DM8共享存儲(chǔ)集群
3.節(jié)點(diǎn)EP1的LBS獲得GBS授權(quán)后,記錄獲得的授權(quán)模式是SLATCH,根據(jù)數(shù)據(jù)
分布情況,EP1向EPO發(fā)起P1的讀請(qǐng)求,通過內(nèi)部網(wǎng)絡(luò)從EPO獲取數(shù)據(jù),而不是重新從
磁盤讀取P1數(shù)據(jù)
Latch(EPO,EP1:S)
AccessMap
(EP0/EP1)
FreshLSN(0)
QrachFP()
(<BS/rBS
Latch(EPO:S)Latch(EP1:S)
AccessMap(EPO)AccessMap
FreshLSN(10000)(EP0/EP1))
\FreshEP()FreshLSN(10000)
“shFP0_____
BufferBuffer
EPOEP1
0
圖4.3遠(yuǎn)程IO
■場(chǎng)景3
節(jié)點(diǎn)EPO修改數(shù)據(jù)頁P(yáng)io
1.節(jié)點(diǎn)EPO本地LBS向EP1的GBS請(qǐng)求數(shù)據(jù)頁P(yáng)l的XLATCH權(quán)限(附加LSN信
息)
2.節(jié)點(diǎn)EP1的GBS修改控制結(jié)構(gòu)的LSN值,從EP1的LBS回收P1的權(quán)限
3.修改訪問節(jié)點(diǎn)EP0的封鎖模式為S+XLATCH,并響應(yīng)EP0的LBS請(qǐng)求
4.節(jié)點(diǎn)EP0的LBS獲得GBS授權(quán)后,記錄獲得的授權(quán)模式是S+XLATCH
16
DM8共享存儲(chǔ)集群
5.節(jié)點(diǎn)EPO修改數(shù)據(jù)頁P(yáng)l,LSN修改為11000
這個(gè)過程中,只有全局Latch請(qǐng)求,數(shù)據(jù)頁并沒有在節(jié)點(diǎn)間傳遞。
圖4.4GBS管理
修改之后,數(shù)據(jù)頁P(yáng)1的LSN修改為11000,如下所示:
17
DM8共享存儲(chǔ)集群
內(nèi)部網(wǎng)絡(luò)
圖4.5數(shù)據(jù)修改
■場(chǎng)景4
節(jié)點(diǎn)EP1修改數(shù)據(jù)頁P(yáng)l?
1.節(jié)點(diǎn)EP1本地LBS向EP1的GBS請(qǐng)求數(shù)據(jù)頁P(yáng)1的XLATCH權(quán)限
2.節(jié)點(diǎn)EP1的GBS發(fā)現(xiàn)P1被EP0以S+X方式封鎖,向EP0發(fā)起回收P1權(quán)限的
請(qǐng)求
3.節(jié)點(diǎn)EP0釋放P1的全局LATCH,響應(yīng)GBS,并且在響應(yīng)消息中附加了最新的PAGE
LSN值
4.節(jié)點(diǎn)EP1的GBS收到EP0的響應(yīng)后,修改GBS控制結(jié)構(gòu),記錄最新數(shù)據(jù)保存在EP0,
最新的LSN值信息,記錄EP0獲得的授權(quán)模式是S+XLATCH(此時(shí),數(shù)據(jù)分布節(jié)點(diǎn)仍
18
DM8共享存儲(chǔ)集群
然是EP0/EP1),并授權(quán)EP1的LBS
5.節(jié)點(diǎn)EP1的LBS收到授權(quán)信息后,記錄獲得的授權(quán)模式是S+XLATCH,并根據(jù)
數(shù)據(jù)分布情況,向節(jié)點(diǎn)EPO發(fā)起數(shù)據(jù)頁P(yáng)1的讀請(qǐng)求
6.節(jié)點(diǎn)EP1修改數(shù)據(jù)頁P(yáng)l,LSN修改為12000
圖4.6GBS管理
修改之后,數(shù)據(jù)頁P(yáng)1的LSN修改為12000。如下所示:
19
DM8共享存儲(chǔ)集群
zQBSx
\二
*Latch(EP1:S+X)
二AccessMap
(EP0/EP1)
>;6FreshLSN(11000)
,?rahUPJ
/tBSyfBS
4、
Latch(),
AccessMap/Latch(EP1:S+X)
(EP0/EP1)一AAccessMap(EP1))
FreshLSN(11000)廣FreshLSN(12000)
UrpshEP(1口0))£reshEP(EP1)/
BufferBuffer——
P1?P1
EPO
H
圖4.7數(shù)據(jù)修改
這個(gè)過程中,數(shù)據(jù)頁P(yáng)1的最新數(shù)據(jù)從EPO傳遞到了EP1,但并沒有產(chǎn)生磁盤10。
4.5重做日志管理
Redo日志包含了所有物理數(shù)據(jù)頁的修改內(nèi)容,Insert/delete/update等DML操
作、CreateTable等DDL操作,最終都會(huì)轉(zhuǎn)化為對(duì)物理數(shù)據(jù)頁的修改,這些修改都會(huì)反
映到Redo日志中。一般說來一條SQL語句,在系統(tǒng)內(nèi)部會(huì)轉(zhuǎn)化為多個(gè)相互獨(dú)立的物理事
務(wù)來完成,物理事務(wù)提交時(shí)產(chǎn)生Redo日志,并最終寫入聯(lián)機(jī)Redo日志文件中。
一個(gè)物理事務(wù)包含一個(gè)或者多個(gè)Redo記錄(RedoRecord,簡稱RREC),每條Redo
記錄都對(duì)應(yīng)一個(gè)修改物理數(shù)據(jù)頁的動(dòng)作。根據(jù)記錄內(nèi)容的不同,RREC可以分為兩類:物理
RREC和邏輯RRECo物理RREC記錄的是數(shù)據(jù)頁的變化情況,內(nèi)容包括:操作類型、修改
20
DM8共享存儲(chǔ)集群
數(shù)據(jù)頁地址、頁內(nèi)偏移、數(shù)據(jù)頁上的修改內(nèi)容,如果是變長類型的Red。記錄,在RREC記錄
頭之后還會(huì)有一個(gè)兩字節(jié)的長度信息。邏輯RREC記錄的是一些數(shù)據(jù)庫邏輯操作步驟,主要
包括:事務(wù)啟動(dòng)、事務(wù)提交、事務(wù)回滾、字典封鎖、事務(wù)封鎖、B樹封鎖、字典淘汰等,
一般只在配置為Primary模式時(shí)才產(chǎn)生邏輯RREC。
PTX_headerdata
PTX
RREC
data
RREC
圖4.8PTX/RREC結(jié)構(gòu)圖
DMDSC集群中,各個(gè)節(jié)點(diǎn)擁有獨(dú)立的日志文件,Red。日志的LSN值也是順序遞增的,
Redo日志只會(huì)寫入當(dāng)前數(shù)據(jù)庫實(shí)例的聯(lián)機(jī)日志文件,與集群系統(tǒng)中的其他數(shù)據(jù)庫實(shí)例沒有
關(guān)系。考慮到所有節(jié)點(diǎn)都可以修改數(shù)據(jù),同一個(gè)數(shù)據(jù)頁可能由不同節(jié)點(diǎn)先后修改,為了體現(xiàn)修
改的先后順序,確保故障恢復(fù)時(shí)能夠按照操作的順序?qū)?shù)據(jù)正確恢復(fù)。DMDSC集群要求對(duì)同一
個(gè)數(shù)據(jù)頁的修改,產(chǎn)生的LSN值是全局遞增的,各個(gè)節(jié)點(diǎn)對(duì)同一數(shù)據(jù)頁的修改在日志系統(tǒng)
中是嚴(yán)格有序的。但是,針對(duì)不同數(shù)據(jù)頁的修改并不要求LSN是全局遞增的,也就是說只
有多個(gè)節(jié)點(diǎn)修改相同數(shù)據(jù)頁時(shí),才會(huì)產(chǎn)生全局LSN同步問題。并且LSN全局同步,是在
緩存交換時(shí)附帶完成的,并不會(huì)增加系統(tǒng)的額外開銷。
與單節(jié)點(diǎn)系統(tǒng)相比,DMDSC的日志系統(tǒng)存在以下差異:
1.本地Redo日志系統(tǒng)中,LSN值保證是遞增的,后提交物理事務(wù)的LSN值一定更大;
但順序提交的兩個(gè)物理事務(wù)產(chǎn)生的LSN值,不能保證一定是連續(xù)的
21
DM8共享存儲(chǔ)集群
2.全局Red。日志系統(tǒng)中,LSN值不再嚴(yán)格保證唯一性。不同節(jié)點(diǎn)可能存在LSN值相
等的重做日志記錄
3.故障重啟時(shí),控制節(jié)點(diǎn)需要重做所有節(jié)點(diǎn)的Redo日志,重做過程中會(huì)根據(jù)LSN排
序,從小到大依次重做
4.聯(lián)機(jī)Redo日志文件需要保存在共享存儲(chǔ)中
4.6回滾記錄管理
DMDSC集群的多版本并發(fā)控制(MVCC)實(shí)現(xiàn)策略是,通過回滾記錄獲取數(shù)據(jù)的歷史版
本,通過活動(dòng)事務(wù)視圖判斷事務(wù)可見性、確定獲取指定版本數(shù)據(jù)。因此,回滾記錄也必須進(jìn)行
全局維護(hù),有可能在節(jié)點(diǎn)間進(jìn)行傳遞。與單節(jié)點(diǎn)一樣,DMDSC集群中只有一個(gè)回滾表空間,
回滾記錄保存在回滾頁中,回滾頁與保存用戶記錄的數(shù)據(jù)頁一樣,由Buffer系統(tǒng)管理,
并通過緩存交換機(jī)制實(shí)現(xiàn)全局?jǐn)?shù)據(jù)共享。
為了減少并發(fā)沖突,提高系統(tǒng)性能,DMDSC集群中為每個(gè)節(jié)點(diǎn)分配了一個(gè)單獨(dú)的回滾
段(Segment),雖然這些回滾段位于同一個(gè)回滾表空間中,但是各個(gè)節(jié)點(diǎn)的回滾頁申請(qǐng)、
釋放,并不會(huì)產(chǎn)生全局沖突。
與重做日志一樣,DMDSC集群故障重啟時(shí),控制節(jié)點(diǎn)會(huì)掃描所有節(jié)點(diǎn)的回滾段,收集
未提交事務(wù)進(jìn)行回滾,收集已提交事務(wù)進(jìn)行Purge操作。
22
DM8共享存儲(chǔ)集群
5DMCSS介紹
DMCSS(DamengClusterSynchronizationServices)達(dá)夢(mèng)集群同步服務(wù),
使用DMASM集群或DMDSC集群都必須要配置DMCSS服務(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)稱為控制節(jié)點(diǎn)(control
node),其他DMCSS節(jié)點(diǎn)稱為普通節(jié)點(diǎn)(normalnode)。DMCSS普通節(jié)點(diǎn)不參與DMASM
集群和DMDSC集群管理,當(dāng)DMCSS控制節(jié)點(diǎn)故障時(shí),會(huì)從活
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥流醫(yī)院協(xié)議書
- 聯(lián)建黨建協(xié)議書
- 承包腳手架合同協(xié)議書
- 土石方清運(yùn)合同協(xié)議書
- 考研入會(huì)協(xié)議書
- 職業(yè)限制協(xié)議書
- 貓狗領(lǐng)養(yǎng)協(xié)議書
- 寵物薩摩耶領(lǐng)養(yǎng)協(xié)議書
- 商務(wù)和技術(shù)合作協(xié)議書
- 委托持股代持股協(xié)議書
- 統(tǒng)編版五語下第三次月考
- EIM Book 1 Unit 12 What a brave person!單元檢測(cè)試題
- 05G514-3 12m實(shí)腹式鋼吊車梁(中級(jí)工作制 A4 A5 Q345鋼)
- 公司技術(shù)評(píng)審表
- 公司合伙人管理制度
- 整形醫(yī)院雙眼皮培訓(xùn)課件
- Meta分析很全的課件
- 靜脈治療課件
- NPUAP壓瘡指南更新的解讀
- 2020年華為采購物料環(huán)保規(guī)范?V4
- IPQC制程檢驗(yàn)流程圖
評(píng)論
0/150
提交評(píng)論