天天看點

學習筆記(二) | OceanBase

(三)産品部署與基礎概念:

<第一部分>

1.OceanBase資料庫産品家族主要産品:

a) OceanBase資料庫核心:通過Paxos協定保證了高可用性,可以相容MySQL和Oracle,同時相容HTAP,即它既可以用于OLTP業務,也可以用于OLAP業務。

b) OceanBase給運維者提供OCP工具平台,圖形化的界面,幫助管理者更好的完成日常的叢集管理、租戶管理、監控警告、性能診斷等任務。

c) OceanBase給開發者提供ODC工具平台,圖形化的界面,幫助開發者更好的完成資料庫連接配接管理、資料庫對象管理、存儲過程開發測試、導入導出等任務。

d) OceanBase提供了OMS資料庫遷移平台,既可以從資料庫訂閱資料,也可以從異構的資料庫中(如DB2、Oracle、MySQL)進行資料遷移,復原等。

2.OceanBase支援多種部署形式:

(1)OceanBase已經部署到AliCould公有雲上,而且采用兩地三中心的高可用形式部署,使用者/企業可以按需購買。

(2)OceanBase已經包含在AliCould專有雲3.5以上版本

(3)企業可以在自建基礎設施上部署OceanBase

3.安裝配置:(OceanBase采用獨立部署模式、采用3台以上伺服器)

(1)最低性能要求:32C,128G,1.2TB存儲

(2)最佳性能要求:32C,256G,2TB存儲

(3)實驗環境(試用版):2C,8G

4.OCP伺服器是管理伺服器,可1台單機部署,也可以3台部署

5.OceanBase支援如下CPU及作業系統:

CPU:Intel X86系列CPU、海光(Hygon7185)、海斯(鲲鵬920)、飛騰(FT1500a、FT2000)

作業系統:CentOS、RedHat、SUSE、Debian/Ubuntu、AliOS、NeoKylin、Kylin

6.OceanBase部署流程:

部署環境配置-->部署環境檢查-->部署OCP-->部署OceanBase叢集-->部署OBProxy-->建立租戶-->部署備份/恢複服務-->部署OMS/ODC

7.OceanBase用于連接配接資料庫、對資料庫進行日常管理的兩種用戶端工具:

(1)黑屏工具:MySQL用戶端和OceanBase專有的用戶端。OceanBase轉專有的用戶端工具可以同時通路MySQL租戶和Oracle租戶

(2)白屏工具:包含OceanBase雲平台OCP,OceanBase開發者中心ODC

<第二部分>

基礎概念:

①叢集、Zone、OB Server

(1)一個叢集有多個Zone組成,每一份資料在各個Zone上都僅有一個副本。

實體上講:不同的Zone可以對應不同的城市;

邏輯上講:Zone就是給叢集内的一批機器打上同一個tag,具有同樣Tag的伺服器則屬于同一Zone;

(2)由于OceanBase采用Paxos協定,多數派要達到一緻,Zone的個數一般大于3台;

當1個Zone故障後,其餘兩個Zone内的副本仍可構成多數派,不影響業務。Zone個數>=3,最好為奇數,決定了OBserver的個數。

(3)OB Server相對獨立,自身具備計算引擎和存儲引擎。

②RootService總控服務(RS)

(1)OceanBase的核心子產品,管理整個叢集。

(2)叢集内置服務,無需額外軟硬體部署。

(3)自帶高可用能力,無單點故障風險

(4)部署:在Zone中選擇一台OBserver作為RootServer,以此降低成本。

(5)核心功能:

a)  系統初始化(BootStrap);系統中繼資料管理。
b)  資源配置設定及排程:分區及副本管理、動态負載均衡、擴容\縮容。
c)  全局DDL;叢集資料合并。
           

③多租戶機制、資源隔離、資料隔離

(1) 租戶介紹:

a) 将資料庫叢集按指定規格(CPU、記憶體、存儲、TPS、QPS)劃分成多個資源池,配置設定給不同租戶;

b) 租戶資源隔離政策:記憶體實體隔離、CPU邏輯隔離、資料隔離;

c) 通常一個應用占一個使用者;

(2) 租戶特性:

a) 可建立自己的使用者;

b) 可以建立資料庫、表、等實體對象;

c) 有自己獨立的系統資料庫;

d) 有自己獨立的系統變量;

(3) Unit & 租戶資源池:

a) 每個Unit描述了位于一個OBserver上的一組計算和存儲資源;每個Unit隻屬于一個租戶。

b) 每個Unit可以成為一個輕量級虛拟機,包括若幹CPU資源、記憶體資源、磁盤資源等。

c) 一個租戶擁有若幹資源池,資源池的集合描述了這個租戶所可用的全部資源;

d) 一個租戶在同一個Server上最多隻有一個UNIT

<副本存放在UNIT中,UNIT是副本的容器>

<第三部分>

實驗1:部署OceanBase叢集(商用環境)

(1)整體部署流程:

  1. 安裝OceanBaseAdmin ToolKit(OAT)
  2. 安裝OceanBaseCloud Platform(OCP)
  3. 安裝OceanBase叢集
  4. 安裝OB Proxy

(2)部署OAT 流程:

Ⅰ. 登入每台伺服器,安裝OAT,使用root賬戶執行指令:

rpm -ivht-oceanbase-antman-1.3.3-1896174.alios7.x86_64.rpm

Ⅱ. 登入每台伺服器,添加Admin使用者,設定作業系統核心、安裝依賴包;配置時鐘源(NTP & chromy),確定全部節點的時鐘偏差在100ms以内。

Ⅲ. 部署前環境檢查:

cd /root/t-oceanbase-antman

sh pre_check.sh -m ocp

(3)部署OCP(OceanBase Cloud Platform)流程

Ⅰ. 以root賬戶登入OCP伺服器執行指令:

Init_obcluster_conf.sh

Ⅱ. 在顯示的模式選擇中,選擇1-單點部署,選擇3-3節點部署

Ⅲ. 系統生成配置模式

Ⅳ. 根據注釋資訊,修改配置模闆後開始部署。

(4)部署流程

OCP -> 運維 -> OB Proxy -> 安裝OB Proxy

實驗2:建立租戶

(1)建立租戶過程(指令行方式)

Ⅰ.建立“資源單元規格”,Create resource unit //指定資源單元規格

Ⅱ.建立“資源池”,Create resource pool //根據Ⅰ定義建立資源單元并賦予一個新資源池

Ⅲ.建立租戶,Create tenant //将資源池賦給一個新的租戶

(2)建立資源單元:

CREATERESOURCE UNIT 資源規格名稱 //建立資源規格

Max_cpu= 4, //4核CPU

Max_memory= 10737418240 (10G) //最大記憶體

Min_memory= 10737418240 (10G) //最小記憶體

Max_iops= 1000 //磁盤最大性能名額

Min_iops= 128 //磁盤最小性能名額

Max_session_num= 300 //最大連接配接數

Max_disk_size= 21474836480 (20G) //磁盤最大限制

(3)建立資源池(實際建立unit,按規格定義配置設定資源)

CREATERESOURCE POOL 資源池名稱 //建立資源池

UNIT= ‘unit1’, //使用的資源規格

UNIT_NUM = 1, //選擇Zone内的OBServer的數量放置Unit

ZONE_List= (‘zone1’,‘zone2’,‘zone3’) //指定Zone

(4)建立租戶(将資源池配置設定給對應租戶)

CREATETENANT 租戶名稱

RESOURCE_POOL_LIST= (‘資源池名稱’) //指定使用的資源池

PrimaryZone = ‘Zone1,Zone2,Zone3’ //指定副主副本配置設定到Zone内的優先級

Setob_tcp_invited_nodes = ‘%’,ob_compatibility_mode = ‘mysql

Recyclebin= off , ob_timestamp_service = ‘GTS’

(5)以上步驟即可用白屏工具/黑屏工具連接配接OceanBase

(6)檢查叢集狀态:

Select* from 表名 all_server //檢查所有伺服器的狀态

_all_virtual_server_stat //檢視叢集中的整體資源配置設定情況

Select* from 表名 all_unit_config //檢視系統中定義的resource unit規格

Select* from 表名 all_unit //檢視系統中已經配置設定的resource unit

__all_resource_pool,__all_unit,__all_unit_config //将所有内容關聯起來

Select* from 表名 all_resource_pool //将以配置設定的resourceunit與租戶對應起來

實驗3:建立使用者及管理使用者權限

  1. 建立使用者:

create user ‘username’identified by ‘password’;

  1. 預設使用者:

alter user ‘root’identified by ‘password’;

  1. 管理使用者權限:

a) grant on,

to‘user’;

b) revoke on,

from ‘’;

實驗4:檢視系統日志

  1. OBServer日志(/home/admin/oceanbase/log目錄)
    Observer.log:obs運作時的日志檔案
    
    Rootservice.log:obs上rootserver日志檔案
    
    Election.log:obs上選舉子產品的日志檔案
               
  2. 開啟日志循環:(控制OBServer日志檔案個數)

    Enable_syslog_recyle = True; //開啟日志循環

    Max_syslog_file_cout = ; //設定存儲日志最大數量

  3. 日志級别:(預設級别:INFO)

    Syslog_level = [DEBUG,TRACE,INFO,WARN,USER,ERROR];

  4. OB Proxy日志(部署後才會産生)(/opt/taobao/install/obproxy-/log目錄)

    Obproxy..log :每次OB Proxy重新開機都會産生新的檔案名

    部分解釋:

1.OAT是自動化部署工具,實體機器環境檢查及初始化(裝機模闆程式),需要在所有伺服器上安裝OAT的RPM包。

2.OCP:OCP可以執行安裝OceanBase叢集、建立OceanBase叢集使用者、安裝Proxy,也可執行叢集運維及叢集監控任務;

OCP自帶高可用DNS伺服器,可提供域名解析服務,提供config url服務,保證OceanBase叢集的關鍵資訊;

OCP底層有OceanBase中繼資料叢集,提供中繼資料和監控資料的持久化存儲

每台OCP有2個Docker,分别運作OCP(Web服務)、OBServer(OceanBase中繼資料叢集)

3..叢集部署時預設不安裝OBProxy,通常會在每個Zone上選擇一台OBServer部署OBProxy

4.當UNIT_NUM = 1時,從每個Zone中找一台OBServer放置UNIT;

當UNIT_NUM>1時,從每個Zone中找等同于UNIT_NUM個數的OBServer放置UNIT

5.指定租戶類型為MySQL還是Oracle,來決定使用那種資料庫模型文法

6.伺服器的全部狀态:

伺服器建立時間;
上次修改時間;
伺服器歸屬于那個Zone;
伺服器目前狀态;
上次停機/開機/下線時間;           

7.resource unit

可以看到叢集中Zone的數量,每個Zone中的OBServer數量,每個Zone的各種資源配置設定情況8.OBServer程序指定正确的參數:

網卡名稱、對内/外服務端口、叢集名稱、叢集ID、磁盤目錄、目前OBServer所屬的zone、rslist資訊。