OB入門到實踐1-Docker上運行Oceanbase


實踐練習一:OceanBase Docker 體驗

練習內容

  1. (必選)下載Docker 鏡像:https://hub.docker.com/repository/docker/obpilot/oceanbase-ce
  2. (必選)使用 OBD 命令完成后續的 OceanBase 集群部署。
  3. (必選)創建一個業務租戶、一個業務數據庫,以及一些表等。

具體實現

搭建docker環境

軟件安裝

# 查看可用的社區版
yum list docker-ce --showduplicates | sort 

# 安裝指定版本
yum install -y docker-ce-20.10.9-3.el7 docker-ce-cli-20.10.9-3.el7 containerd.io

配置docker參數

mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<-'EOF'
{
  "graph": "/data/docker",
  "storage-driver": "overlay2",
  "insecure-registries": [ "registry.access.redhat.com" ],
  "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "live-restore": true
}
EOF

啟動服務

systemctl enable --now docker
# 檢查服務狀態
systemctl status -l docker

查看信息

# 查看docker版本
docker version
# 顯示docker系統的信息
docker info
# 日志信息
docker logs
# 查看鏡像
docker images

下載oceanbase的docker鏡像

docker search oceanbase    # 搜索 oceanbase 相關鏡像

# 拉取最新社區版鏡像
docker pull obpilot/oceanbase-ce:latest

image-20211208132852060

部署OB集群

啟動 OceanBase Docker 容器

# 內存容量10G
docker run -p 2881:2881 -p 2883:2883 --name obce -itd -m 10G obpilot/oceanbase-ce:latest


# 查看進程
docker ps

# 可以查看容器啟動日志
docker logs -f obce

image-20211208152735763

檢查容器運行情況

# 進入到容器內部
docker exec -it obce bash

# 獲取集群信息
obd cluster list

image-20211208152844766

OBD工具啟動集群

# obd cluster start <deploy name> [-s]
obd cluster start obdemo

image-20211208153050740

obd自動部署了1台observer和1台obproxy

檢查OB集群狀態

# 獲取集群詳細信息
obd cluster display obdemo
集群配置文件信息
cat /home/admin/.obd/cluster/obdemo/config.yaml

grep -E "root_password|appname|cluster_name" /home/admin/.obd/cluster/obdemo/config.yam

可以從odb配置文件中獲取root密碼,集群名稱等配置信息

image-20211208153352213

root 用戶的密碼是 : rootPWD123

創建業務數據

obclient客戶端使用

obclient -u[用戶名]@[租戶名]#[集群名稱] -P[端口號] -h[ip地址] -p[密碼] -D[數據庫名] -c

相關知識

租戶(tenant)使用的資源建立在資源池(resource pool)上,而資源池包含了資源單元(resource unit),而資源單元規定了具體資源數目(如: CPU數、Memory容量、 IOPS 、session數量、Disk_Size)。

創建mysql租戶

# 登陸
## obclient -h127.1 -uroot@sys -P2881 -c -A oceanbase
obclient -h127.1 -uroot@sys#obce-single -P2883 -prootPWD123 -c -A oceanbase

show databases;

alter resource unit sys_unit_config min_cpu=2;
# 創建資源單元
CREATE resource unit S2C1G max_cpu=2, min_cpu=2, max_memory='1G', min_memory='1G', max_iops=10000, min_iops=1000, max_session_num=10000, max_disk_size='10G'; 
# 創建資源池
CREATE resource pool my_pool unit = 'S2C1G', unit_num = 1;
# 創建租戶obmysql
create tenant obmysql resource_pool_list=('my_pool'), primary_zone='RANDOM',comment 'mysql tenant/instance', charset='utf8' set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql';

exit;

image-20211208153834744

創建數據庫

# 使用新建的租戶登陸並創建業務數據庫db1
obclient -h 127.1 -uroot@obmysql#obce-single -P2883 -c -A test

create database db1;

image-20211208154019616

創建表

use db1;
create table t1(id int) ;
insert into t1 values (1),(2);
select * from t1;

image-20211208154608098

總結

通過本次實踐,再次重溫一遍docker部分基礎信息以及使用OBD工具部署單節點OB集群(1 observer + 1 obproxy)環境。聯網在線的環境中,使用obd工具管理集群非常方便高效。同時,可以在實驗中使用obclient工具執行SQL。

總體上來說,主要對ob有了一個簡單入門級的了解。期待后續可以深入接觸和交流學習OB。

附錄

https://open.oceanbase.com/answer/detail?id=13700695&sou=0a001

https://open.oceanbase.com/docs/tutorials/quickstart/V1.0.0/2-2-how-to-quickly-experience-oceanbase

https://open.oceanbase.com/answer/detail?id=508

參考資料

  1. 社區版官網-文檔-學習中心-入門教程:實戰教程第二章2.2:如何快速體驗 OceanBase
  2. 社區版官網-博客-入門實戰:實戰教程第二章2.2:如何快速體驗 OceanBase
  3. 社區版官網-問答:OceanBase CE 容器下載使用簡介
  4. 教程視頻:【2-2-OceanBase Docker 體驗.mp4]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM