日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

「OceanBase 4.1 体验」|快速安装部署

發(fā)布時(shí)間:2024/3/13 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 「OceanBase 4.1 体验」|快速安装部署 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 一、Oceanbase數(shù)據(jù)庫簡(jiǎn)介
      • 1.1 核心特性
      • 1.2 系統(tǒng)架構(gòu)
        • 1.2.1 存儲(chǔ)層
        • 1.2.2 復(fù)制層
        • 1.2.3 均衡層
        • 1.2.4 事務(wù)層
          • 1.2.4.1 原子性
          • 1.2.4.2 隔離性
        • 1.2.5 SQL 層
          • 1.2.5.1 SQL 層組件
          • 1.2.5.2 多種計(jì)劃
        • 1.2.6 接入層
    • 二、OceanBase 數(shù)據(jù)庫社區(qū)版部署
      • 2.1 部署方式
      • 2.2 基礎(chǔ)環(huán)境配置
      • 2.3 通過 OBD 白屏部署 OceanBase 集群(小集群?jiǎn)我还芾?
      • 2.4 通過 OCP 白屏部署 OceanBase 集群(多集群統(tǒng)一管理)
    • 三、總結(jié)

一、Oceanbase數(shù)據(jù)庫簡(jiǎn)介

??OceanBase 數(shù)據(jù)庫是一款完全自研的企業(yè)級(jí)原生分布式數(shù)據(jù)庫,在普通硬件上實(shí)現(xiàn)金融級(jí)高可用,首創(chuàng)“三地五中心”城市級(jí)故障自動(dòng)無損容災(zāi)新標(biāo)準(zhǔn),刷新 TPC-C 標(biāo)準(zhǔn)測(cè)試,單集群規(guī)模超過 1500 節(jié)點(diǎn),具有云原生、強(qiáng)一致性、高度兼容 Oracle/MySQL 等特性。

1.1 核心特性

  • 高可用
    獨(dú)創(chuàng) “三地五中心” 容災(zāi)架構(gòu)方案,建立金融行業(yè)無損容災(zāi)新標(biāo)準(zhǔn)。支持同城/異地容災(zāi),可實(shí)現(xiàn)多地多活,滿足金融行業(yè) 6 級(jí)容災(zāi)標(biāo)準(zhǔn)(RPO=0,RTO< 8s),數(shù)據(jù)零丟失。

  • 高兼容
    高度兼容 Oracle 和 MySQL,覆蓋絕大多數(shù)常見功能,支持過程語言、觸發(fā)器等高級(jí)特性,提供自動(dòng)遷移工具,支持遷移評(píng)估和反向同步以保障數(shù)據(jù)遷移安全,可支撐金融、政府、運(yùn)營(yíng)商等關(guān)鍵行業(yè)核心場(chǎng)景替代。

  • 水平擴(kuò)展
    實(shí)現(xiàn)透明水平擴(kuò)展,支持業(yè)務(wù)快速的擴(kuò)容縮容,同時(shí)通過準(zhǔn)內(nèi)存處理架構(gòu)實(shí)現(xiàn)高性能。支持集群節(jié)點(diǎn)超過數(shù)千個(gè),單集群最大數(shù)據(jù)量超過 3PB,最大單表行數(shù)達(dá)萬億級(jí)。

  • 低成本
    基于 LSM-Tree 的高壓縮引擎,存儲(chǔ)成本降低 70% - 90%;原生支持多租戶架構(gòu),同集群可為多個(gè)獨(dú)立業(yè)務(wù)提供服務(wù),租戶間數(shù)據(jù)隔離,降低部署和運(yùn)維成本。

  • 實(shí)時(shí) HTAP
    基于“同一份數(shù)據(jù),同一個(gè)引擎”,同時(shí)支持在線實(shí)時(shí)交易及實(shí)時(shí)分析兩種場(chǎng)景,“一份數(shù)據(jù)”的多個(gè)副本可以存儲(chǔ)成多種形態(tài),用于不同工作負(fù)載,從根本上保持?jǐn)?shù)據(jù)一致性。

  • 安全可靠
    12 年完全自主研發(fā),代碼級(jí)可控,自研單機(jī)分布式一體化架構(gòu),大規(guī)模金融核心場(chǎng)景 9 年可靠性驗(yàn)證;完備的角色權(quán)限管理體系,數(shù)據(jù)存儲(chǔ)和通信全鏈路透明加密,支持國(guó)密算法,通過等保三級(jí)專項(xiàng)合規(guī)檢測(cè)。

1.2 系統(tǒng)架構(gòu)

??OceanBase 使用通用服務(wù)器硬件,依賴本地存儲(chǔ),分布式部署使用的多個(gè)服務(wù)器也是對(duì)等的,沒有特殊的硬件要求。OceanBase 的分布式數(shù)據(jù)庫處理采用 Shared Nothing 架構(gòu),數(shù)據(jù)庫內(nèi)的 SQL 執(zhí)行引擎具有分布式執(zhí)行能力。

??OceanBase 在服務(wù)器上會(huì)運(yùn)行叫做 observer 的單進(jìn)程程序作為數(shù)據(jù)庫的運(yùn)行實(shí)例,使用本地的文件存儲(chǔ)數(shù)據(jù)和事務(wù) Redo 日志。

??OceanBase 集群部署需要配置可用區(qū)(Zone),由若干個(gè)服務(wù)器組成。可用區(qū)是一個(gè)邏輯概念,表示集群內(nèi)具有相似硬件可用性的一組節(jié)點(diǎn),它在不同的部署模式下代表不同的含義。例如,當(dāng)整個(gè)集群部署在同一個(gè)數(shù)據(jù)中心(IDC)內(nèi)的時(shí)候,一個(gè)可用區(qū)的節(jié)點(diǎn)可以屬于同一個(gè)機(jī)架,同一個(gè)交換機(jī)等。當(dāng)集群分布在多個(gè)數(shù)據(jù)中心的時(shí)候,每個(gè)可用區(qū)可以對(duì)應(yīng)于一個(gè)數(shù)據(jù)中心。

??用戶存儲(chǔ)的數(shù)據(jù)在分布式集群內(nèi)部可以存儲(chǔ)多個(gè)副本,用于故障容災(zāi),也可以用于分散讀取壓力。在一個(gè)可用區(qū)內(nèi)部數(shù)據(jù)只有一個(gè)副本,不同的可用區(qū)可以存儲(chǔ)同一個(gè)數(shù)據(jù)的多個(gè)副本,副本之間由共識(shí)協(xié)議保證數(shù)據(jù)的一致性。

??OceanBase 內(nèi)置多租戶特性,每個(gè)租戶對(duì)于使用者是一個(gè)獨(dú)立的數(shù)據(jù)庫,一個(gè)租戶能夠在租戶級(jí)別設(shè)置租戶的分布式部署方式。租戶之間 CPU、內(nèi)存和 IO 都是隔離的。

OceanBase的數(shù)據(jù)庫實(shí)例內(nèi)部由不同的組件相互協(xié)作,這些組件從底層向上由存儲(chǔ)層、復(fù)制層、均衡層、事務(wù)層、SQL 層、接入層組成。

1.2.1 存儲(chǔ)層

??存儲(chǔ)層以一張表或者一個(gè)分區(qū)為粒度提供數(shù)據(jù)存儲(chǔ)與訪問,每個(gè)分區(qū)對(duì)應(yīng)一個(gè)用于存儲(chǔ)數(shù)據(jù)的Tablet(分片),用戶定義的非分區(qū)表也會(huì)對(duì)應(yīng)一個(gè) Tablet。

??Tablet 的內(nèi)部是分層存儲(chǔ)的結(jié)構(gòu),總共有 4 層。DML 操作插入、更新、刪除等首先寫入 MemTable,等到 MemTable 達(dá)到一定大小時(shí)轉(zhuǎn)儲(chǔ)到磁盤成為 L0 SSTable。L0 SSTable 個(gè)數(shù)達(dá)到閾值后會(huì)將多個(gè) L0 SSTable 合并成一個(gè) L1 SSTable。在每天配置的業(yè)務(wù)低峰期,系統(tǒng)會(huì)將所有的 MemTable、L0 SSTable 和 L1 SSTable 合并成一個(gè) Major SSTable。

??每個(gè) SSTable 內(nèi)部是以 2MB 定長(zhǎng)宏塊為基本單位,每個(gè)宏塊內(nèi)部由多個(gè)不定長(zhǎng)微塊組成。

??Major SSTable 的微塊會(huì)在合并過程中用編碼方式進(jìn)行格式轉(zhuǎn)換,微塊內(nèi)的數(shù)據(jù)會(huì)按照列維度分別進(jìn)行列內(nèi)的編碼,編碼規(guī)則包括字典/游程/常量/差值等,每一列壓縮結(jié)束后,還會(huì)進(jìn)一步對(duì)多列進(jìn)行列間等值/子串等規(guī)則編碼。編碼能對(duì)數(shù)據(jù)大幅壓縮,同時(shí)提煉的列內(nèi)特征信息還能進(jìn)一步加速后續(xù)的查詢速度。

??在編碼壓縮之后,還可以根據(jù)用戶指定的通用壓縮算法進(jìn)行無損壓縮,進(jìn)一步提升數(shù)據(jù)壓縮率。

1.2.2 復(fù)制層

??復(fù)制層使用日志流(LS、Log Stream)在多副本之間同步狀態(tài)。每個(gè) Tablet 都會(huì)對(duì)應(yīng)一個(gè)確定的日志流,DML 操作寫入 Tablet 的數(shù)據(jù)所產(chǎn)生的 Redo 日志會(huì)持久化在日志流中。日志流的多個(gè)副本會(huì)分布在不同的可用區(qū)中,多個(gè)副本之間維持了共識(shí)算法,選擇其中一個(gè)副本作為主副本,其他的副本皆為從副本。Tablet 的 DML 和強(qiáng)一致性查詢只在其對(duì)應(yīng)的日志流的主副本上進(jìn)行。

??通常情況下,每個(gè)租戶在每臺(tái)機(jī)器上只會(huì)有一個(gè)日志流的主副本,可能存在多個(gè)其他日志流的從副本。租戶的總?cè)罩玖鱾€(gè)數(shù)取決于 Primary Zone 和 Locality 的配置。

??日志流使用自研的 Paxos 協(xié)議將 Redo 日志在本服務(wù)器持久化,同時(shí)通過網(wǎng)絡(luò)發(fā)送給日志流的從副本,從副本在完成各自持久化后應(yīng)答主副本,主副本在確認(rèn)有多數(shù)派副本都持久化成功后確認(rèn)對(duì)應(yīng)的 Redo 日志持久化成功。從副本利用 Redo 日志的內(nèi)容實(shí)時(shí)回放,保證自己的狀態(tài)與主副本一致。

??日志流的主副本在被選舉成為主后會(huì)獲得租約(Lease),正常工作的主副本在租約有效期內(nèi)會(huì)不停的通過選舉協(xié)議延長(zhǎng)租約期。主副本只會(huì)在租約有效時(shí)執(zhí)行主的工作,租約機(jī)制保證了數(shù)據(jù)庫異常處理的能力。

??復(fù)制層能夠自動(dòng)應(yīng)對(duì)服務(wù)器故障,保障數(shù)據(jù)庫服務(wù)的持續(xù)可用。如果出現(xiàn)少于半數(shù)的從副本所在服務(wù)器出現(xiàn)問題,因?yàn)檫€有多于半數(shù)的副本正常工作,數(shù)據(jù)庫的服務(wù)不受影響。如果主副本所在服務(wù)器出現(xiàn)問題,其租約會(huì)得不到延續(xù),待其租約失效后,其他從副本會(huì)通過選舉協(xié)議選舉出新的主副本并授予新的租約,之后即可恢復(fù)數(shù)據(jù)庫的服務(wù)。

1.2.3 均衡層

??新建表和新增分區(qū)時(shí),系統(tǒng)會(huì)按照均衡原則選擇合適的日志流創(chuàng)建 Tablet。當(dāng)租戶的屬性發(fā)生變更,新增了機(jī)器資源,或者經(jīng)過長(zhǎng)時(shí)間使用后,Tablet 在各臺(tái)機(jī)器上不再均衡時(shí),均衡層通過日志流的分裂和合并操作,并在這個(gè)過程中配合日志流副本的移動(dòng),讓數(shù)據(jù)和服務(wù)在多個(gè)服務(wù)器之間再次均衡。

??當(dāng)租戶有擴(kuò)容操作,獲得更多服務(wù)器資源時(shí),均衡層會(huì)將租戶內(nèi)已有的日志流進(jìn)行分裂,并選擇合適數(shù)量的 Tablet 一同分裂到新的日志流中,再將新日志流遷移到新增的服務(wù)器上,以充分利用擴(kuò)容后的資源。當(dāng)租戶有縮容操作時(shí),均衡層會(huì)把需要縮減的服務(wù)器上的日志流遷移到其他服務(wù)器上,并和其他服務(wù)器上已有的日志流進(jìn)行合并,以縮減機(jī)器的資源占用。

??當(dāng)數(shù)據(jù)庫長(zhǎng)期使用后,隨著持續(xù)創(chuàng)建刪除表格,并且寫入更多的數(shù)據(jù),即使沒有服務(wù)器資源數(shù)量變化,原本均衡的情況可能被破壞。最常見的情況是,當(dāng)用戶刪除了一批表格后,刪除的表格可能原本聚集在某一些機(jī)器上,刪除后這些機(jī)器上的 Tablet 數(shù)量就變少了,應(yīng)該把其他機(jī)器的 Tablet 均衡一些到這些少的機(jī)器上。均衡層會(huì)定期生成均衡計(jì)劃,將 Tablet 多的服務(wù)器上日志流分裂出臨時(shí)日志流并攜帶需要移動(dòng)的 Tablet,臨時(shí)日志流遷移到目的服務(wù)器后再和目的服務(wù)器上的日志流進(jìn)行合并,以達(dá)成均衡的效果。

1.2.4 事務(wù)層

??事務(wù)層保證了單個(gè)日志流和多個(gè)日志流DML操作提交的原子性,也保證了并發(fā)事務(wù)之間的多版本隔離能力。

1.2.4.1 原子性

??一個(gè)日志流上事務(wù)的修改,即使涉及多個(gè) Tablet,通過日志流的 write-ahead log 可以保證事務(wù)提交的原子性。事務(wù)的修改涉及多個(gè)日志流時(shí),每個(gè)日志流會(huì)產(chǎn)生并持久化各自的write-ahead log,事務(wù)層通過優(yōu)化的兩階段提交協(xié)議來保證提交的原子性。

??事務(wù)層會(huì)選擇一個(gè)事務(wù)修改的一個(gè)日志流產(chǎn)生協(xié)調(diào)者狀態(tài)機(jī),協(xié)調(diào)者會(huì)與事務(wù)修改的所有日志流通信,判斷 write-ahead log 是否持久化,當(dāng)所有日志流都完成持久化后,事務(wù)進(jìn)入提交狀態(tài),協(xié)調(diào)者會(huì)再驅(qū)動(dòng)所有日志流寫下這個(gè)事務(wù)的 Commit 日志,表示事務(wù)最終的提交狀態(tài)。當(dāng)從副本回放或者數(shù)據(jù)庫重啟時(shí),已經(jīng)完成提交的事務(wù)都會(huì)通過 Commit 日志確定各自日志流事務(wù)的狀態(tài)。

??宕機(jī)重啟場(chǎng)景下,宕機(jī)前還未完成的事務(wù),會(huì)出現(xiàn)寫完 write-ahead log 但是還沒有Commit 日志的情況,每個(gè)日志流的 write-ahead log 都會(huì)包含事務(wù)的所有日志流列表,通過此信息可以重新確定哪個(gè)日志流是協(xié)調(diào)者并恢復(fù)協(xié)調(diào)者的狀態(tài),再次推進(jìn)兩階段狀態(tài)機(jī),直到事務(wù)最終的 Commit 或 Abort 狀態(tài)。

1.2.4.2 隔離性

??GTS 服務(wù)是一個(gè)租戶內(nèi)產(chǎn)生連續(xù)增長(zhǎng)的時(shí)間戳的服務(wù),其通過多副本保證可用性,底層機(jī)制與上面復(fù)制層所描述的日志流副本同步機(jī)制是一樣的。

??每個(gè)事務(wù)在提交時(shí)會(huì)從 GTS 獲取一個(gè)時(shí)間戳作為事務(wù)的提交版本號(hào)并持久化在日志流的write-ahead log 中,事務(wù)內(nèi)所有修改的數(shù)據(jù)都以此提交版本號(hào)標(biāo)記。

??每個(gè)語句開始時(shí)(對(duì)于 Read Committed 隔離級(jí)別)或者每個(gè)事務(wù)開始時(shí)(對(duì)于Repeatable Read 和 Serializable 隔離級(jí)別)會(huì)從 GTS 獲取一個(gè)時(shí)間戳作為語句或事務(wù)的讀取版本號(hào)。在讀取數(shù)據(jù)時(shí),會(huì)跳過事務(wù)版本號(hào)比讀取版本號(hào)大的數(shù)據(jù),通過這種方式為讀取操作提供了統(tǒng)一的全局?jǐn)?shù)據(jù)快照。

1.2.5 SQL 層

??SQL 層將用戶的 SQL 請(qǐng)求轉(zhuǎn)化成對(duì)一個(gè)或多個(gè) Tablet 的數(shù)據(jù)訪問。

1.2.5.1 SQL 層組件

??SQL 層處理一個(gè)請(qǐng)求的執(zhí)行流程是:Parser、Resolver、Transformer、Optimizer、Code Generator、Executor。

??Parser 負(fù)責(zé)詞法/語法解析,Parser 會(huì)將用戶的 SQL 分成一個(gè)個(gè)的 “Token”,并根據(jù)預(yù)先設(shè)定好的語法規(guī)則解析整個(gè)請(qǐng)求,轉(zhuǎn)換成語法樹(Syntax Tree)。

??Resolver 負(fù)責(zé)語義解析,將根據(jù)數(shù)據(jù)庫元信息將 SQL 請(qǐng)求中的 Token 翻譯成對(duì)應(yīng)的對(duì)象(例如庫、表、列、索引等),生成的數(shù)據(jù)結(jié)構(gòu)叫做 Statement Tree。

??Transformer 負(fù)責(zé)邏輯改寫,根據(jù)內(nèi)部的規(guī)則或代價(jià)模型,將 SQL 改寫為與之等價(jià)的其他形式,并將其提供給后續(xù)的優(yōu)化器做進(jìn)一步的優(yōu)化。Transformer 的工作方式是在原Statement Tree 上做等價(jià)變換,變換的結(jié)果仍然是一棵 Statement Tree。

??Optimizer(優(yōu)化器)為 SQL 請(qǐng)求生成最佳的執(zhí)行計(jì)劃,需要綜合考慮 SQL 請(qǐng)求的語義、對(duì)象數(shù)據(jù)特征、對(duì)象物理分布等多方面因素,解決訪問路徑選擇、聯(lián)接順序選擇、聯(lián)接算法選擇、分布式計(jì)劃生成等問題,最終生成執(zhí)行計(jì)劃。

??Code Generator(代碼生成器)將執(zhí)行計(jì)劃轉(zhuǎn)換為可執(zhí)行的代碼,但是不做任何優(yōu)化選擇。

??Executor(執(zhí)行器)啟動(dòng) SQL 的執(zhí)行過程。

??在標(biāo)準(zhǔn)的 SQL 流程之外,SQL 層還有 Plan Cache 能力,將歷史的執(zhí)行計(jì)劃緩存在內(nèi)存中,后續(xù)的執(zhí)行可以反復(fù)執(zhí)行這個(gè)計(jì)劃,避免了重復(fù)查詢優(yōu)化的過程。配合 Fast-parser 模塊,僅使用詞法分析對(duì)文本串直接參數(shù)化,獲取參數(shù)化后的文本及常量參數(shù),讓 SQL 直接命中 Plan Cache,加速頻繁執(zhí)行的 SQL。

1.2.5.2 多種計(jì)劃

??SQL 層的執(zhí)行計(jì)劃分為本地、遠(yuǎn)程和分布式三種。本地執(zhí)行計(jì)劃只訪問本服務(wù)器的數(shù)據(jù)。遠(yuǎn)程執(zhí)行計(jì)劃只訪問非本地的一臺(tái)服務(wù)器的數(shù)據(jù)。分布式計(jì)劃會(huì)訪問超過一臺(tái)服務(wù)器的數(shù)據(jù),執(zhí)行計(jì)劃會(huì)分成多個(gè)子計(jì)劃在多個(gè)服務(wù)器上執(zhí)行。

??SQL 層并行化執(zhí)行能力可以將執(zhí)行計(jì)劃分解成多個(gè)部分,由多個(gè)執(zhí)行線程執(zhí)行,通過一定的調(diào)度的方式,實(shí)現(xiàn)執(zhí)行計(jì)劃的并行處理。并行化執(zhí)行可以充分發(fā)揮服務(wù)器 CPU 和 IO 處理能力,縮短單個(gè)查詢的響應(yīng)時(shí)間。并行查詢技術(shù)可以用于分布式執(zhí)行計(jì)劃,也可以用于本地執(zhí)行計(jì)劃。

1.2.6 接入層

??obproxy 是 OceanBase 數(shù)據(jù)庫的接入層,負(fù)責(zé)將用戶的請(qǐng)求轉(zhuǎn)發(fā)到合適的 OceanBase 實(shí)例上進(jìn)行處理。

??obproxy 是獨(dú)立的進(jìn)程實(shí)例,獨(dú)立于 OceanBase 的數(shù)據(jù)庫實(shí)例部署。obproxy 監(jiān)聽網(wǎng)絡(luò)端口,兼容 MySQL 網(wǎng)絡(luò)協(xié)議,支持使用 MySQL 驅(qū)動(dòng)的應(yīng)用直接連接 OceanBase。

??obproxy 能夠自動(dòng)發(fā)現(xiàn) OceanBase 集群的數(shù)據(jù)分布信息,對(duì)于代理的每一條 SQL 語句,會(huì)盡可能識(shí)別出語句將訪問的數(shù)據(jù),并將語句直接轉(zhuǎn)發(fā)到數(shù)據(jù)所在服務(wù)器的 OceanBase 實(shí)例。

??obproxy 有兩種部署方式,一種是部署在每一個(gè)需要訪問數(shù)據(jù)庫的應(yīng)用服務(wù)器上,另一種是部署在與 OceanBase 相同的機(jī)器上。第一種部署方式下,應(yīng)用程序直接連接部署在同一臺(tái)服務(wù)器上的 obproxy,所有的請(qǐng)求會(huì)由 obproxy 發(fā)送到合適的 OceanBase 服務(wù)器。第二種部署方式下,需要使用網(wǎng)絡(luò)負(fù)載均衡服務(wù)將多個(gè) obproxy 聚合成同一個(gè)對(duì)應(yīng)用提供服務(wù)的入口地址。

二、OceanBase 數(shù)據(jù)庫社區(qū)版部署

2.1 部署方式

快速部署

  • 對(duì)于非原生支持的操作系統(tǒng)(比如 MAC 和 Windows),建議使用 Docker 鏡像的方式進(jìn)行部署;
  • 對(duì)于原生支持的操作系統(tǒng)(Linux 系列,具體見支持的操作系統(tǒng)列表),建議使用 OBD 進(jìn)行部署;
    標(biāo)準(zhǔn)部署
  • 對(duì)于線下環(huán)境,建議使用 OBD/OCP 進(jìn)行標(biāo)準(zhǔn)部署
  • 對(duì)于 kubernetes 環(huán)境,建議使用 ob-operator 的方式部署;

2.2 基礎(chǔ)環(huán)境配置

軟硬件要求參考官方文檔:https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001692940
所有的機(jī)器使用相同的軟硬件配置
設(shè)置無密碼 SSH 登錄
配置ntp始終
配置 limits.conf
在 /etc/security/limits.conf 配置文件中添加以下內(nèi)容:

root soft nofile 655350 root hard nofile 655350 * soft nofile 655350 * hard nofile 655350 * soft stack 20480 * hard stack 20480 * soft nproc 655360 * hard nproc 655360 * soft core unlimited * hard core unlimited

配置 sysctl.conf
在 /etc/sysctl.conf 配置文件中添加以下內(nèi)容:

# for oceanbase ## 修改內(nèi)核異步 I/O 限制 fs.aio-max-nr=1048576## 網(wǎng)絡(luò)優(yōu)化 net.core.somaxconn = 2048 net.core.netdev_max_backlog = 10000 net.core.rmem_default = 16777216 net.core.wmem_default = 16777216 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216net.ipv4.ip_local_port_range = 3500 65535 net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.tcp_syncookies = 0 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_slow_start_after_idle=0vm.swappiness = 0 vm.min_free_kbytes = 2097152# 此處為 OceanBase 數(shù)據(jù)庫的 data 目錄 kernel.core_pattern = /data/core-%e-%p-%t

其中,kernel.core_pattern 中的 /data 為 OceanBase 數(shù)據(jù)庫的 data 目錄。如果您只是測(cè)試,您可以只設(shè)置 fs.aio-max-nr=1048576。

sysctl -p

關(guān)閉防火墻和 SELinux

關(guān)閉防火墻 systemctl disable firewalld systemctl stop firewalld systemctl status firewalld關(guān)閉 SELinux 執(zhí)行以下命令,打開 /etc/selinux/config 配置文件:vi /etc/selinux/config 在 /etc/selinux/config 配置文件中修改對(duì)應(yīng)配置項(xiàng)為以下內(nèi)容:SELINUX=disabled 執(zhí)行以下命令或重啟服務(wù)器,使更改生效:setenforce 0 執(zhí)行以下命令,查看更改是否生效:sestatus

關(guān)閉透明大頁

echo never > /sys/kernel/mm/transparent_hugepage/enabled

關(guān)閉防火墻和 SELinux

systemctl disable firewalld systemctl stop firewalld systemctl status firewalld在 /etc/selinux/config 配置文件中修改對(duì)應(yīng)配置項(xiàng)為以下內(nèi)容: SELINUX=disabled 執(zhí)行以下命令或重啟服務(wù)器,使更改生效: setenforce 0 執(zhí)行以下命令,查看更改是否生效: sestatus

創(chuàng)建用戶

#創(chuàng)建賬戶 admin useradd -U admin -d /home/admin -s /bin/bash mkdir -p /home/admin chown -R admin:admin /home/admin passwd admin在/etc/sudoers添加如下內(nèi)容: # %wheel ALL=(ALL) NOPASSWD: ALL admin ALL=(ALL) NOPASSWD: ALL修改集群相關(guān)文件所屬用戶 #數(shù)據(jù)盤,數(shù)據(jù)盤用來存儲(chǔ)基線數(shù)據(jù),路徑由配置參數(shù) data_dir 指定。在您首次啟動(dòng) OceanBase 集群時(shí),${data_dir}/sstable 將自動(dòng)創(chuàng)建。數(shù)據(jù)盤的大小由 datafile_disk_percentage/datafile_size 參數(shù)決定。 chown -R admin:admin /data/ob_data #事務(wù)日志盤,事務(wù)日志盤的路徑由配置參數(shù) redo_dir 指定。建議您將事務(wù)日志盤的大小設(shè)置為 OceanBase 數(shù)據(jù)庫內(nèi)存的 3 倍到 4 倍及以上。事務(wù)日志盤包含多個(gè)固定大小的文件。這些文件位于安裝目錄 ${redo_dir}/{clog,ilog,slog} 下。您可以根據(jù)您的需要自動(dòng)創(chuàng)建和清除事務(wù)日志。事務(wù)日志達(dá)到磁盤總量的 80% 時(shí),將觸發(fā)自動(dòng)清除。但是,只有在事務(wù)日志對(duì)應(yīng)的內(nèi)存數(shù)據(jù)已經(jīng)合并融至基線數(shù)據(jù)中時(shí),事務(wù)日志才能被刪除。在相同數(shù)據(jù)量的情況下,事務(wù)日志的大小約為內(nèi)存數(shù)據(jù)大小的三倍。因此事務(wù)日志盤所需空間上限與兩次合并后的數(shù)據(jù)總量成正比。經(jīng)驗(yàn)公式:事務(wù)日志文件大小 = 增量數(shù)據(jù)內(nèi)存上限的 3~4 倍。 chown -R admin:admin /data/ob_redo #OceanBase 數(shù)據(jù)庫安裝盤,OceanBase 數(shù)據(jù)庫安裝盤的路徑由配置參數(shù) home_path 指定。建議您為 OceanBase 數(shù)據(jù)庫安裝盤預(yù)留至少 200 G 空間以保存 7 天及以上的日志。OceanBase 數(shù)據(jù)庫的 RPM 包安裝目錄位于 ${home_path} 下。其中,基線數(shù)據(jù)文件和事務(wù)日志文件會(huì)通過軟鏈接分別指向獨(dú)立的數(shù)據(jù)盤和事務(wù)日志盤。OceanBase 數(shù)據(jù)庫的運(yùn)行日志位于 ${home_path}/log 下。運(yùn)行日志會(huì)不斷增長(zhǎng),并且 OceanBase 數(shù)據(jù)庫無法自動(dòng)刪除運(yùn)行日志,因此您需要定時(shí)刪除運(yùn)行日志。 chown -R admin:admin /data/ob_base

安裝java

yum install java-1.8.0-openjdk -y

2.3 通過 OBD 白屏部署 OceanBase 集群(小集群?jiǎn)我还芾?

#中控機(jī) #下載并安裝 all-in-one https://www.oceanbase.com/softwarecenter tar -xzf oceanbase-all-in-one-*.tar.gz cd oceanbase-all-in-one/bin/ ./install.sh source ~/.oceanbase-all-in-one/bin/env.sh #啟動(dòng)前端 obd web

進(jìn)行配置





預(yù)檢查


部署



# 查看集群列表 obd cluster list# 查看集群狀態(tài) obd cluster display xxx# 停止運(yùn)行中的集群 obd cluster stop xxx# 銷毀已部署的集群 obd cluster destroy xxx

OCP Express









2.4 通過 OCP 白屏部署 OceanBase 集群(多集群統(tǒng)一管理)

wget https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/ocp/4.0.3/ocp-4.0.3-ce-x86_64.tar.gz tar -xzf ocp-4.0.3-ce-x86_64.tar.gz cd ocp-4.0.3-ce-x86_64 ./ocp_installer.sh launch -p 2379 -k /root/.ssh/id_rsa




面板是OCP Express PLUS,提供多集群管控能力

添加軟件包

添加主機(jī)


三、總結(jié)

?OceanBase主要提供了兩種部署模式,OBD and OCP,OBD會(huì)自動(dòng)部署OCP Express用來提供監(jiān)控能力,OCP是一個(gè)中心管控平臺(tái),需要一套metadb來存儲(chǔ)數(shù)據(jù),可以提供多集群管理、部署和OCP Express的能力。
備注:

  • 下載 OceanBase 4.1,請(qǐng)?jiān)L問:https://www.oceanbase.com/softwarecenter

  • OceanBase 4.1 版本技術(shù)文檔:https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001698791)

總結(jié)

以上是生活随笔為你收集整理的「OceanBase 4.1 体验」|快速安装部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。