(三)産品部署與基礎概念:
<第一部分>
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)整體部署流程:
- 安裝OceanBaseAdmin ToolKit(OAT)
- 安裝OceanBaseCloud Platform(OCP)
- 安裝OceanBase叢集
- 安裝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:建立使用者及管理使用者權限
- 建立使用者:
create user ‘username’identified by ‘password’;
- 預設使用者:
alter user ‘root’identified by ‘password’;
- 管理使用者權限:
a) grant on,
- OBServer日志(/home/admin/oceanbase/log目錄)
Observer.log:obs運作時的日志檔案 Rootservice.log:obs上rootserver日志檔案 Election.log:obs上選舉子產品的日志檔案
-
開啟日志循環:(控制OBServer日志檔案個數)
Enable_syslog_recyle = True; //開啟日志循環
Max_syslog_file_cout = ; //設定存儲日志最大數量
-
日志級别:(預設級别:INFO)
Syslog_level = [DEBUG,TRACE,INFO,WARN,USER,ERROR];
-
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資訊。