資料庫集群是什麼意思
㈠ 「分布式」與「集群」的區別是什麼
簡單說,分布式是以縮短單個任務的執行時間來提升效率的,而集群則是通過提高單位時間內執行的任務數來提升效率。
例如:
如果一個任務由10個子任務組成,每個子任務單獨執行需1小時,則在一台伺服器上執行改任務需10小時。
採用分布式方案,提供10台伺服器,每台伺服器只負責處理一個子任務,不考慮子任務間的依賴關系,執行完這個任務只需一個小時。(這種工作模式的一個典型代表就是Hadoop的Map/Rece分布式計算模型)
而採用集群方案,同樣提供10台伺服器,每台伺服器都能獨立處理這個任務。假設有10個任務同時到達,10個伺服器將同時工作,10小後,10個任務同時完成,這樣,整身來看,還是1小時內完成一個任務!
以下是摘抄自網路文章:
一、集群概念
1. 兩大關鍵特性
集群是一組協同工作的服務實體,用以提供比單一服務實體更具擴展性與可用性的服務平台。在客戶端看來,一個集群就象是一個服務實體,但事實上集群由一組服務實體組成。與單一服務實體相比較,集群提供了以下兩個關鍵特性:
· 可擴展性--集群的性能不限於單一的服務實體,新的服務實體可以動態地加入到集群,從而增強集群的性能。
· 高可用性--集群通過服務實體冗餘使客戶端免於輕易遇到out of service的警告。在集群中,同樣的服務可以由多個服務實體提供。如果一個服務實體失敗了,另一個服務實體會接管失敗的服務實體。集群提供的從一個出 錯的服務實體恢復到另一個服務實體的功能增強了應用的可用性。
2. 兩大能力
為了具有可擴展性和高可用性特點,集群的必須具備以下兩大能力:
· 負載均衡--負載均衡能把任務比較均衡地分布到集群環境下的計算和網路資源。
· 錯誤恢復--由於某種原因,執行某個任務的資源出現故障,另一服務實體中執行同一任務的資源接著完成任務。這種由於一個實體中的資源不能工作,另一個實體中的資源透明的繼續完成任務的過程叫錯誤恢復。
負載均衡和錯誤恢復都要求各服務實體中有執行同一任務的資源存在,而且對於同一任務的各個資源來說,執行任務所需的信息視圖(信息上下文)必須是一樣的。
3. 兩大技術
實現集群務必要有以下兩大技術:
· 集群地址--集群由多個服務實體組成,集群客戶端通過訪問集群的集群地址獲取集群內部各服務實體的功能。具有單一集群地址(也叫單一影像)是集群的一個基本特徵。維護集群地址的設置被稱為負載均衡器。負載均衡器內部負責管理各個服務實體的加入和退出,外部負責集群地址向內部服務實體地址的轉換。有的負載均衡器實現真正的負載均衡演算法,有的只支持任務的轉換。只實現任務轉換的負載均衡器適用於支持ACTIVE-STANDBY的集群環境,在那裡,集群中只有一個服務實體工作,當正在工作的服務實體發生故障時,負載均衡器把後來的任務轉向另外一個服務實體。
· 內部通信--為了能協同工作、實現負載均衡和錯誤恢復,集群各實體間必須時常通信,比如負載均衡器對服務實體心跳測試信息、服務實體間任務執行上下文信息的通信。
具有同一個集群地址使得客戶端能訪問集群提供的計算服務,一個集群地址下隱藏了各個服務實體的內部地址,使得客戶要求的計算服務能在各個服務實體之間分布。內部通信是集群能正常運轉的基礎,它使得集群具有均衡負載和錯誤恢復的能力。
二、集群分類
Linux集群主要分成三大類(高可用集群, 負載均衡集群,科學計算集群)
高可用集群(High Availability Cluster)
負載均衡集群(Load Balance Cluster)
科學計算集群(High Performance Computing Cluster)
具體包括:
Linux High Availability 高可用集群
(普通兩節點雙機熱備,多節點HA集群,RAC, shared, share-nothing集群等)
Linux Load Balance 負載均衡集群
(LVS等....)
Linux High Performance Computing 高性能科學計算集群
(Beowulf 類集群....)
三、詳細介紹
1. 高可用集群(High Availability Cluster)
常見的就是2個節點做成的HA集群,有很多通俗的不科學的名稱,比如"雙機熱備","雙機互備","雙機"。
高可用集群解決的是保障用戶的應用程序持續對外提供服務的能力。 (請注意高可用集群既不是用來保護業務數據的,保護的是用戶的業務程序對外不間斷提供服務,把因軟體/硬體/人為造成的故障對業務的影響降低到最小程度)。
2. 負載均衡集群(Load Balance Cluster)
負載均衡系統:集群中所有的節點都處於活動狀態,它們分攤系統的工作負載。一般Web伺服器集群、資料庫集群和應用伺服器集群都屬於這種類型。
負載均衡集群一般用於相應網路請求的網頁伺服器,資料庫伺服器。這種集群可以在接到請求時,檢查接受請求較少,不繁忙的伺服器,並把請求轉到這些伺服器上。從檢查其他伺服器狀態這一點上看,負載均衡和容錯集群很接近,不同之處是數量上更多。
3. 科學計算集群(High Performance Computing Cluster)
高性能計算(High Perfermance Computing)集群,簡稱HPC集群。這類集群致力於提供單個計算機所不能提供的強大的計算能力。
3.1 高性能計算分類
3.1.1 高吞吐計算(High-throughput Computing)
有一類高性能計算,可以把它分成若干可以並行的子任務,而且各個子任務彼此間沒有什麼關聯。象在家搜尋外星人( SETI@HOME -- Search for Extraterrestrial Intelligence at Home )就是這一類型應用。這一項目是利用Internet上的閑置的計算資源來搜尋外星人。SETI項目的伺服器將一組數據和數據模式發給Internet上參加SETI的計算節點,計算節點在給定的數據上用給定的模式進行搜索,然後將搜索的結果發給伺服器。伺服器負責將從各個計算節點返回的數據匯集成完整的 數據。因為這種類型應用的一個共同特徵是在海量數據上搜索某些模式,所以把這類計算稱為高吞吐計算。所謂的Internet計算都屬於這一類。按照 Flynn的分類,高吞吐計算屬於SIMD(Single Instruction/Multiple Data)的范疇。
3.1.2 分布計算(Distributed Computing)
另一類計算剛好和高吞吐計算相反,它們雖然可以給分成若干並行的子任務,但是子任務間聯系很緊密,需要大量的數據交換。按照Flynn的分類,分布式的高性能計算屬於MIMD(Multiple Instruction/Multiple Data)的范疇。
四、分布式(集群)與集群的聯系與區別
分布式是指將不同的業務分布在不同的地方;而集群指的是將幾台伺服器集中在一起,實現同一業務。
分布式中的每一個節點,都可以做集群。 而集群並不一定就是分布式的。
舉例:就比如新浪網,訪問的人多了,他可以做一個群集,前面放一個響應伺服器,後面幾台伺服器完成同一業務,如果有業務訪問的時候,響應伺服器看哪台伺服器的負載不是很重,就將給哪一台去完成。
而分布式,從窄意上理解,也跟集群差不多, 但是它的組織比較鬆散,不像集群,有一個組織性,一台伺服器垮了,其它的伺服器可以頂上來。
分布式的每一個節點,都完成不同的業務,一個節點垮了,那這個業務就不可訪問了。
㈡ 什麼是sqlserver的集群
由二台或更多物理上獨立的伺服器共同組成的「虛擬」伺服器稱之為集群伺服器。一項稱做MicroSoft集群服務(MSCS)的微軟服務可對集群伺服器進行管理。一個SQL Server集群是由二台或更多運行SQL Server的伺服器(節點)組成的虛擬伺服器。如果集群中的一個節點發生故障,集群中的另一個節點就承擔這個故障節點的責任。
認為一個SQL Server集群能夠給集群中的兩個節點帶來負載平衡,這是一種常見的誤解。雖然這似乎很有用,但卻是不正確的。這也意味著集束SQL Server不能真正提高性能。集束SQL Server只能提供故障轉移功能。故障轉移就是當系統中的一台機器發生故障失去其功能時,另一台機器將接手運行它的SQL Server實例。這種功能失效可能是由於硬體故障、服務故障、人工故障或各種其它原因。
為何要集束SQL Server環境?
在實用性方面,集群SQL Server環境令人滿意。在進行故障轉移時,將資料庫實例由一台伺服器轉移到另一台伺服器的時間非常短暫,一般只需要3至7秒鍾。雖然需要重建連接,但對資料庫的終端用戶而言,故障轉移處理通常是透明的。低廉的故障轉移成本還可幫助你對集群中的節點進行維護,而不會造成伺服器完全無法訪問。
SQL Server集群類型
一共有兩種類型的SQL Server集群:主動/被動集群和主動/主動集群。下面分別對它們進行說明(說明以兩個節點的SQL Server集群為基礎)。
主動/被動集群
在這種類型的集群中,一次只有一個節點控制SQL Server資源。另一個節點一直處於備用模式,等待故障發生。進行故障轉移時,備用的節點即取得SQL Server資源的控制權。
優點:由於伺服器上只有一個實例在運行,所以在進行故障轉移時,不需要另外的伺服器來接管兩個SQL Server實例,性能也不會因此降低。
缺點:由於虛擬伺服器上只有一個SQL Server實例在運行,另一台伺服器總是處理備用模式與空閑狀態。這意味著你並沒有充分利用你購買的硬體。
主動/主動集群
在這種類型的集群中,集群中的每個節點運行一個獨立且主動的SQL Server實例。發生節點故障時,另一個節點能夠控制發生故障節點的SQL Server實例。然後這個正常的節點將運行兩個SQL Server實例——它自己的實例和發生故障的實例。
優點:通過這種配置,你能夠充分利用你的硬體。在這樣的系統中,兩個伺服器都在運行,而不是只有一台伺服器運行,而另一台處於等待故障發生的備用模式,因此你能夠充分利用你購買的機器。
缺點:如果進行故障轉移,一台伺服器運行兩個SQL Server實例,性能就會受到不利影響。然而,性能降低總比虛擬伺服器完全失靈要強得多。這種配置的另一故障在於它要求購買的許可要比主動/被動集群多一些。因為集群在運行兩個主動SQL Server實例,這要求你購買兩個單獨的伺服器許可。在某些情況下,這也可能對你形成阻礙。
集群考慮
在高實用性方面,集群SQL Server環境有一定的優勢。然而,高實用性也確實伴隨某種折衷。
首先,建立一個集群SQL Server環境非常昂貴。這是因為集群中的節點必須遵照集群節點的兼容性列表。而且,還需要建立一個復雜的網路,機器的配置必須幾乎相同,同時需要實現資料庫文件磁碟子系統共享。存儲區網路(SAN)是建立這種子系統的不錯選擇,但SAN並非必要,而且十分昂貴。另外,如果你正在運行一個主動/主動集群,你需要為集群中運行SQL Server實例的每台機器的處理器購買一個許可。
因為當地集群主要局限於同一地理區域,自然災難可能會使集群完全失靈。在那種情況下,你需要轉移到災難恢復站點進行繼續操作。你也可以建立地理分散的SQL Server集群,但這樣的系統更加復雜與昂貴。
㈢ HA ,CLUSTER ,RAC這幾個概念我老弄混,誰幫我分析下,都分別什麼意思,特別ha ,cluster
補充解釋。Cluster是集群的意思,是多個硬體設備共同承擔一項服務的總稱。Cluster常見的模式是HA模式,即主用備用模式。以筆記本為例:電池和交流電源的關系就是HA的模式,交流電源是主用,當交流電源斷掉的時候服務由電池來提供。RAC特指ORACLE資料庫的真正集群,他不是主備模式,而是負載均衡,協同工作。相當於電池和交流電共同為筆記本提供服務。希望能夠理解。
㈣ Oracle中的cluster是什麼意思,它有什麼作用
大家對通常oracle中的cluster的理解是不準確的,經常和sql server中的cluster index混淆。Cluster是存儲一組table的一種方法,這些table共享同一數據塊中的某些相同column,並把不同table在這一共享column上值相同的data row存儲到同一block上。在sql server中的cluster index強制行根據index key按存儲順序存儲,這一點和oracle中的IOT類似。
從下圖中我們可以清楚的看到cluster 和非cluster 的一組table的物理存儲的區別。在cluster中,單個block上的數據可能來自多個table,概念上可以存儲「預連接」的數據。單個table也可以使用cluster,即根據某些column按組存儲數據。如圖中,所有部門ID為 20和 110的部門信息和員工信息的數據都將存儲在同一block。注意,這里存儲的並不是排序的數據(那是IOT的任務),存儲的是按部門ID分組集合的數據,是以heap的方式存儲的。因此,部門20剛好和部門110相鄰,而部門99和部門100相距很遠(硬碟的物理位置)。
當單個block放不下時,額外的block將鏈接到最初的block,來包容溢出的數據,這種方式和在IOT中溢出block非常相似。
現在我們看看如何創建一個cluster。在cluster中創建一系列table是很簡單的,對象存儲定義如PCTFREE,PCTUSED,INITIAL都是和cluster相關的,而不是和table相關。這是因為在cluster中存儲了若干table,每個table在同一個block中擁有不同的PCTFREE沒有意義。
SQL> create cluster e_d_cluster
2 (deptid number(2))
3 size 1024
4 /
Cluster created
這里首先創建了一個index cluster。這個cluster的key為 deptid,在table中這個列可以不命名為deptid,但數據類型number(2)必須匹配。Size選項是用來告訴oracle預計有1024
位元組數據和每個cluser key相關。Oracle將使用這個信息來計算每個block能容納的最大cluster key數目。因此size太高,在每一block將得到很少的key,並且將使用比需要的更多的空間;設置容量太低,將得到過多的數據連接,這將偏離使用cluster的目的。Size是cluster的重要參數。
現在我們來創建cluster index。在把數據放入之前,需要索引cluster。Cluster index的作用是存儲一個cluster key,並且返回包含該key的block的地址。
SQL> create index e_d_cluster_idx
2 on cluster e_d_cluster
3 /
Index created
Cluster key 的index可以使用index所有的正常的存儲參數,並且可以位於另一個tablespace。它是一個正常的index,能夠索引到一個cluster,並且也包含一個完全null的條目。
我們在cluster中創建table:
SQL> create table department
2 (deptid number(2) primary key,
3 dname varchar2(14),
4 loc varchar2(13))
5 cluster e_d_cluster(deptid);
Table created
SQL> create table employee
2 (empid number primary key,
3 ename varchar2(10),
4 job varchar2(10),
5 mgr number,
6 hiredate date,
7 sal number,
8 comm number,
9 deptid number(2) references department(deptid))
10 cluster e_d_cluster(deptid);
Table created
這里創建table與普通的table唯一的區別就是使用了cluster關鍵字,我們往table中裝載數據:
SQL> begin
2 for x in(select * from scott.dept)
3 loop
4 insert into department
5 values(x.deptno,x.dname,x.loc);
6 insert into employee
7 select * from scott.emp
8 where deptno = x.deptno;
9 end loop;
10 end;
11 /
PL/SQL procere successfully completed
我們可以看到目前table中裝載了如下數據:
SQL> select * from department;
DEPTID DNAME LOC
------ -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> select * from employee;
EMPID ENAME JOB MGR HIREDATE SAL COMM DEPTID
---------- ---------- ---------- ---------- ----------- ---------- ---------- ------
7782 CLARK MANAGER 7839 1981-6-9 2450 10
7839 KING PRESIDENT 1981-11-17 5000 10
7934 MILLER CLERK 7782 1982-1-23 1300 10
7369 SMITH CLERK 7902 1980-12-17 800 20
7566 JONES MANAGER 7839 1981-4-2 2975 20
7788 SCOTT ANALYST 7566 1982-12-9 3000 20
7876 ADAMS CLERK 7788 1983-1-12 1100 20
7902 FORD ANALYST 7566 1981-12-3 3000 20
7499 ALLEN SALESMAN 7698 1981-2-20 1600 300 30
7521 WARD SALESMAN 7698 1981-2-22 1250 500 30
7654 MARTIN SALESMAN 7698 1981-9-28 1250 1400 30
7698 BLAKE MANAGER 7839 1981-5-1 2850 30
7844 TURNER SALESMAN 7698 1981-9-8 1500 0 30
7900 JAMES CLERK 7698 1981-12-3 950 30
現在我們看看這兩個table數據存儲的位置:
SQL> select dbms_rowid.rowid_block_number(department.rowid) dept_rid,
2 dbms_rowid.rowid_block_number(employee.rowid) emp_rid,department.deptid
3 from department,employee
4 where employee.deptid = department.deptid;
DEPT_RID EMP_RID DEPTID
---------- ---------- ------
5587 5587 10
5587 5587 10
5587 5587 10
5587 5587 20
5587 5587 20
5587 5587 20
5587 5587 20
5587 5587 20
5587 5587 30
5587 5587 30
5587 5587 30
5587 5587 30
5587 5587 30
5587 5587 30
可以看到部門ID相同的數據存儲在一個block上。我們為什麼推薦上述方法對cluster進行最初的裝載呢?這樣能夠保證如果有些cluster key的相關數據超過了size,仍能使大部分數據聚集在一個block上。這只適用於最初的數據裝載,在這以後,可以使用事務對cluster中的table insert數據。
由於cluster中的特殊的數據存儲方式,出現了這樣一個問題,rowid出現了重復,現在rowid只能在一個table中唯一標識一行數據了(另一種rowid重復出現在transport tablespace的操作後)。
SQL> select rowid from department
2 intersect
3 select rowid from employee;
ROWID
------------------
AAAGWQAADAAABXTAAA
AAAGWQAADAAABXTAAB
AAAGWQAADAAABXTAAC
AAAGWQAADAAABXTAAD
㈤ oracle資料庫的分布式和tomcat的集群式有什麼區別
分布式是架構部署模式的一種。分布式多用於描述架構設計上,當然現在有各種新用法。
集群是硬體部署模式的一種,是集中部署在一個機房裡的計算機群體的集中稱謂。
分布式網站集群系統是一種多網站架構模式,支持生成獨立網站、多個網站,完成各個網站橫向一體化和縱向一體化網站群的構建,主站、子站、網站間的信息可共享和信息互聯。
簡單的說:就是一個企業/個人可以像申請博客那樣自助建站,維護,更新,而分布式,就是把問題分開解決的意思,即系統分布在幾個不同伺服器上。
㈥ 資料庫集群的應用
拿oracle為例:
集群是多台伺服器共同提供服務,資料庫集群的意思就是多台運行資料庫服務的伺服器組成一個集群。
oracle的集群,自己的是rac,最少需要2台機器,先裝cluster或者grid,再在集群上安裝資料庫,就可以了。
要是db2的話,還得用ibm的操作系統,安裝一個集群軟體
hacmp等等的。
反正
核心要理解的就是
,做集群,要有集群系統來支撐。例如
,文件同步訪問等等的。
rac,hacmp等等的,都屬於集群系統!
㈦ 如何實現 cache資料庫集群
集群系統的概要
現在的計算機社會中,持續的提供不停止的服務已經成為通往成功的關鍵。例如僅由於 1
台機器故障或超負荷而宕機就導致對客戶的服務全面停止。這樣的話,不但會帶來莫大的
損失,還會失去客戶的信任。
隨著集群系統的導入,發生意外事故時會將系統停止時間(宕機時間)降低到最小限度、使
負載均衡,提高其可用性。
所謂集群,有「集團」、「團」的意思,顧名思義是「將多個計算機匯集成一群(或者多群),謀求
提升可靠性及處理性能的系統」。集群系統有多個種類,可分為下列3 種。其中,
NEC ExpressCluster 屬於High Availability 集群。
HA (High Availability) 集群
是平時作為運行伺服器作業,在運行伺服器發生故障時將業務交接到待機伺服器的集
群。是以高可用性為目的的集群。包括共享磁碟型、鏡像磁碟型。
負載均衡集群
是將客戶端的請求遵從恰當的負荷均衡原則分配給各節點的集群。是以高擴展性為目
的的集群、一般無法進行數據交接。包括load balance 集群、並列資料庫集群。
HPC (High Performance Computing)集群
是指計算量非常大的集群。是為使用超級計算機執行單一業務的集群。使用所有節點
的CPU 來執行單一業務的網格計算技術近年來已成為熱點。
㈧ 資料庫集群
拿ORACLE為例:
集群是多台伺服器共同提供服務,資料庫集群的意思就是多台運行資料庫服務的伺服器組成一個集群。
ORACLE的集群,自己的是RAC,最少需要2台機器,先裝CLUSTER或者GRID,再在集群上安裝資料庫,就可以了。
要是DB2的話,還得用IBM的操作系統,安裝一個集群軟體 HACMP等等的。
反正 核心要理解的就是 ,做集群,要有集群系統來支撐。例如 ,文件同步訪問等等的。
RAC,HACMP等等的,都屬於集群系統!
㈨ 請問oracle資料庫RAC是什麼意思
RAC,全稱real application clusters,譯為「實時應用集群」, 通俗點講就是資料庫集群
它是Oracle新版資料庫中採用的一項新技術,是高可用性的一種,也是Oracle資料庫支持網格計算環境的核心技術。
優點Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的資料庫應用系統,在低成本伺服器上構建高可用性資料庫系統,並且自由部署應用,無需修改代碼。在Oracle RAC環境下,Oracle集成提供了集群軟體和存儲管理軟體,為用戶降低了應用成本。當應用規模需要擴充時,用戶可以按需擴展系統,以保證系統的性能。
(1)多節點負載均衡;
(2)提供高可用:故障容錯和無縫切換功能,將硬體和軟體錯誤造成的影響最小化;
(3)通過並行執行技術提高事務響應時間----通常用於數據分析系統;
(4)通過橫向擴展提高每秒交易數和連接數----通常對於聯機事務系統;
(5)節約硬體成本,可以用多個廉價PC伺服器代替昂貴的小型機或大型機,同時節約相應維護成本;
(6)可擴展性好,可以方便添加刪除節點,擴展硬體資源。
缺點(1)相對單機,管理更復雜,要求更高;
(2)在系統規劃設計較差時性能甚至不如單節點;
(3)可能會增加軟體成本(如果使用高配置的pc伺服器,Oracle一般按照CPU個數收費)。
在Oracle9i之前,RAC的名稱是OPS (Oracle parallel Server)。RAC 與 OPS 之間的一個較大區別是,RAC採用了Cache Fusion(高速緩存合並)技術。在 OPS 中,節點間的數據請求需要先將數據寫入磁碟,然後發出請求的節點才可以讀取該數據。使用Cache fusion時,RAC的各個節點的數據緩沖區通過高速、低延遲的內部網路進行數據塊的傳輸。