動(dòng)力節(jié)點(diǎn)Java數(shù)據(jù)庫(kù)視頻資源分享

動(dòng)力節(jié)點(diǎn)Java數(shù)據(jù)庫(kù)視頻資源分享

天津卓眾教育      2022-04-03 05:49:01     7

動(dòng)力節(jié)點(diǎn)Java數(shù)據(jù)庫(kù)視頻資源分享,  分析數(shù)據(jù)庫(kù)架構(gòu)方案的幾個(gè)視角用發(fā)生故障時(shí)的高可用性、切換后的數(shù)據(jù)一致性和擴(kuò)展性。每個(gè)產(chǎn)品都還有自己獨(dú)特的優(yōu)勢(shì)和功能,

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹


  分析數(shù)據(jù)庫(kù)架構(gòu)方案的幾個(gè)視角用發(fā)生故障時(shí)的高可用性、切換后的數(shù)據(jù)一致性和擴(kuò)展性。每個(gè)產(chǎn)品都還有自己獨(dú)特的優(yōu)勢(shì)和功能,這里不一定會(huì)提到。


  2. Oracle數(shù)據(jù)庫(kù)的架構(gòu)方案


  ORACLE數(shù)據(jù)庫(kù)既能跑OLTP業(yè)務(wù),也能跑OLAP業(yè)務(wù),能力是商業(yè)數(shù)據(jù)庫(kù)中數(shù)一數(shù)二的。支持IBM小機(jī)和x86 PC服務(wù)器,支持多種OS。同時(shí)有多種數(shù)據(jù)庫(kù)架構(gòu)方案供選擇,成本收益風(fēng)險(xiǎn)也各不相同。


  A. IBM AIX HACMP + ORACLE9I + EMC



  架構(gòu)說(shuō)明:


  1. 兩臺(tái)IBM AIX A和B。AIX A運(yùn)行Oracle Primary實(shí)例,AIX B分出部分資源虛擬一個(gè)OS C,運(yùn)行Oracle Standby實(shí)例。AIX B剩余大部分資源空閑,用于未來(lái)起另外一個(gè)OraclePrimary實(shí)例。


  2. 兩臺(tái)存儲(chǔ)(EMC只是舉例)A和B,分別直連兩臺(tái)AIX A和B。存儲(chǔ)A存放Primary實(shí)例的日志和數(shù)據(jù),也存放Standby實(shí)例的Redo(圖中未畫(huà)出,只有在角色未Primary時(shí)有效)。存儲(chǔ)B存放Standby實(shí)例的日志和數(shù)據(jù),也存放Primary實(shí)例的Redo文件。


  3. AIX也可以換普通的x86_64 PC服務(wù)器,HACMP換為支持linux的集群軟件。如Veritas HA。


  功能:


  1. 高可用:Oracle Primary實(shí)例不可用時(shí),HACMP起用AIX B上的Oracle Primary實(shí)例。存儲(chǔ)A不可用時(shí),將AIX C上Standby實(shí)例Failover為Primary實(shí)例。


  2. 數(shù)據(jù)一致性:Redo文件在兩個(gè)存儲(chǔ)上都有保留,Standby實(shí)例在Failover之前應(yīng)用Primary的Redo,理論上即使是Failover也不丟數(shù)據(jù)。


  3. 擴(kuò)展性:數(shù)據(jù)庫(kù)性能由主機(jī)aix和存儲(chǔ)能力決定,都可以向上擴(kuò)展,成本會(huì)陡升,且有上限。


  B. x86 + ORACLE RAC + EMC


  架構(gòu)說(shuō)明:


  1. 兩臺(tái)主機(jī)A和B可以是AIX,也可以是x86_64普通PC服務(wù)器,彼此網(wǎng)絡(luò)直連,同時(shí)連接共享的存儲(chǔ)EMCA,A和B分別運(yùn)行一個(gè)RAC Primary實(shí)例。


  2. 主機(jī)C可以是AIX或x86_64普通PC服務(wù)器,直連另外一個(gè)存儲(chǔ)B,運(yùn)行Standby實(shí)例。也有的架構(gòu)會(huì)有多個(gè)Standby實(shí)例,其中一個(gè)Standby實(shí)例也是RAC。


  功能:


  1. 高可用:Oracle RACPrimary實(shí)例無(wú)論哪個(gè)不可用,另外一個(gè)都可以自動(dòng)接管服務(wù)。如果Primary實(shí)例的存儲(chǔ)A不可用,則將Standby實(shí)例Failover為Primary實(shí)例。


  2. 數(shù)據(jù)一致性:如果Primary實(shí)例也將一組Redo 成員輸出到B存儲(chǔ),則理論上可以絕對(duì)不丟數(shù)據(jù)。否則,極端情況下,F(xiàn)ailover可能會(huì)因?yàn)槿鄙貾rimary的事務(wù)日志而失敗,此時(shí)直接激活Standby實(shí)例為Primary實(shí)例,可能會(huì)丟失少量數(shù)據(jù)。


  3. 擴(kuò)展性:數(shù)據(jù)庫(kù)計(jì)算能力不足可以水平擴(kuò)展(添加RAC節(jié)點(diǎn)),存儲(chǔ)能力不足可以向上擴(kuò)展(存儲(chǔ)擴(kuò)容)。


  C. Oracle Dataguard 共享Redo


  架構(gòu)說(shuō)明:


  1. 普通x86服務(wù)器A和B,分別運(yùn)行Oracle的Primary和Standby實(shí)例。彼此網(wǎng)絡(luò)直連,同時(shí)連接一個(gè)共享存儲(chǔ)。


  2. Primary和Standby實(shí)例的Redo和控制文件、spfile都放在共享存儲(chǔ)上,所以占用空間非常小。數(shù)據(jù)文件放在本機(jī)上,通常是高速存儲(chǔ)(如SSD或者PCIE接口的Flash設(shè)備)。


  功能:


  1. 高可用:當(dāng)Primary實(shí)例不可用時(shí),將Standby實(shí)例Failover為Primary實(shí)例。如果共享存儲(chǔ)不可用,則兩個(gè)實(shí)例都不可用。通常會(huì)有第三個(gè)Standby實(shí)例。


  2. 數(shù)據(jù)一致性:Standby實(shí)例在Failover之前應(yīng)用Primary實(shí)例的Redo文件,不丟失事務(wù)日志,數(shù)據(jù)強(qiáng)一致。


  3. 擴(kuò)展性:無(wú)。


  3. MySQL數(shù)據(jù)庫(kù)的架構(gòu)方案


  A. ADHA (Alibaba Database High Availability)



  架構(gòu)說(shuō)明:


  1. 使用MySQL Master-Master架構(gòu),雙向同步,Slave只讀。


  2. 使用Zookeeper集群做實(shí)例不可用監(jiān)測(cè)和防止腦裂。


  功能:


  1. 高可用:Master實(shí)例不可用后,將Slave激活??捎眯詢?yōu)先。如果Slave延時(shí)超出一定閥值,放棄切換。zk集群三節(jié)點(diǎn)部署,可以防止腦裂。


  2. 數(shù)據(jù)一致性:為盡可能少的減少數(shù)據(jù)丟失,推薦開(kāi)啟單向半同步技術(shù)。同時(shí)在老Master恢復(fù)后會(huì)盡可能的彌補(bǔ)未及時(shí)同步到新Master的數(shù)據(jù)。由于同步依賴Binlog,理論上也是無(wú)法保證主從數(shù)據(jù)絕對(duì)一致。


  3. 擴(kuò)展性:可以做讀寫(xiě)分離,可以新增slave擴(kuò)展讀服務(wù)能力。


  B. MHA (Master High Availability)




  架構(gòu)說(shuō)明:


  1. 從MySQL主從同步架構(gòu)衍生出來(lái)的,使用半同步技術(shù),所以至少有兩個(gè)從實(shí)例(Slave)。所以整體架構(gòu)為一主兩從,兩個(gè)從庫(kù)不是級(jí)聯(lián)關(guān)系。


  功能:


  1. 高可用:Master不可用時(shí),自動(dòng)從兩個(gè)Slave里選出包含Binlog最多的Slave,并提升為Master。同時(shí)更改另外一個(gè)Slave的Master為新的Master。Master異常時(shí),Slave上的拉取的Binlog如果有丟失(master或者slave故障時(shí)),很容易出現(xiàn)復(fù)制中斷,因此這種高可用機(jī)制并不總是有效。


  2. 數(shù)據(jù)一致性:為了盡可能少的丟失Binlog,主從同步推薦使用半同步技術(shù)。在網(wǎng)絡(luò)異常的情況下,半同步有可能降級(jí)為異步同步。MHA只是盡最大程度保證數(shù)據(jù)不丟失。且由于同步依賴的是Binlog,主從的數(shù)據(jù)理論上也并不能保證嚴(yán)格一致。


  3. 擴(kuò)展性:可以提供讀寫(xiě)分離服務(wù),可以新增slave節(jié)點(diǎn)擴(kuò)展讀服務(wù)能力。


  C. Alipay的Oceanbase


  Oceanbase的設(shè)計(jì)思路跟Spanner類似,但在SQL、存儲(chǔ)、事務(wù)方面都有自己的創(chuàng)新。



  架構(gòu)說(shuō)明:


  1. 目前版本計(jì)算和存儲(chǔ)都集中在一個(gè)節(jié)點(diǎn)上(PC,OBServer)上,單進(jìn)程程序,進(jìn)程包括SQL引擎和存儲(chǔ)引擎功能。


  2. 表數(shù)據(jù)存在一個(gè)或多個(gè)分區(qū)(使用分區(qū)表),需要業(yè)務(wù)指定分區(qū)規(guī)則。分區(qū)是數(shù)據(jù)遷移和高可用的最小單位。分區(qū)之間的一致性是通過(guò)MultiPaxos保證。


  3. 支持分布式事務(wù)、2.x版本支持全局一致性快照。支持全局一致性備份。


  4. 兼容MySQL主要用法和Oracle標(biāo)準(zhǔn)SQL用法,目前正在逐步兼容Oracle更多功能。如存儲(chǔ)過(guò)程、游標(biāo)和Package等。目標(biāo)是兼容Oracle常用功能以實(shí)現(xiàn)去IOE時(shí)應(yīng)用不修改代碼的目標(biāo)。


  5. 有多租戶管理能力,租戶彈性擴(kuò)容,租戶之間有一定資源隔離機(jī)制。


  6. 應(yīng)用可以通過(guò)一個(gè)反向代理obproxy或者ob提供的connector-java訪問(wèn)Oceanbase集群。


  跟Spanner的關(guān)系和區(qū)別:


  1. Spanner大概2008年開(kāi)始研發(fā),2012年通過(guò)論文對(duì)外公開(kāi)。首次跨地域?qū)崿F(xiàn)水平擴(kuò)展,并基于普通PC服務(wù)器實(shí)現(xiàn)自動(dòng)高可用和數(shù)據(jù)強(qiáng)一致。Oceanbase在2010年開(kāi)始立項(xiàng)研發(fā),也是基于普通PC服務(wù)器,發(fā)展出自己獨(dú)特的ACID特性和高可用技術(shù)以及拆分技術(shù)。


  2. Spanner對(duì)標(biāo)準(zhǔn)SQL支持不好,不是真正的關(guān)系型數(shù)據(jù)庫(kù),定位于內(nèi)部應(yīng)用。Oceanbase定位于通用的分布式關(guān)系型數(shù)據(jù)庫(kù),支持標(biāo)準(zhǔn)SQL和關(guān)系模型?;炯嫒軲ySQL功能,逐步兼容Oracle功能。


  3. Spanner借助原子鐘硬件和TrueTime設(shè)計(jì)支持全局一致性快照,提供快照讀隔離級(jí)別,對(duì)節(jié)點(diǎn)間網(wǎng)絡(luò)延時(shí)要求比較高。Oceanbase使用軟件提供全局時(shí)間服務(wù),實(shí)現(xiàn)了全局一致性快照功能。


  4. Spanner的內(nèi)部診斷跟蹤機(jī)制很欠缺,Oceanbase的內(nèi)部診斷分析機(jī)制功能很完善,是瞄準(zhǔn)商業(yè)軟件標(biāo)準(zhǔn)去做的。


  功能:


  1. 擴(kuò)展性:租戶和集群的彈性伸縮非常方便,可以在線進(jìn)行,對(duì)業(yè)務(wù)寫(xiě)影響可控。可以用于兩地三中心異地容災(zāi)和多活(結(jié)合業(yè)務(wù)做單元化設(shè)計(jì))。


  2. 可用性:?jiǎn)蝹€(gè)或多個(gè)observer不可用時(shí),只要分區(qū)的絕大部分成員存活,則可以迅速選舉恢復(fù)服務(wù)(RTO=20s)。


  3. 數(shù)據(jù)一致性:故障恢復(fù)后,數(shù)據(jù)庫(kù)數(shù)據(jù)絕對(duì)不丟。RPO=0。


  數(shù)據(jù)庫(kù)相關(guān)教程免費(fèi)下載


  數(shù)據(jù)庫(kù)mysql教程:http://www.bjpowernode.com/v21/


  oracle數(shù)據(jù)庫(kù)教程:http://www.bjpowernode.com/v22/


  數(shù)據(jù)庫(kù)plsql教程:http://www.bjpowernode.com/v23/


  jdbc數(shù)據(jù)庫(kù)教程:http://www.bjpowernode.com/v24/



       以上就是天津卓眾教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“天津卓眾教育Java數(shù)據(jù)庫(kù)視頻資源分享”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


       相關(guān)文章


  零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線圖


  你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎


  一個(gè)標(biāo)準(zhǔn)的Java程序員如何進(jìn)階?


  Java學(xué)習(xí)路線清單,快速進(jìn)階Java


  Java編程初學(xué)者要如何進(jìn)階


培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。