目 錄
- 什么是OpenTenBase
- OpenTenBase源碼編譯安裝
- 安裝依賴
- 創建opentenbase用戶
- 源碼獲取
- 編譯安裝
- 初始化數據庫
- 初始化數據庫集群
- 啟動與停止服務
- 基本使用示例
- 開機自啟動配置
- 總結
- 官網教程鏈接
什么是OpenTenBase
OpenTenBase 是一個提供寫可靠性,多主節點數據同步的關系數據庫集群平臺。你可以將 OpenTenBase 配置一臺或者多臺主機上, OpenTenBase 數據存儲在多臺物理主機上面。數據表的存儲有兩種方式, 分別是 distributed 或者 replicated ,當向OpenTenBase發送查詢 SQL時, OpenTenBase 會自動向數據節點發出查詢語句并獲取最終結果。
OpenTenBase 采用分布式集群架構(如下圖), 該架構分布式為無共享(share nothing)模式,節點之間相應獨立,各自處理自己的數據,處理后的結果可能向上層匯總或在節點間流轉,各處理單元之間通過網絡協議進行通信,并行處理和擴展能力更好,這也意味著只需要簡單的x86服務器就可以部署 OpenTenBase 數據庫集群
下面簡單解讀一下OpenTenBase的三大模塊
-
Coordinator:協調節點(簡稱CN)
業務訪問入口,負責數據的分發和查詢規劃,多個節點位置對等,每個節點都提供相同的數據庫視圖;在功能上CN上只存儲系統的全局元數據,并不存儲實際的業務數據。 -
Datanode:數據節點(簡稱DN)
每個節點還存儲業務數據的分片在功能上,DN節點負責完成執行協調節點分發的執行請求。 -
GTM:全局事務管理器(Global Transaction Manager)
負責管理集群事務信息,同時管理集群的全局對象,比如序列等。
接下來,讓我們來看看如何從源碼開始,完成到OpenTenBase集群環境的搭建。
OpenTenBase源碼編譯安裝
我們這里使用虛擬機里面的CentOS 7進行測試
安裝依賴
yum -y install gcc make readline-devel zlib-devel openssl-devel uuid-devel bison flex git
創建opentenbase用戶
注意:所有需要安裝OpenTenBase集群的機器上都需要創建
mkdir /data
useradd -d /data/opentenbase -s /bin/bash -m opentenbase
passwd opentenbase # set password
源碼獲取
這里使用的是國內的gitee,大家也可以使用github上面的
git clone https://gitee.com/mirrors/OpenTenBase.git
git clone https://github.com/OpenTenBase/OpenTenBase.git
編譯安裝
# 創建編譯目錄
mkdir build && cd build# 配置編譯選項
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/opentenbase# 編譯并安裝
make -j$(nproc)
sudo make install
初始化數據庫
創建數據庫用戶和目錄
# 創建數據庫用戶
sudo useradd -m otb
sudo passwd otb# 創建數據目錄
sudo mkdir -p /data/opentenbase
sudo chown -R otb:otb /data/opentenbase
初始化數據庫集群
切換到 otb 用戶執行:
su - otb# 設置環境變量
echo "export PATH=/usr/local/opentenbase/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc# 初始化數據庫
initdb -D /data/opentenbase
啟動與停止服務
# 啟動數據庫
pg_ctl -D /data/opentenbase -l logfile start# 停止數據庫
pg_ctl -D /data/opentenbase stop# 重啟數據庫
pg_ctl -D /data/opentenbase restart
基本使用示例
# 進入數據庫
psql -U otb -d postgres# 創建數據庫
CREATE DATABASE testdb;# 切換到數據庫
\c testdb# 創建表
CREATE TABLE users (id SERIAL PRIMARY KEY,name VARCHAR(50),age INT
);# 插入數據
INSERT INTO users (name, age) VALUES ('Alice', 25), ('Bob', 30);# 查詢數據
SELECT * FROM users;
開機自啟動配置
sudo vi /etc/systemd/system/opentenbase.service
寫入以下內容:
[Unit]
Description=OpenTenBase Database Service
After=network.target[Service]
Type=forking
User=otb
ExecStart=/usr/local/opentenbase/bin/pg_ctl -D /data/opentenbase -l /data/opentenbase/logfile start
ExecStop=/usr/local/opentenbase/bin/pg_ctl -D /data/opentenbase stop
ExecReload=/usr/local/opentenbase/bin/pg_ctl -D /data/opentenbase restart[Install]
WantedBy=multi-user.target
啟用并啟動:
sudo systemctl daemon-reexec
sudo systemctl enable opentenbase
sudo systemctl start opentenbase
總結
到這里,你已經在 CentOS 7 上完成了 OpenTenBase 的安裝與配置,可以像 PostgreSQL 一樣使用它。如果你是第一次接觸,建議從簡單的 SQL 語句和表操作入手,然后逐步嘗試 OpenTenBase 的分布式特性。
本文檔只是給用戶一個簡單的指引,演示如何從源碼開始,一步一步搭建一個完整的OpenTenBase集群。
官網教程鏈接
https://docs.opentenbase.org/