當前位置:首頁 » 數據倉庫 » 什麼是資料庫集群
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

什麼是資料庫集群

發布時間: 2022-11-05 12:41:08

『壹』 請問什麼是資料庫群集資料庫群集有哪些利弊

資料庫集群,顧名思義,就是利用至少兩台或者多台資料庫伺服器,構成一個虛擬單一資料庫邏輯映像,像單資料庫系統那樣,向客戶端提供透明的數據服務壞處:集



是Unix


術,


在Unix







現,







高,












器。








因,










器,







全,











列;







全,









統,







群。

了Windows
NT
Server
4.0(


版),








說,

















案。

管Windows
NT










群,









說,




夠。

年5






了Windows
NT
sql
Server


好處:集









的,







率,












用。








器,





說,











個IP

址,













短,
















長,






斷。













統,









一。----秦傲工程師

『貳』 資料庫集群的性質

一.與分布式資料庫系統的區別 資料庫集群有的具有單份數據集,有的具有兩份或多份相似的數據集,有的具有兩份或多份實時一致的數據集;而分布式資料庫系統往往具有完全不同的數據集。 資料庫集群往往是同構的系統,要求集群各節點都具有相同的操作系統和資料庫系統版本,甚至補丁包的版本也要求保持一致;而分布式資料庫系統可以是異構系統,包含不同的操作系統和不同的資料庫系統。 資料庫集群往往建立在高速區域網內;而分布式資料庫系統既可以是高速區域網,也可以是跨部門、跨單位的異地遠程網路。 二.資料庫集群的技術指標
由於資料庫系統是任何一個信息系統的核心,因此除了業務邏輯之外,用戶還關心下面三點:
1. 系統性能
性能問題涉及硬體、軟體、網路、應用設計架構、代碼質量等多方面。但是資料庫集群如果能提供負載均衡能力和自動優化能力,則是對整個系統性能具有莫大的好處。
2. 數據可靠性
在系統發生任意故障(包括操作系統、資料庫引擎、硬碟或磁碟陣列或存儲網路等故障)條件下數據丟失的可能性。有的系統從設計原理上註定了必然會存在理論上的數據丟失可能性,而有的系統因為冗餘設計原理,可以保證理論上的數據零丟失。用容災領域的術語來講,這類似於RPO(Recovery Point Objective),但是不完全等同於RPO。
3. 服務可用性
在系統發生任意故障(包括操作系統、資料庫引擎、硬碟或磁碟陣列或存儲網路等故障)條件下整個系統停止對外提供數據服務的可能性。與上面的資料庫可靠性緊密關聯,如果一個系統從理論上存在數據丟失的可能性,那麼這樣的系統必然會導致整個系統的服務停止。同樣地,用容災領域的術語來講,這類似於RTO(Recovery Time Objective),但是也同樣不能完全等同於RTO。
三.資料庫集群的分類
在市場上,資料庫集群是一個籠統的名詞,沒有一個權威的定義,各市場參與者往往是各取所需,推出各種特色的資料庫集群解決方案。一般地具有下列四種集群方案:
1.基於串列數據復制技術
串列復制技術,本來是用於數據傳送和數據備份的,離人們熟悉的「資料庫集群」的概念有一定的距離。但是由於計算機軟硬體技術和網路通訊技術的快速發展,使得利用這種概念和技術構成的「資料庫集群」有了一定的可行性。此類集群,又可以分兩類:
a.串列非同步復制

此種方式是數據的非同步串列復制。主要採用資料庫事務日誌傳送或者硬碟數據塊傳送技術來實現,SQL Server自帶的復制、鏡像和SQL2012新出的AlwaysON(備機可讀)以及第三的一些鏡像Mirror技術都是屬於此類產品,此類技術和產品本質上就是數據備份技術和產品。下列以事務日誌傳送(Log Shipping)為例來說明。主資料庫完成事務處理後,生成事務處理日誌,日誌記錄通過FIFO隊列,進入備份資料庫處理,從而得到備份數據。此種方式的缺陷在於:
a) 主資料庫並行處理事務而日誌拷貝是串列的,而備份資料庫處理日誌記錄也是串列的。因此,FIFO隊列的溢出隨時可能發生。一旦發生,隊列必須重建,從而需要重新建立備份資料庫。此種方法對於一般客戶來講是不可行的。
b) 由於日誌拷貝是非同步的,主備資料庫不是實時一致,兩者之間存在「時間差」,因此如果用備份資料庫作負荷均衡,這樣的應用存在邏輯上的漏洞,可能會發生數據錯亂。
c) 由於主備數據存在時間差, 主資料庫一旦發生事故,理論上一定會丟失數據。在這種情況下,要麼需要手工恢復資料庫,這會消耗大量的人工成本,或者數據根本就不能恢復。
d) 對主機的性能影響,根據測試一般在15%到25%之間。
b.串列同步復制
此類集群往往是由昂貴的專用軟硬體構成的,原理圖如下:

此類系統採用專用的高速網路和軟體技術,將每個資料庫的請求,通過同步復制的方式,同步在主備兩台資料庫伺服器上執行正確後,才將結果返回給資料庫客戶。此系統的特點是:
a) 主資料庫被強迫與備份資料庫同步串列處理,因此性能受到限制。
b) 主備資料庫中任意一個出現問題,都會迫使事務處理交易回滾,因此整個系統的可靠性比單機系統降低了一半。
c) 由於以上問題,這種備份方式只適用於近距離光纖網路(5英里)。
d) 專用系統造價昂貴,又加上述明顯缺陷,因此市場上很少被採用。
2.基於共享存儲的雙機容錯技術
從技術適應性的角度講,雙機容錯比較適合於無狀態應用,或者狀態信息較少的應用切換,以此達到應用級的高可用性目的,其實並不適合於資料庫級的應用切換。

此種結構往往是兩個伺服器共享一個磁碟陣列,這里兩個伺服器共享一個虛擬的IP供資料庫客戶使用,形成一個單一的邏輯資料庫映象。此種所謂的資料庫集群的目的是,一旦主機系統出現問題,備份系統通過心跳機制的檢測,完成從主機系統到備份系統的切換。這種方案在市場上被稱為「雙機集群」或者「雙機熱備」,簡稱參見「雙機」,但微軟稱之為「故障轉移集群」。它有下列特點:
a. 此種高可用性解決方案只是無狀態系統(典型的如Web伺服器)的普通容錯切換思想在資料庫領域的應用。
b. 此系統本身只有一個單一的數據映象,數據儲存在共享的磁碟陣例上,因此共享的磁碟陣列成為了整個系統的單點錯誤源。
c. 由於是單一數據映象,因此必須採用通常的復制或備份方法獲取第二份數據,以保證數據的安全性。因此所有復制或備份方法的缺點,此類系統全部存在。
d. 主機系統和備份系統之間是沒有任何負載均衡關系的,在正常情況下,備份系統是閑置在那裡,因此對用戶來說是一種投資浪費。
e. 在錯誤切換的時候,往往存在切換時間長,而且更嚴重的是可能會存在丟失用戶交易數據丟失的現象,結果導致系統被迫停止服務,或者需要人工修復數據,或者數據永遠找不回來。
3.以Oracle RAC為代表的系統
RAC的英文全稱是:Real Application Cluster(真正的應用級集群)。我們需要關注的是「應用級」。為了緩解資料庫系統日益增長的性能壓力,Oracle公司推出了RAC系統。它基本結構如下:

此類系統,專門是針對資料庫性能問題而提出的。採用共享磁碟陣列的方式,因此在結構上和上述雙機容錯相似,不同的地方在於此系統中的資料庫節點之間採用的不是簡單的心跳檢測,而是Oracle公司自己定義的一套復雜的信息交換協議,以此來動態分配來自資料庫客戶端的請求。它的特點是:
a. 是個應用級的集群,也就是針對Oracle的資料庫管理系統(因為資料庫管理系統對於操作系統來講,就是一個「應用程序」,因此被稱為「應用級集群」),專門為提高資料庫性能而設計。
b. 此系統本身只有一個單一的數據映象,數據儲存在共享的磁碟陣例上,因此享的磁碟陣例成為了整個系統的單點錯誤源。
c. 管理配置復雜。
d. 由於是單一數據映象,因此必須採用通常的復制或備份方法獲取第二份數據,以保證數據的安全性。因此所有復制或備份方法的缺點,此類系統全部存在。
e. 由於資料庫系統本身具有高I/O的特性,因此,RAC系統里,磁碟I/O是提高性能的關鍵地方。
f. 依據不同的資料庫應用,有的性能有所提升,有的性能可能會反而下降。

『叄』 什麼是資料庫集群

現在比較大型點的系統基本上是AP+DB的架構: AP指應用程序,DB指資料庫端
AP放在一個伺服器上,DB放在另一個伺服器上
當一個系統比較大,訪問的用戶數量比較多的時候,比如QQ,上億用戶.

這時一個伺服器就吃不消了,這樣就想到多個伺服器跑同一個AP應用.
DB端也一樣.
linux集群 指的就是多個伺服器跑同一個AP應用,系統管理員的工作
資料庫集群 指的就是多個伺服器跑同一個DB資料庫.資料庫管理員的工作

linux集群基礎就要熟悉linux系統.
資料庫集群基礎就要熟悉具體的資料庫如oracle,db2,sysbase.mysql.等

0基礎可以學,只是要花時間.0基礎想搞到集群估計得花3個月時間.這還是要有環境的,有人指導才行.

『肆』 什麼是資料庫集群 分布式資料庫

集群簡單理解的話,就是把資料庫放到不同的存儲設備當中
分布式就是存儲設備的地理位置不正同一個機房當中

『伍』 資料庫集群 應該

集群主要分成三大類 (高可用集群, 負載均衡集群,科學計算集群)
高可用集群( High Availability Cluster)
負載均衡集群(Load Balance Cluster)
科學計算集群(High Performance Computing Cluster)

1、高可用集群(High Availability Cluster)
常見的就是2個節點做成的HA集群,有很多通俗的不科學的名稱,比如」雙機熱備」, 「雙機互備」, 「雙機」。高可用集群解決的是保障用戶的應用程序持續對外提供服務的能力。 (請注意高可用集群既不是用來保護業務數據的,保護的是用戶的業務程序對外不間斷提供服務,把因軟體/硬體/人為造成的故障對業務的影響降低到最小程度)。

2、負載均衡集群(Load Balance Cluster)

負載均衡系統:集群中所有的節點都處於活動狀態,它們分攤系統的工作負載。一般Web伺服器集群、資料庫集群和應用伺服器集群都屬於這種類型。

負載均衡集群一般用於相應網路請求的網頁伺服器,資料庫伺服器。這種集群可以在接到請求時,檢查接受請求較少,不繁忙的伺服器,並把請求轉到這些伺服器上。從檢查其他伺服器狀態這一點上看,負載均衡和容錯集群很接近,不同之處是數量上更多。

3、科學計算集群(High Performance Computing Cluster)

高性能計算(High Perfermance Computing)集群,簡稱HPC集群。這類集群致力於提供單個計算機所不能提供的強大的計算能力。

高性能計算分類:

3.1、高吞吐計算(High-throughput Computing)
有一類高性能計算,可以把它分成若干可以並行的子任務,而且各個子任務彼此間沒有什麼關聯。象在家搜尋外星人( SETI@HOME – Search for Extraterrestrial Intelligence at Home )就是這一類型應用。
這一項目是利用Internet上的閑置的計算資源來搜尋外星人。SETI項目的伺服器將一組數據和數據模式發給Internet上參加SETI的計算節點,計算節點在給定的數據上用給定的模式進行搜索,然後將搜索的結果發給伺服器。伺服器負責將從各個計算節點返回的數據匯集成完整的 數據。因為這種類型應用的一個共同特徵是在海量數據上搜索某些模式,所以把這類計算稱為高吞吐計算。
所謂的Internet計算都屬於這一類。按照 Flynn的分類,高吞吐計算屬於SIMD(Single Instruction/Multiple Data)的范疇。

3.2、分布計算(Distributed Computing)
另一類計算剛好和高吞吐計算相反,它們雖然可以給分成若干並行的子任務,但是子任務間聯系很緊密,需要大量的數據交換。按照Flynn的分類,分布式的高性能計算屬於MIMD(Multiple Instruction/Multiple Data)的范疇。

下面說說這幾種集群的應用場景:

高可用集群這里不多作說明。

想Dubbo是比較偏向於負載均衡集群,用過的猿友應該知道(不知道的可以自行了解一下),Dubbo同一個服務是可以有多個提供者的,當一個消費者過來,它要消費那個提供者,這里是有負載均衡機制在裡面的。

搜索引擎Elasticsearch比較偏向於科學計算集群的分布計算。

而到這里,可能不少猿友都知道,集群的一些術語:集群容錯、負載均衡。

我們以Dubbo為例:
集群容錯(http://bbo.io/User+Guide-zh.htm#UserGuide-zh-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99)

Dubbo提供了這些容錯策略:
集群容錯模式:
可以自行擴展集群容錯策略,參見:集群擴展
Failover Cluster
失敗自動切換,當出現失敗,重試其它伺服器。(預設)
通常用於讀操作,但重試會帶來更長延遲。
可通過retries="2"來設置重試次數(不含第一次)。

Failfast Cluster
快速失敗,只發起一次調用,失敗立即報錯。
通常用於非冪等性的寫操作,比如新增記錄。

Failsafe Cluster
失敗安全,出現異常時,直接忽略。
通常用於寫入審計日誌等操作。

Failback Cluster
失敗自動恢復,後台記錄失敗請求,定時重發。
通常用於消息通知操作。

Forking Cluster
並行調用多個伺服器,只要一個成功即返回。
通常用於實時性要求較高的讀操作,但需要浪費更多服務資源。

可通過forks="2"來設置最大並行數。

Broadcast Cluster
廣播調用所有提供者,逐個調用,任意一台報錯則報錯。(2.1.0開始支持)
通常用於通知所有提供者更新緩存或日誌等本地資源信息。

負載均衡(http://bbo.io/User+Guide-zh.htm#UserGuide-zh-%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1)

Dubbo提供了這些負載均衡策略:

Random LoadBalance

隨機,按權重設置隨機概率。

在一個截面上碰撞的概率高,但調用量越大分布越均勻,而且按概率使用權重後也比較均勻,有利於動態調整提供者權重。

RoundRobin LoadBalance
輪循,按公約後的權重設置輪循比率。
存在慢的提供者累積請求問題,比如:第二台機器很慢,但沒掛,當請求調到第二台時就卡在那,久而久之,所有請求都卡在調到第二台上。

LeastActive LoadBalance
最少活躍調用數,相同活躍數的隨機,活躍數指調用前後計數差。
使慢的提供者收到更少請求,因為越慢的提供者的調用前後計數差會越大。

ConsistentHash LoadBalance
一致性Hash,相同參數的請求總是發到同一提供者。
當某一台提供者掛時,原本發往該提供者的請求,基於虛擬節點,平攤到其它提供者,不會引起劇烈變動。
演算法參見:http://en.wikipedia.org/wiki/Consistent_hashing。

預設只對第一個參數Hash,如果要修改,請配置<bbo:parameter key="hash.arguments" value="0,1" />

預設用160份虛擬節點,如果要修改,請配置<bbo:parameter key="hash.nodes" value="320" />

『陸』 資料庫集群

確切地來說,資料庫集群指的是由多個一致並且獨立的資料庫伺服器構成一個邏輯上強大的資料庫,它應該同時具備負載均衡、內部實時數據同步、容錯和高可用性等功能,還應該對任何原有資料庫客戶端保持二進制兼容,使得客戶端不需要作任何修改就能使用資料庫集群。
「資料庫集群」這一名稱,在市場上有好幾種含義。對於微軟來說,它指的是SQL Server故障轉移集群;而對於ORACLE來講,則指的是共享存儲方式的RAC集群,另外還有一些獨立軟體開發商開發的集群產品,其中有的產品非常吻合上述資料庫集群的定義要求,有的則不是。

『柒』 資料庫集群

拿oracle為例:
集群是多台伺服器共同提供服務,資料庫集群的意思就是多台運行資料庫服務的伺服器組成一個集群。
oracle的集群,自己的是rac,最少需要2台機器,先裝cluster或者grid,再在集群上安裝資料庫,就可以了。
要是db2的話,還得用ibm的操作系統,安裝一個集群軟體
hacmp等等的。
反正
核心要理解的就是
,做集群,要有集群系統來支撐。例如
,文件同步訪問等等的。
rac,hacmp等等的,都屬於集群系統!