OceanBase社区版4.0,给了我很多惊喜
📢📢📢📣📣📣
哈嘍!大家好,我是【IT邦德】,江湖人稱jeames007,10余年DBA工作經(jīng)驗(yàn)
一位上進(jìn)心十足的【大數(shù)據(jù)領(lǐng)域博主】!😜😜😜
中國(guó)DBA聯(lián)盟(ACDU)成員,目前從事DBA及程序編程
擅長(zhǎng)主流數(shù)據(jù)Oracle、MySQL、PG 運(yùn)維開(kāi)發(fā),備份恢復(fù),安裝遷移,性能優(yōu)化、故障應(yīng)急處理等。
? 如果有對(duì)【數(shù)據(jù)庫(kù)】感興趣的【小可愛(ài)】,歡迎關(guān)注【IT邦德】💞💞💞
??????感謝各位大可愛(ài)小可愛(ài)!??????
文章目錄
- 前言
- 📣 1.暢談OceanBase4.0
- 📣 2.OceanBase 社區(qū)版4.0部署
- 📢 2.1 環(huán)境準(zhǔn)備
- 📢 2.2 OBD 部署 OceanBase
- 📣 3.體驗(yàn)多租戶
- 📣 4.報(bào)錯(cuò)解決
- 📣 4.尾聲
前言
OceanBase 社區(qū)發(fā)布 V4.0.0 版本是對(duì)分布式數(shù)據(jù)庫(kù)系統(tǒng)架構(gòu)設(shè)計(jì)的全面升級(jí)。📣 1.暢談OceanBase4.0
? 作為中國(guó)DBA聯(lián)盟的一個(gè)成員,我比較關(guān)注國(guó)產(chǎn)數(shù)據(jù)庫(kù)的動(dòng)態(tài),從2018 年OceanBase 2.0 版本正式發(fā)布,我就開(kāi)始接觸OceanBase了,官方也從不同渠道做了相關(guān)的技術(shù)分享,我基本每次都參加,同時(shí)在OceanBase官方社區(qū)也認(rèn)識(shí)了一些志同道合的朋友。月初正好給客戶做運(yùn)維實(shí)施,客戶在規(guī)劃后期國(guó)產(chǎn)數(shù)據(jù)庫(kù)的替代方案,讓我給點(diǎn)意見(jiàn)。我也是讓客戶多關(guān)注關(guān)注OceanBase。打開(kāi)官網(wǎng),發(fā)現(xiàn)官方發(fā)布了新動(dòng)態(tài),于2022年11月4日發(fā)布了4.0社區(qū)版,于是懷著激動(dòng)的心情去體驗(yàn)了一把,看到一些熟悉的小伙伴在OceanBase問(wèn)答社區(qū)如火如荼的討論4.0版本的新特性,我也班門(mén)弄斧下,談?wù)勎业淖疽?jiàn)。
? OceanBase V4.0 版本在保證功能特性不丟失的前提下,重新審視了數(shù)據(jù)庫(kù)與分布式系統(tǒng)兩個(gè)領(lǐng)域最基礎(chǔ)的設(shè)計(jì),全新推出業(yè)內(nèi)首個(gè)單機(jī)分布式一體化架構(gòu),重點(diǎn)構(gòu)建 HTAP 和云化兩個(gè)基礎(chǔ)能力屬性。與此同時(shí),該版本也從架構(gòu)上解決了 V3.2 版本的設(shè)計(jì)瓶頸,支持更多用戶業(yè)務(wù)關(guān)注的多個(gè)核心能力,在內(nèi)核功能、兼容性、穩(wěn)定性、性能上取得突破。
? 首先OceanBase 4.0 首推的單機(jī)分布式一體化架構(gòu),一方面它具備單機(jī)數(shù)據(jù)庫(kù)高性能、低成本的優(yōu)勢(shì),這個(gè)優(yōu)勢(shì)可以幫助客戶降低成本;另外一方面具備分布式數(shù)據(jù)庫(kù)高可用、可擴(kuò)展、面向云,面向未來(lái)的優(yōu)勢(shì),幫助客戶更好地挖掘數(shù)據(jù)價(jià)值,也就是說(shuō),通過(guò) OceanBase 4.0 可以同時(shí)幫助客戶降本增效,贏得未來(lái)。即便在單機(jī)部署模式下,仍然可以實(shí)現(xiàn)分布式部署的完整功能,包括 Oracle/MySQL 兼容性、TP 事務(wù)處理能力、AP 并行分析查詢能力、租戶資源隔離等。既能夠支持分布式多機(jī)場(chǎng)景,也能夠支持應(yīng)用在單機(jī)場(chǎng)景,既能用在一些比較大規(guī)格、高配置的機(jī)器,也能夠用在低配置的機(jī)器,既能用在關(guān)系型數(shù)據(jù)模型,也能夠用在多模模型,既能夠處理 OLTP 核心業(yè)務(wù)場(chǎng)景,也能夠用來(lái)處理 OLAP 實(shí)時(shí)分析場(chǎng)景。
? 其次快速部署及易用性方面,OceanBase一直在這方面做改進(jìn)。OceanBase 全家桶不再像以前版本那樣一個(gè)個(gè)下載安裝了,在我接下來(lái)的的通過(guò)OceanBase 全家桶部署安裝過(guò)程中,大家就能感受到時(shí)絕對(duì)的是實(shí)至名歸。由原來(lái)需要 5 步手動(dòng)安裝部署,優(yōu)化為3個(gè)步驟,簡(jiǎn)單明了,兩分鐘可以完成體驗(yàn)demo。官方承諾大家可以在 4C8G(即 CPU 4 核心,內(nèi)存 8 GB)的環(huán)境下輕松啟動(dòng)和使用。可以說(shuō)只用3分鐘,就能讓你擁有一款單機(jī) OB 分布式數(shù)據(jù)庫(kù)。平時(shí)我比較關(guān)注國(guó)產(chǎn)數(shù)據(jù)庫(kù)的發(fā)展,也做過(guò)其他的國(guó)產(chǎn)數(shù)據(jù)庫(kù)相關(guān)評(píng)測(cè)及體驗(yàn),就拿opengauss、達(dá)夢(mèng)、TiDB的來(lái)說(shuō),感覺(jué)對(duì)環(huán)境要求比較高,部署過(guò)程較為繁瑣,非常耗時(shí),這樣很影響對(duì)數(shù)據(jù)庫(kù)的體驗(yàn)感。同時(shí)在Docker 部署的國(guó)產(chǎn)數(shù)據(jù)庫(kù)方面不多,OceanBase支持在Docker容器部署,這對(duì)平時(shí)做測(cè)試有很大幫助,發(fā)布后的第一時(shí)間,我也是通知了共事的小伙伴,大家一起體驗(yàn)了版本的一些新特性,比如并行處理,數(shù)據(jù)壓縮,多租戶模式資源的靈活調(diào)整等,確實(shí)很不錯(cuò),性能很棒。部署更加便捷,讓用戶能夠更好的體驗(yàn)OceanBase,OceanBase 4.0 的核心目標(biāo)是要讓我們的DBA小伙伴們更簡(jiǎn)單地使用數(shù)據(jù)庫(kù)。
? 最后,明顯發(fā)現(xiàn)這次的OceanBase全家桶安裝包里面包含了 OBD、OceanBase 數(shù)據(jù)庫(kù)、 OBProxy、obagent、Grafana 和 Prometheus ,一應(yīng)俱全啊。隨著業(yè)務(wù)種類的增加、服務(wù)器數(shù)量的增長(zhǎng)、網(wǎng)絡(luò)環(huán)境的越發(fā)復(fù)雜以及發(fā)布更加頻繁,從而不可避免地帶來(lái)了線上事故的增多,因此需要對(duì)服務(wù)器到應(yīng)用的全方位監(jiān)控,提前預(yù)警,急需一個(gè)工具來(lái)解決這個(gè)問(wèn)題,而OceanBase通過(guò)Grafana、Prometheus 的結(jié)合,完美的解決了這個(gè)問(wèn)題。可以在眾多國(guó)產(chǎn)數(shù)據(jù)庫(kù)中,OceanBase的工具是最多也是最齊全的,敏捷的診斷 SQL Diagnoser工具、日志數(shù)據(jù)鏈路工具、集群管理平臺(tái)、OMS數(shù)據(jù)遷移服務(wù),導(dǎo)入/導(dǎo)出工具等。各個(gè)工具各司其職,無(wú)縫配合。
📣 2.OceanBase 社區(qū)版4.0部署
以下是自己虛擬機(jī)環(huán)境做的OceanBase4.0社區(qū)版本單機(jī)分布式部署詳細(xì)過(guò)程,部署過(guò)程中也遇到了一些問(wèn)題點(diǎn)分享給大家,一起交流學(xué)習(xí)。
📢 2.1 環(huán)境準(zhǔn)備
[root@rhel76 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
[root@rhel76 ~]# vi /etc/fstab
#添加如下內(nèi)容
tmpfs /dev/shm tmpfs defaults,size=8G 0 0
[root@rhel76 ~]# mount -o remount /dev/shm
[root@rhel76 ~]# df -h /dev/shm/
Filesystem Size Used Avail Use% Mounted on
tmpfs 8G 0 8G 0% /dev/shm
OB 3時(shí)代的時(shí)候顯然會(huì)比較麻煩,經(jīng)常遇到由于資源不足導(dǎo)致啟動(dòng)失敗。通過(guò)以上方法,給操作系統(tǒng)分配了8G的內(nèi)存,OceanBase 社區(qū)版4.0版本已經(jīng)支持4c8g的配置來(lái)安裝了,這對(duì)電腦配置低的小伙伴確實(shí)是個(gè)福音,另外對(duì)于 CPU 和內(nèi)存使用做了大量的優(yōu)化,實(shí)測(cè)在 4C8G 環(huán)境下跑的很流暢,4C8G輕松部署,相比Tidb、達(dá)夢(mèng)數(shù)據(jù)庫(kù),基本上我的電腦小風(fēng)扇已經(jīng)轉(zhuǎn)起來(lái)了。目前主流的PC一般可以達(dá)到8C16G,這很大程度上能讓更多的喜歡OB的用戶能隨時(shí)隨地隨心所欲的去搞起來(lái)。
##設(shè)置Hostname
[root@rhel76 ~]# hostnamectl set-hostname OceanBase
hostnamectl set-hostname永久主機(jī)名 是對(duì)/etc/hostname文件的內(nèi)容進(jìn)行修改
📢 2.2 OBD 部署 OceanBase
第一步下載安裝包,全家桶安裝包all-in-one package大小一共 246MB,是為了方便用戶能夠一鍵安裝 OceanBase 相關(guān)組件推出的一站式安裝包。OBD、OceanBase 數(shù)據(jù)庫(kù)、 OBProxy、obagent、Grafana 和 Prometheus ,一應(yīng)俱全啊。將所有組件提前做好適配測(cè)試并給出推薦組合版本。
第二步就是通過(guò)以下tar -xzf命令解壓安裝包。
最后一步我就是一鍵安裝,用戶只需要不到2分鐘的等待,部署更快,體驗(yàn)感更強(qiáng)。當(dāng)安裝 grafana 或 prometheus 時(shí),會(huì)輸出 grafana 或 prometheus 訪問(wèn)地址,整個(gè)安裝過(guò)程很流暢,而且日志輸出的非常詳細(xì)。安裝結(jié)束后通過(guò)執(zhí)行which obd 和 which obclient 檢測(cè)是否安裝成功,如果可以找到 obd 和 obclient 表示安裝成功。
[root@oceanbase ~]# cd oceanbase-all-in-one/bin/
[root@oceanbase bin]# ./install.sh
在這里我使用 obd demo 快速部署單機(jī),部署并啟動(dòng) OceanBase 數(shù)據(jù)庫(kù)。
[root@oceanbase ~]# cd oceanbase-all-in-one
[root@oceanbase oceanbase-all-in-one]# obd demo
集群的管理命令也很便捷,都可以實(shí)現(xiàn)一鍵管理,相對(duì)其他集群管理的數(shù)據(jù)庫(kù),OB這塊做的簡(jiǎn)單明了,集群可隨時(shí)創(chuàng)建,也可隨時(shí)銷毀釋放資源。之前體驗(yàn)其他國(guó)產(chǎn)數(shù)據(jù)庫(kù),常發(fā)生集群銷毀不干凈而導(dǎo)致二次安裝失敗。
關(guān)閉集群:obd cluster stop demo
銷毀集群:obd cluster destroy demo
查看集群: obd cluster list
最后再看看如何連接OceanBase租戶,MySQL 命令行客戶端或者圖形化工具上也是能連接 OceanBase 的租戶。此外,OceanBase 也提供專屬的命令行客戶端工具 ODC 。ODC 是對(duì) OceanBase 適配性最好的客戶端工具。新創(chuàng)建的業(yè)務(wù)租戶的管理員(root)密碼默認(rèn)是空的,需要改密碼。
# 使用 OBClient 客戶端連接到 OceanBase 數(shù)據(jù)庫(kù)
[root@oceanbase ~]# obclient -h127.0.0.1 -uroot -P2881
# 修改sys租戶管理員密碼
obclient [(none)]> alter user root identified by ‘jem’;
📣 3.體驗(yàn)多租戶
OceanBase 數(shù)據(jù)庫(kù)具有多租戶的特性,在集群層面實(shí)現(xiàn)了實(shí)例資源的池化。在 OceanBase 數(shù)據(jù)庫(kù)中,每一個(gè)租戶即一個(gè)實(shí)例(類比 MySQL instance)。租戶與租戶之間數(shù)據(jù)、權(quán)限、資源隔離,每個(gè)租戶擁有自己獨(dú)立的訪問(wèn)端口及 CPU、內(nèi)存訪問(wèn)資源。
OceanBase 數(shù)據(jù)庫(kù)可以靈活的調(diào)整租戶資源分配情況(CPU、內(nèi)存),并且整個(gè)過(guò)程對(duì)上層業(yè)務(wù)透明。通過(guò)多租戶機(jī)制,OceanBase 集群可以幫助用戶高效的利用資源,在保證可用性和性能的前提下,優(yōu)化成本,并且做到按照需求彈性擴(kuò)容。
多租戶只需要三步,unit資源配置、創(chuàng)建資源池、創(chuàng)建租戶即可搞定。
可以看到集群下兩個(gè)租戶的資源、數(shù)據(jù)、權(quán)限都是隔離的。這種多租戶隔離,可以解決租戶的在線DDL,數(shù)據(jù)存儲(chǔ)高壓縮比這些痛點(diǎn)。租戶提供分區(qū)表的水平拆分方案,提供原生的 SQL 和事務(wù)能力,對(duì)業(yè)務(wù)透明。并且支持在線擴(kuò)容和縮容,內(nèi)部數(shù)據(jù)遷移異步進(jìn)行,具備高可用能力,不怕擴(kuò)容和縮容過(guò)程中出現(xiàn)故障。所有的租戶按需分配,彈性伸縮,具備高可用能力,類似于云數(shù)據(jù)庫(kù)服務(wù)。運(yùn)維人員只需要維護(hù)少數(shù)幾套集群,就可以提供很多實(shí)例給業(yè)務(wù)使用,易用性非常好。
📣 4.報(bào)錯(cuò)解決
在啟動(dòng)集群的過(guò)程中,如如下報(bào)錯(cuò),表示一個(gè)是用戶最大打開(kāi)文件數(shù)不夠
[ERROR] OBD-1007: (127.0.0.1) open files must not be less than 20000 (Current value: 1024)
linux系統(tǒng)默認(rèn)open files數(shù)目為1024, 有時(shí)應(yīng)用程序會(huì)報(bào)Too many open files的錯(cuò)誤,是因?yàn)閛pen files 數(shù)目不夠。這就需要修改ulimit和file-max。特別是提供大量靜態(tài)文件訪問(wèn)的web服務(wù)器,緩存服務(wù)器(如squid), 更要注意這個(gè)問(wèn)題。
1.修改file-max
# vi /etc/sysctl.conf, 加入以下內(nèi)容,重啟生效
fs.file-max=102400
net.nf_conntrack_max = 1024000
net.netfilter.nf_conntrack_max = 1024000
2.修改ulimit的open file,系統(tǒng)默認(rèn)的ulimit對(duì)文件打開(kāi)數(shù)量的限制是1024
# vi /etc/security/limits.conf //加入以下配置,重啟即可生效
* hard nofile 102400
* soft nofile 102400
📣 4.尾聲
其實(shí)OceanBase 在社區(qū)和用戶的驅(qū)動(dòng)下得到了飛速發(fā)展,能力不斷突破。核心內(nèi)核引擎的 300 萬(wàn)行代碼完全對(duì)外開(kāi)放開(kāi)源。并且不斷完善OceanBase 的生態(tài)工具,核心目標(biāo)就是從“能用”到“更好用”,在易用性上怎樣做監(jiān)控、怎樣做運(yùn)維、怎樣做數(shù)據(jù)同步鏈路可視化是下足了功夫,不斷的提升數(shù)據(jù)庫(kù)自治能力。OceanBase 4.0 對(duì)多租戶的能力及 DBPaaS 能力做了提升,幫助客戶更好地進(jìn)行資源整合,可以同時(shí)支持 CPU 的隔離及IOPS 的強(qiáng)隔離。測(cè)試表明,同等硬件的環(huán)境之下,OceanBase 社區(qū)版 4.0 版本的性能是 Greenplum6.22 的 5-6 倍,部分性能場(chǎng)景性能達(dá)到 20-60 倍。對(duì)比了 OceanBase 和 MySQL 的性能,當(dāng)時(shí)使用的是 MySQL 企業(yè)版 8.0 與 OceanBase 的企業(yè)版4.0,在同等硬件條件下,OceanBase 企業(yè)版 4.0 的性能是 MySQL 企業(yè)版 8.0 的 1.9 倍。
單機(jī)分布式一體化架構(gòu)要求兼具分布式的擴(kuò)展性和集中式數(shù)據(jù)庫(kù)的功能和單機(jī)性能。事務(wù)的 ACID( Atomicity,Consistency,Isolation,Durability)是數(shù)據(jù)庫(kù)的基本要求,而分布式數(shù)據(jù)庫(kù)的難點(diǎn)就在于如何在異常場(chǎng)景下保證事務(wù)的 ACID,核心就是如何基于重做日志(Redo log)實(shí)現(xiàn)故障恢復(fù),以及基于重做日志實(shí)現(xiàn)異常場(chǎng)景下分布式事務(wù)的原子性。OceanBase 4.0 克服了這些技術(shù)難題,實(shí)現(xiàn)了在線水平擴(kuò)展的同時(shí)不增加分布式相關(guān) overhead,從而能夠像集中式數(shù)據(jù)庫(kù)一樣部署在小規(guī)格的服務(wù)器上,做到單節(jié)點(diǎn)性能達(dá)到甚至超越集中式數(shù)據(jù)庫(kù)的水平。當(dāng)然,OceanBase 每個(gè)版本走向成熟都離不開(kāi)大量真實(shí)業(yè)務(wù)場(chǎng)景的打磨。OceanBase 4.0 的很多創(chuàng)新和想法來(lái)源于用戶的需求或者建議。真正的做到了與用戶和開(kāi)發(fā)者共同成長(zhǎng)。
從分布式數(shù)據(jù)庫(kù)的下游應(yīng)用領(lǐng)域來(lái)看,當(dāng)前分布式數(shù)據(jù)庫(kù)主要應(yīng)用于金融、電信、互聯(lián)網(wǎng)等產(chǎn)生海量數(shù)據(jù)的行業(yè),以及快遞物流、餐飲服務(wù)、旅游服務(wù)等C端客戶較多的行業(yè)。隨著金融業(yè)務(wù)數(shù)據(jù)量的高速增長(zhǎng),數(shù)據(jù)系統(tǒng)管理彈性需求提升、數(shù)據(jù)系統(tǒng)訪問(wèn)查詢需求提升,都對(duì)數(shù)據(jù)的存儲(chǔ)、處理、挖掘都有更強(qiáng)的需求。當(dāng)前金融應(yīng)用層面開(kāi)始普遍使用分布式架構(gòu),但數(shù)據(jù)庫(kù)層面卻仍然普遍采用集中式架構(gòu),這是由于金融行業(yè)對(duì)于數(shù)據(jù)存儲(chǔ)的要求較為嚴(yán)格。不過(guò)隨著分布式數(shù)據(jù)庫(kù)技術(shù)的持續(xù)發(fā)展,國(guó)產(chǎn)金融級(jí)交易型分布式數(shù)據(jù)庫(kù)已經(jīng)在大型銀行核心信用卡、賬務(wù)系統(tǒng)等領(lǐng)域落地使用。互聯(lián)網(wǎng)是分布式數(shù)據(jù)庫(kù)最早開(kāi)始使用的領(lǐng)域,這是由于互聯(lián)網(wǎng)領(lǐng)域數(shù)據(jù)量大,面臨的數(shù)據(jù)存儲(chǔ)成本高,同時(shí)電商大促等場(chǎng)景下對(duì)于數(shù)據(jù)庫(kù)的擴(kuò)展性需求高,相信OceanBase分布式數(shù)據(jù)在用戶不斷的使用過(guò)程中,不段的改進(jìn)和提升,肯定能夠受到互聯(lián)網(wǎng)企業(yè)的認(rèn)可,引領(lǐng)國(guó)產(chǎn)數(shù)據(jù)庫(kù)向更貼合用戶需求的方向不斷壯大,真正實(shí)現(xiàn)去IOE。OceanBase社區(qū)版 4.0確實(shí)給了我很多驚喜和對(duì)OceanBase未來(lái)版本演進(jìn)的期待。
總結(jié)
以上是生活随笔為你收集整理的OceanBase社区版4.0,给了我很多惊喜的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 返利系统功能详细介绍
- 下一篇: WPF基本控件的简介(二)