欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          為何經(jīng)過(guò)40多年的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)依然是主流?OceanBase 2.2免費(fèi)體驗(yàn)

            螞蟻金服近期開(kāi)展的 “共戰(zhàn)‘疫情’,技術(shù)破局”數(shù)字課堂線上直播系列演講我們將整理并發(fā)布在 “螞蟻金服科技” 公眾號(hào)上,歡迎關(guān)注。

            今天將全面解讀OceanBase 2.2版本的核心特性,解析在異地容災(zāi)多活、在線數(shù)據(jù)遷移等場(chǎng)景下OceanBase的完整解決方案,以下為OceanBase團(tuán)隊(duì)的慶濤老師演講整理全文:

            大家下午好。我是來(lái)自螞蟻金服OceanBase團(tuán)隊(duì)的慶濤,很榮幸能在云棲社區(qū)直播平臺(tái)為大家分享OceanBase數(shù)據(jù)庫(kù)的相關(guān)知識(shí)。OceanBase官網(wǎng)最近發(fā)布了2.2版本的安裝包,大家可以免費(fèi)下載獲取。安裝文件里面包含了兩個(gè)重要產(chǎn)品,一個(gè)是OCP(OceanBase Cloud Platform)和OceanBase 2.2版本,其中OCP是OceanBase的自動(dòng)化運(yùn)維平臺(tái),這次分享打算分兩期給大家介紹OCP和OceanBase 2.2的功能,以及OceanBase 2.2的運(yùn)維和開(kāi)發(fā)。

            首先跟大家分享一下OceanBase產(chǎn)品的定位和發(fā)展歷史。

            一個(gè)常見(jiàn)的問(wèn)題:很多人會(huì)問(wèn)OceanBase數(shù)據(jù)庫(kù)到底是什么?首先OceanBase和Oracle / MySQL一樣,它是一款關(guān)系型數(shù)據(jù)庫(kù),但是跟Oracle和MySQL不同的是,它是分布式架構(gòu)的關(guān)系型數(shù)據(jù)庫(kù)。而且它是一款原生的分布式數(shù)據(jù)庫(kù),不是分庫(kù)分表中間件架構(gòu)的數(shù)據(jù)庫(kù)。 OceanBase數(shù)據(jù)庫(kù)由阿里巴巴和螞蟻金服完全自主研發(fā),不依賴于任何開(kāi)源項(xiàng)目。目前OceanBase的定位是一款商業(yè)數(shù)據(jù)庫(kù),主要用于替換Oracle和MySQL,在部分場(chǎng)景下可以替換DB2數(shù)據(jù)庫(kù)。

            下面為大家簡(jiǎn)單介紹一下OceanBase的發(fā)展歷史。如今OceanBase已經(jīng)有9年多的歷史,我們的第一個(gè)業(yè)務(wù)是淘寶收藏夾,業(yè)務(wù)的特點(diǎn)是在上百億的大表之間做關(guān)聯(lián)查詢。如今大家打開(kāi)手機(jī)淘寶,這個(gè)業(yè)務(wù)其實(shí)依然是跑在OceanBase數(shù)據(jù)庫(kù)之上。OceanBase的版本分為三個(gè)階段,其中從0.4版本開(kāi)始就在支付寶承擔(dān)核心交易業(yè)務(wù)去O以及在網(wǎng)商銀行承擔(dān)全部的核心數(shù)據(jù)庫(kù)。1.0版本后,OceanBase架構(gòu)完全重構(gòu),兼容MySQL 5.6的SQL語(yǔ)法,從1.4版本開(kāi)始逐步走向商用,第一家使用OceanBase的客戶是南京銀行。2018年9月,OceanBase 發(fā)布了2.0版本,OceanBase開(kāi)始兼容Oracle的SQL語(yǔ)法,如今內(nèi)部版本已經(jīng)到了2.2.3。目前我們可以做到兼容70%左右的Oracle常用語(yǔ)法。

            接下來(lái)為大家介紹OceanBase的幾個(gè)重要的外部客戶,目前網(wǎng)商銀行全部的核心業(yè)務(wù)數(shù)據(jù)都在OceanBase上,南京銀行的互聯(lián)網(wǎng)核心業(yè)務(wù),參照網(wǎng)商銀行的架構(gòu)搭建,也使用了OceanBase數(shù)據(jù)庫(kù)。全國(guó)各地有越來(lái)越多的城商行、農(nóng)商行、以及一些互聯(lián)網(wǎng)保險(xiǎn)、證券公司的業(yè)務(wù),目前也開(kāi)始在OceanBase上部署。

          為何經(jīng)過(guò)40多年的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)依然是主流?OceanBase 2.2免費(fèi)體驗(yàn)

            OceanBase能在金融行業(yè)扎根,除了有支付寶強(qiáng)大的業(yè)務(wù)場(chǎng)景背書外,還離不開(kāi)OceanBase最核心的六大產(chǎn)品能力。

            第一就是高可用。OceanBase的架構(gòu)設(shè)計(jì)天然就是為故障容災(zāi)而設(shè)計(jì)的,它的數(shù)據(jù)至少有三副本,任何時(shí)候機(jī)器故障,只可能會(huì)出現(xiàn)局部的數(shù)據(jù)訪問(wèn)中斷,并且會(huì)很快地自動(dòng)恢復(fù),恢復(fù)時(shí)還可以保證數(shù)據(jù)絕對(duì)不會(huì)丟失。這就是我們通常說(shuō)的 RTO約等于30秒,然后RPO=0。這里30秒是包括故障探測(cè)時(shí)間。

            第二個(gè)能力就是分布式架構(gòu),OceanBase數(shù)據(jù)庫(kù)可以在線擴(kuò)容、縮容、遷移、以及做負(fù)載均衡,并且整個(gè)集群可以異地部署,跨城市部署。 成熟的方案有兩地三中心和三地五中心。

            第三個(gè)能力就是兼容Oracle和MySQL的常用語(yǔ)法。我們現(xiàn)在重點(diǎn)是兼容Oracle的語(yǔ)法。

            第四個(gè)能力就是高性能,2017年,OceanBase支撐了支付寶雙11大促活動(dòng),交易峰值達(dá)到每秒鐘25.6萬(wàn)筆。2019年,OceanBase得到了國(guó)外權(quán)威機(jī)構(gòu)TPC-C的認(rèn)證,測(cè)試結(jié)果達(dá)到6088萬(wàn)tpmC,榮登性能榜首,是 Oracle結(jié)果的兩倍。

            第五個(gè)能力是低成本。OceanBase基于普通的PC服務(wù)器,只需要SSD盤、萬(wàn)兆網(wǎng)絡(luò),不需要小機(jī),存儲(chǔ),還有光纖網(wǎng)絡(luò)。

            第六個(gè)能力就是多租戶的能力。OceanBase使用的時(shí)候很像云數(shù)據(jù)庫(kù),但是它跟云沒(méi)有必然的關(guān)系。 在OceanBase集群里面,我們可以按需分配實(shí)例,還可以在線的資源擴(kuò)容或者縮容。

            那么接下來(lái)我來(lái)帶大家詳細(xì)了解一下OceanBase 2.2版本的核心功能以及背后的原理。

          為何經(jīng)過(guò)40多年的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)依然是主流?OceanBase 2.2免費(fèi)體驗(yàn)

            首先是集群,OceanBase集群架構(gòu)至少包括三臺(tái)機(jī)器,上圖里實(shí)例是九臺(tái)機(jī)器,機(jī)器會(huì)分為三個(gè)區(qū)域存放,每個(gè)區(qū)域我們稱為一個(gè)zone,zone可以是小到一個(gè)機(jī)柜,機(jī)房,大到一個(gè)數(shù)據(jù)中心。三個(gè)數(shù)據(jù)中心的機(jī)器,整體上我們是做成一個(gè)OceanBase集群,每個(gè)機(jī)器都是普通的X86服務(wù)器,普通的SSD,萬(wàn)兆網(wǎng)卡彼此互通。

            我們會(huì)在每個(gè)機(jī)器上面運(yùn)行一個(gè)OceanBase的數(shù)據(jù)庫(kù)軟件,它是一個(gè)單進(jìn)程程序,叫OBServer,每個(gè)機(jī)器上的OBServer進(jìn)程的作用基本上是一樣的,都包含兩個(gè)模塊,一個(gè)是SQL引擎、一個(gè)是存儲(chǔ)引擎。整個(gè)集群里面會(huì)有一臺(tái)機(jī)器比較特別,它會(huì)有一個(gè)RootService,我們稱為總控服務(wù)。所以從這個(gè)架構(gòu)圖上來(lái)看,當(dāng)9臺(tái)機(jī)器全部運(yùn)行了OBServer進(jìn)程以后,在我們眼里它就是9個(gè)OBServer進(jìn)程,它們組成了一個(gè)集群。

            OBServer進(jìn)程有一個(gè)特殊的能力,進(jìn)程起來(lái)之后,它會(huì)把主機(jī)的絕大部分的CPU內(nèi)存和磁盤空間資源占為己有。所以9個(gè)機(jī)器啟動(dòng)了OBServer進(jìn)程之后,在我們的眼里的話就變成了9個(gè)資源單位,每個(gè)有30個(gè)CPU,200G內(nèi)存、4T空間。它們組成集群就形成了一個(gè)超大的資源池子,270個(gè)CPU、1800G內(nèi)存、36T空間。實(shí)際上這是所有的分布式數(shù)據(jù)庫(kù)都要具備的基本能力,就是把各個(gè)機(jī)器的能力、資源聚合在一起。

          為何經(jīng)過(guò)40多年的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)依然是主流?OceanBase 2.2免費(fèi)體驗(yàn)

            那么接下來(lái)我們就看OceanBase集群的資源池,這么大一個(gè)資源池它怎么使用?這就要提到OceanBase強(qiáng)大的多租戶能力。首先OceanBase會(huì)有一個(gè)內(nèi)部租戶,這個(gè)租戶,也就是我們說(shuō)的內(nèi)部實(shí)例,主要是用于管理用的,它會(huì)占用少量的資源。15個(gè)CPU,60G內(nèi)存,那么剩下的這些大部分資源就是未分配的,是留給業(yè)務(wù)用的。這時(shí)候我們來(lái)了兩個(gè)業(yè)務(wù),每個(gè)業(yè)務(wù)它會(huì)說(shuō)我需要多少資源,那么在OceanBase里面就會(huì)劃分出一塊資源給業(yè)務(wù)使用,沒(méi)有分完的,就留待給其他的業(yè)務(wù)使用。

            從這里的設(shè)計(jì)可以看出,當(dāng)我們的業(yè)務(wù)方需要一個(gè)數(shù)據(jù)庫(kù)的時(shí)候,我們的運(yùn)維人員在一分鐘以內(nèi)就可以把數(shù)據(jù)庫(kù)創(chuàng)建好,運(yùn)維的效率大大提升。

            接下來(lái)再來(lái)看一下OceanBase里面數(shù)據(jù)分布的特點(diǎn)。首先OceanBase里數(shù)據(jù)的最小單位,不是表而是分區(qū),但分區(qū)跟表是有關(guān)系的,我們說(shuō)一個(gè)普通的表就是一個(gè)分區(qū),像這里的t1表,表明它就是一個(gè)分區(qū),我們給它編個(gè)號(hào)叫0號(hào)分區(qū),所以這里寫t1(p0)就表示 t1表的分區(qū),但是一個(gè)分區(qū)表會(huì)有多個(gè)分區(qū),像t3表、t4表的話,它就是分區(qū)表有0號(hào)分區(qū)、1號(hào)分區(qū)、2號(hào)分區(qū),有三個(gè)分區(qū)。這些分區(qū)是分布在OceanBase集群任意的機(jī)器里面,沒(méi)有固定的位置,這是第一個(gè)特點(diǎn)。

            第二個(gè)特點(diǎn)是每個(gè)分區(qū)會(huì)有三個(gè)副本,副本就是指一模一樣的內(nèi)容,像 t1(p0),它也會(huì)有另外兩個(gè)t1(p0),三個(gè)副本在角色上面會(huì)有所區(qū)分,我們通過(guò)顏色來(lái)區(qū)分,比如綠色的是主副本,我們也稱為leader副本。黃色的是備副本又叫follower副本。默認(rèn)情況下只有主副本提供讀寫服務(wù),follower副本不提供讀寫服務(wù),并且每個(gè)分區(qū)的三個(gè)副本一定是分布在三個(gè)zone里面的,我們橫向看是三個(gè)zone。在OceanBase里有一個(gè)反向代理軟件叫OBProxy,它的作用主要就是接受應(yīng)用的SQL請(qǐng)求。 收到SQL之后會(huì)把請(qǐng)求轉(zhuǎn)發(fā)到主副本所在的節(jié)點(diǎn)上面,OBProxy后面還會(huì)詳細(xì)的介紹。

          為何經(jīng)過(guò)40多年的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)依然是主流?OceanBase 2.2免費(fèi)體驗(yàn)

            我們來(lái)看另外一個(gè)問(wèn)題,三副本的內(nèi)容是怎么保持同步的?比如說(shuō)t1(p0)有三個(gè)副本,默認(rèn)只有主副本提供讀寫。它們之間的同步是靠主副本上面的事務(wù)日志,也就是clog。當(dāng)主副本上一個(gè)事務(wù)要提交的時(shí)候,它會(huì)把clog同時(shí)發(fā)給兩個(gè)備副本。然后三個(gè)副本會(huì)把日志持久化到磁盤上,當(dāng)三個(gè)成員里面,絕大多數(shù)成員把這個(gè)事務(wù)日志寫成功之后,主副本上的事務(wù)就可以提交了。 這里協(xié)議使用了Paxos協(xié)議。

            除了保持?jǐn)?shù)據(jù)同步以外,當(dāng)主副本出現(xiàn)故障時(shí),OceanBase會(huì)自動(dòng)的從兩個(gè)備副本里選出一個(gè)新的主副本出來(lái),并且會(huì)保證新選出來(lái)的主副本擁有全部的事務(wù)日志,所以數(shù)據(jù)是不會(huì)丟的。OceanBase的故障切換的力度很細(xì),它是分區(qū)級(jí)別的,所以我們不會(huì)說(shuō)某一臺(tái)機(jī)器是主某一臺(tái)機(jī)器是備,從這個(gè)圖里面我們可以看出來(lái)有5臺(tái)機(jī)器有主副本,凡是有主副本的機(jī)器都可以提供服務(wù)。 當(dāng)你的業(yè)務(wù)表很多的時(shí)候,每臺(tái)機(jī)器上實(shí)際上都可以有主副本,所以O(shè)ceanBase的機(jī)器是沒(méi)有主備概念的。

            接下來(lái)我們?cè)敿?xì)的講解OBProxy的功能。 OBProxy的功能其實(shí)說(shuō)起來(lái)也很簡(jiǎn)單,它就是只做SQL路由,不參與運(yùn)算。當(dāng)收到業(yè)務(wù)的SQL請(qǐng)求,分析出里面要訪問(wèn)的表,然后找到表對(duì)應(yīng)的分區(qū)的主副本在哪個(gè)機(jī)器上面,就把它轉(zhuǎn)發(fā)過(guò)去,取出數(shù)據(jù)之后原路返回。對(duì)于用戶來(lái)說(shuō),OBProxy就是OceanBase數(shù)據(jù)庫(kù)的一個(gè)代理,所以O(shè)BProxy的可用性非常重要。通常情況下我們會(huì)部署多個(gè)OBProxy,然后把它們掛在用戶已有的一個(gè)負(fù)載均衡設(shè)備上面,比如說(shuō)F5上面,然后F5提供一個(gè)VIP給業(yè)務(wù)用,但F5的高可用是靠自身的備機(jī)去提供。

          為何經(jīng)過(guò)40多年的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)依然是主流?OceanBase 2.2免費(fèi)體驗(yàn)

            這里順帶提一下,除了OBProxy有路由功能以外,OBServer自身也是有路由功能的。接下來(lái)我們來(lái)看一下OceanBase 的SQL兼容性。

            前面說(shuō)OceanBase支持多租戶,它可以兼容MySQL或者Oracle,實(shí)際上只能2選1不能同時(shí)兼容。下圖左側(cè)是MySQL常用的SQL功能,右側(cè)是目前實(shí)現(xiàn)的Oracle常用的SQL功能。就Oracle功能這一塊,現(xiàn)在是重點(diǎn)發(fā)展的方向。

          為何經(jīng)過(guò)40多年的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)依然是主流?OceanBase 2.2免費(fèi)體驗(yàn)

            數(shù)據(jù)類型的話,我們已經(jīng)實(shí)現(xiàn)了75%的類型和86%的函數(shù)。存儲(chǔ)過(guò)程也支持了不少功能,有些場(chǎng)景下業(yè)務(wù)客戶的存儲(chǔ)過(guò)程是可以平遷到OceanBase上的。在事務(wù)方面,OceanBase支持兩種事務(wù)隔離級(jí)別,一個(gè)是讀已提交,還有序列化隔離級(jí)別,這點(diǎn)是跟Oracle一致的。

            OceanBase支持跨節(jié)點(diǎn)的分布式事務(wù),內(nèi)部原理是兩階段提交,強(qiáng)一致的,并且這個(gè)事務(wù)對(duì)業(yè)務(wù)是透明的。使用的時(shí)候,業(yè)務(wù)只要稍微注意一下額,這個(gè)事務(wù)一定要及時(shí)提交,以避免長(zhǎng)事務(wù)在OceanBase里會(huì)超時(shí)報(bào)錯(cuò)。此外,OceanBase還支持自治事務(wù)。

          為何經(jīng)過(guò)40多年的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)依然是主流?OceanBase 2.2免費(fèi)體驗(yàn)

            下面為大家介紹OceanBase相關(guān)的解決方案。在OceanBase的周邊生態(tài)產(chǎn)品中,除了OceanBase集群外,我們還開(kāi)發(fā)了一款OceanBase運(yùn)維平臺(tái)——OCP(OceanBase Cloud Platform),這款產(chǎn)品的目標(biāo)就是讓運(yùn)維人員絕大部分的工作都可以通過(guò)運(yùn)維平臺(tái)來(lái)自動(dòng)化完成。

            第二個(gè)產(chǎn)品是OceanBase開(kāi)發(fā)者中心——ODC(OceanBase Developer Center),面向開(kāi)發(fā)人員,目標(biāo)是讓開(kāi)發(fā)人員能通過(guò)這個(gè)平臺(tái)去連接數(shù)據(jù)庫(kù),而不用直連數(shù)據(jù)庫(kù),這樣我們可以控制權(quán)限和審計(jì)功能。

            第三個(gè)就是OceanBase的遷移服務(wù)——OMS(OceanBase Migration Service),我們重點(diǎn)看一下OceanBase的遷移服務(wù)。為大家分享一個(gè)客戶案例,某銀行有一個(gè)Oracle業(yè)務(wù),有一個(gè)MySQL業(yè)務(wù),我們現(xiàn)在需要把它遷移到OceanBase上來(lái)。剛開(kāi)始的時(shí)候客戶應(yīng)用是讀寫Oracle和MySQL,然后我們部署OMS之后,就把Oracle和MySQL的數(shù)據(jù)分別同步到OceanBase的Oracle租戶和MySQL租戶。這個(gè)時(shí)候業(yè)務(wù)是不停的,這個(gè)同步是實(shí)時(shí)同步,它會(huì)同步增量。 當(dāng)增量追上的時(shí)候,我們?cè)賹ふ乙粋€(gè)業(yè)務(wù)低峰期的時(shí)候,讓業(yè)務(wù)短暫的停寫原來(lái)的數(shù)據(jù)庫(kù),這個(gè)時(shí)候OMS可以對(duì)兩邊的數(shù)據(jù)做一個(gè)全量的校驗(yàn),確保兩邊數(shù)據(jù)是一致的,然后再做決定,即切換。所謂的切換就是OMS把數(shù)據(jù)同步的方向給調(diào)整一下,從OceanBase同步回原來(lái)的Oracle數(shù)據(jù)庫(kù),這時(shí)候客戶的業(yè)務(wù)再把連接指向新的OceanBase數(shù)據(jù)庫(kù),那么這樣的一個(gè)切換過(guò)程就完成了。這里我們會(huì)把OB的數(shù)據(jù)同步回Oracle,這個(gè)是為了方便回滾,一旦客戶決定再切換回去的時(shí)候,我們只需要把這些操作反過(guò)來(lái)做一遍就可以。 同樣的在回切的時(shí)候,我們依然要兩邊做數(shù)據(jù)校驗(yàn),校驗(yàn)一致之后,我們?cè)侔淹椒较蚍祷貋?lái)應(yīng)用,把連接改回去就可以了。

            OceanBase的容災(zāi)方案常用的就是兩地三中心。兩地三中心中整個(gè)集群是三副本架構(gòu),分布在三個(gè)機(jī)房,其中同城兩機(jī)房,延時(shí)是2毫秒,異地機(jī)房延時(shí)是7毫秒。任何一個(gè)機(jī)器或者機(jī)房故障的話,數(shù)據(jù)庫(kù)的服務(wù)都可以很快的恢復(fù),并且保證不丟數(shù)據(jù)。當(dāng)然有個(gè)缺點(diǎn),故障之后寫性能會(huì)下降一點(diǎn)點(diǎn),如果應(yīng)用不能承受性能下降的話,我們通常會(huì)做5副本,也就是三地五中心。

            最后我們來(lái)總結(jié)一下OceanBase的幾個(gè)核心關(guān)鍵字,低成本、高可用、可擴(kuò)展、高性能的分布式關(guān)系型數(shù)據(jù)庫(kù),同時(shí)它又像云數(shù)據(jù)庫(kù)一樣,并且適合金融行業(yè)的異地容災(zāi)和多活。OceanBase目標(biāo)就是做一款分布式的Oracle。

          為何經(jīng)過(guò)40多年的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)依然是主流?OceanBase 2.2免費(fèi)體驗(yàn)

          特別提醒:本網(wǎng)內(nèi)容轉(zhuǎn)載自其他媒體,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。本站不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我們,本站將會(huì)在24小時(shí)內(nèi)處理完畢。

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)