實踐練習一:OceanBase Docker 體驗

a001z82發表於2022-12-14

1.環境準備(於2022.12)

VM虛擬機器系統環境Centos7.9 2009 3.10.0

關防火牆 selinux

systemctl disable firewalld   

systemctl stop firewalld.service  

selinux

S etenforce   0

vi /etc/selinux/config      SELINUX=enforcin g 修改為 "SELINUX=disabled"

安裝系統工具

yum install -y yum-utils device-mapper-persistent-data lvm2

新增阿里雲 yum源

yum-config-manager    --add-repo        

sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

yum makecache fast    生成索引快取索引提 搜尋安裝速度

安裝 Docker-CE 並啟動

yum -y install docker-ce    目前安裝版本為 20.10

systemctl start docker  啟動

systemctl enable docker 設自啟動

 

拉取 docker映象

直播影片( https://open.oceanbase.com/blog/10900164?currentPage=1?sou=0a001 2.2中的oceanbase/obce-mini為3.1版本 特點是 啟動時可手動初始化叢集及租戶體驗過程。但 如下所述已失效無法下載(此段可忽略)

docker pull oceanbase/obce-mini

  

      

 

 

發現報錯進 hub.docker搜尋發現過期

 

 

拉取 oceanbase 映象

完整的官方映象版 oceanbase-ce 有多個版本可選 但是啟動時會自動初始化叢集及租戶不能體驗過程。

官網可查到多個版本

查詢映象

docker search  oceanbase  

docker search   oceanbase/oceanbase-ce

docker search   obpilot/oceanbase-ce

 

拉取 ”ob領航員”版本(估計是替代 obce-mini

docker pull obpilot/oceanbase-ce :rabbit

 

 

 

 

能看到 obpilot/oceanbase-ce的dockerfile內容

 

 

docker images 檢視擁有的映象

 

2.執行oceanbase容器

docker run -itd -m 10G --name oceanbase-ce  obpilot/oceanbase-ce:rabbit

-i互動式執行容器 -t為容器分配偽輸入終端 -d後臺執行並顯示ID -m設定最大記憶體

--name指定容器名稱 必須指定tag標籤rabbit否則會下載最新版映象

docker ps -a   顯示所有容器    docker ps 顯示執行的容器

當使用 docker exec進入容器時,容器預設不是root使用者,如果想改root密碼可sudo passwd root。如報錯-bash: sudo: command not found,可

docker exec -it --user root {容器名} /bin/bash

附容器七種狀態 created(已建立)restarting(重啟中)running(執行中)

removing(遷移中)paused(暫停)exited(停止)dead(死亡)

容器雖啟動了但報錯 IPv4轉發已禁用

 

vim /etc/sysctl.conf

net.ipv4.ip_forward=1     #儲存退出就可以了

systemctl restart network 重啟網路卡

systemctl restart docker 重啟docker

docker start oceanbase-ce    啟動容器 (出現過奇怪報錯docker: 'start ' is not a docker command,過一會再試成功)

docker exec -it oceanbase-ce bash 進入容器

obd cluster list    檢視叢集 狀態為已部署

 

obd cluster start obdemo   啟動或初始化叢集

 

直連地址為 2881 代理地址為2883 普羅米修斯埠2884

處理警告 fs.aio-max-nr

#該引數決定了系統中所允許的檔案控制程式碼最大數目,檔案控制程式碼設定代表 系統中可以開啟的檔案的數量。

vi m   /etc/sysctl.conf      fs.aio-max-nr   = 1048576

sysctl  -p 生效

sysctl  -a |grep fs.aio-max-nr   查設定

注意:如果想從新的配置還原到預設配置,只把自己的配置註釋掉是不行的,必須改成原來的配置然後重新整理才行!

3.進入租戶及Mysql

登入 MySQL租戶

登入單節點 (密碼在官網倉庫的 obpilot/oceanbase-ce

的概述中可見)

[admin@ffd94a946881 ~]$ obclient -h127.1 -uroot@sys -P2881 -prootPWD123 -c -A oceanbase

語法

obclient -u[使用者名稱]@[租戶名]#[叢集名稱] -P[埠號] -h[ip地址] -p[密碼] -D[資料庫名] -c

如果連線語句中不帶  -c 項,則連線至租戶後 Hint 無法生效。即MySQL 執行環境中不要忽略註釋。

如果連線語句中不帶  -D[資料庫名] 項,則預設資料庫名與使用者名稱一致

A:表示在 MySQL 連線資料庫時不自動獲取統計資訊

oceanbase:訪問的資料庫名,可以更改為業務資料庫

show parameters like 'cluster';

獲取叢集名稱( obdemo)注意obproxy連線的時候會使用這個叢集名

使用 obproxy 2883埠登入

[admin@ffd94a946881 ~]$ obclient -h127.1 -uroot@sys#obdemo -P2883 -prootPWD123 -c -A oceanbase

show tables;

show databases;

 

建立租戶

建資源單元 unit起名為 S4C1G

CREATE resource unit S4C1G max_cpu=4, min_cpu=4, max_memory='1G', min_memory='1G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size='1024G';

建資源池起名為 my_pool

CREATE resource pool my_pool unit = 'S4C1G', unit_num = 1;

 

建租戶(例項)起名為 obmysql 使用剛建的資源池 my_pool

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';

預設的 優先策略 primary_zone='RANDOM'   翻譯為隨機任意 等同於 zone1,zone2,zone3

相容模式 compatibility 設為 mysql

 

登入新建的租戶 (叢集名不變,密碼為空)

obclient -h 127.1 -uroot@obmysql#ob demo   -P2883 -p -c -A test

 

alter user root identified by  '111111';  設密碼

建庫

create database testdb;

進入新建庫

use testdb;

建表

CREATE TABLE tb_emp1 (id INT(11),name VARCHAR(25),deptId INT(11),salary FLOAT);

 

 

observer的啟動引數

 

 

 

 

 

 

 

 

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22333459/viewspace-2928124/,如需轉載,請註明出處,否則將追究法律責任。

相關文章