https://edu.aliyun.com/lab/courses/f872323bb73a49d4b14ab7b801b3ad86/detail?purchaseRecordId=d288f91e20774539a77e41a89880711d&spm=5176.12901015.0.i12901015.5d39525c5k990T

但是要89块大洋,而且只有三个小时的实验时间,虽然时间足够,但是对于第一次部署的童鞋只要遇到一些坎,就可能在三小时内实验不完,不过部署手册的资料是一直可以学习的,可以熟悉之后再去动手。(ps:阿里云实验环境的环境比较理想,所以安装遇到的问题很少,后续我会为大家再奉献一篇本地部署的时候踩过的坑)
检查主机环境划分存储->服务器环境配置->ocp部署->通过ocp部署OB集群->创建租户
1. 主机环境:


存储划分:
OCP 服务器 :
200G, 给/docker 使用

OBserver服务器存储划分,操作与OCP类似:

3. 服务器环境
在每台服务器的/root目录下创建 t-oceanbase-antman 目录,并将相应的安装包上传到该目录。
1)在 OCP 与 OceanBase 的服务器上都安装自动化部署工具,例如:
2)为每台服务器都添加 admin 用户 :
#cd /root/t-oceanbase-antman/clonescripts
#./clone.sh -u
默认密码是 admin, 建议立刻修改。
3)对每台服务器的操作系统内核进行设置 :
#cd /root/t-oceanbase-antman/clonescripts
OCP 服务器:# ./clone.sh -r ocp -c
OceanBase 服务器:# ./clone.sh -r ob -c
4)安装依赖包
OCP 服务器:# ./clone.sh -r ocp -m
OceanBase 服务器:# ./clone.sh -r ob -m
5)配置 NTP 时钟同步,保证所有节点的时钟偏差在 100ms 以内
restrict 172.18.0.0 mask 255.255.0.0 nomodify
server 127.127.1.0
fudge 127.127.1.0 stratum 10
server 172.18.6.38
fudge 172.18.6.38 stratum 10
6)在 ocp服务器上安装 docker
7)部署前环境检查
OCP 服务器:sh precheck.sh -m ocp
OceanBase 服务器:sh precheck.sh -m ob
OCP 有单节点和三节点两种部署模式,在实验环境中,我们使用单节点模式。
1. 生成 OCP 的配置文件
# cd /root/t-oceanbase-antman
#bash init_obcluster_conf.sh
填写正确 OCP 服务器的 ip、root 和 admin 用户的密码。单节点的负载均衡模式是 none。(云主机可以填写私网 ip, OCP 和 Observer 之间全部使用私网 IP 通信)

下面配置 OCP 服务器上各个 Docker 的资源( OCP Docker, OB Docker, OBProxy Docker) , 默认可能是以下配置:

因为我们的云主机总容量是 16C64G,650GB 磁盘, 所以采用以下配置:
OB_docker_cpus=16 , OB_docker_memory=60G
OCP_docker_cpus=8 , OCP_docker_memory=16G
OBProxy_docker_cpus=4 , OBProxy_docker_memory=2G
详情见前面 章节的描述。
另外是修改安装软件的版本信息,根据你获得的实际软件的情况修改: (以下样例针对的是前面章节中列出的安装文件对应的信息)

image_package填写你获得安装软件的名称,例如:
ob-docker2273_202101.tar.gz
obproxy-docker173_20200603.tar.gz
ocp-all-in-one251-20210223.tar.gz
REPO 和 TAG 可以填写如下的信息:
reg.docker.alibaba-inc.com/antman/ob-docker:OB2273_x86_20201214
reg.docker.alibaba-inc.com/antman/obproxy:OBP173_20200603_1923
reg.docker.alibaba-inc.com/oceanbase/ocp-all-in-one:2.5.1-1922379
完成配置后进行保存。 OCP的配置文件在/root/t-oceanbase-antman 目录下, 2.X 版本的名称是 obcluster.conf,也可以手工进行修改。
另外我们的云主机是用的最小资源(16C64G,650GB),所以我们需要额外的多做一些配置。(生产环境标准配置不需要做以下这些)
我们需要将sys(500租户)默认的 50G 内存,改为 15G, 修改 install_OB_docker.sh
76行和100行(请注意要修改的是两行):
-e OPTSTR=\"cpu_count=$OB_docker_cpus,memory_limit=$OB_docker_memory,__min_full_resource_pool_memory=1073741824,_ob_enable_prepared_statement=false,memory_limit_percentage=90\" \
改成
-e OPTSTR=\"cpu_count=$OB_docker_cpus,memory_limit=$OB_docker_memory,__min_full_resource_pool_memory=1073741824,_ob_enable_prepared_statement=false,memory_limit_percentage=90,system_memory=15G\" \
另外新版本的 install.sh 文件会检查 system_memory, 我们需要注释掉检查的这一行:
修改install.sh , 注释掉1330行
# system_memory is 50G default
#[ "${OB_docker_memory%G}" -lt 64 ] && { antman_log "docker ob default system_memory is 50G, docker memory limit(${OB_docker_memory}) too small." "ERROR"; exit 1; }
2. 开始部署 OCP
可以先查看一下 OCP 部署的命令帮助
# cd /root/t-oceanbase-antman
# ./install.sh -h
可以看到 OCP 的安装需要 8 steps 。下面执行 OCP 安装

看到以上信息,表示 OCP 部署已完成。如果中间失败,可以根据提示解决问题,然后再次从失败的step 再次执行。(如果要回退或卸载 OCP,使用 ./install.sh -c 1-X )
OCP 的访问地址: http://<OCP_ip> : 8080 <----云主机的话注意安全策略放开 8080 端口
默认用户名 admin, 密码 root。
打开 ocp的 web 管理页面后, 就有一个集群和 3 个租户存在。(见前面章节的描述)

下面可以通过 OCP 完成“添加主机“,“创建 OB 集群”,”部署 OBProxy”三个步骤。
1. 添加主机
首先添加主机,将 3 台 oceanbase 服务器主机添加进来。这里可以设置服务器型号,所在机房和区域等。

这里要填写机型、机房/区域等信息, 如果在生产环境, 应该根据是实际情况填写。例如生产环境有 100多台服务器, 有浪潮、联想、阿里、华为不同品牌,那就创建不同的机型。生产环境是三地五中心 (北京:西单、上地, 杭州:西湖区、余杭区, 深圳:前海) , 就按照实际情况创建机房(idc)/区域(region)等。
在实验练习环境, 你可以根据自己的想象构建一个虚拟业务环境,用以模拟生产的环境。例如 3 台服务器,1 台型号是阿里的,部署在杭州西湖区, 2 台型号是浪潮,部署在杭州余杭区。
选择凭据:这里其实就是写主机的登录用户信息,大家选择创建一个凭据,然后选择 root 用户,输入你的几台 OB 服务器 root 用户的密码。
2. 创建 OB 集群
创建 OB 集群,按照要求的填写好相应信息。

创建集群的时候设置 primary zone 的优先级,这里的设定是给 sys 租户的。新版本只允许primaryzone有 1 台服务器。
在实验环境(4C16G)的上面部署 OB 集群,需要限制资源的使用, 打开下面的“高级设置”,并且填写以下的参数(生产环境一般不需要):

memory_limit = '15G';system_memory = '5G';cpu_count=32;__min_full_resource_pool_memory=2147483648;cache_wash_threshold='2GB';net_thread_count=8;workers_per_cpu_quota=4;stack_size = '512K';
提交后可以到任务中查看部署进展,如果在某一步遇到问题,可以点击“查看日志”.
小 Tips:
如果 OB 部署出现一些基础问题,例如说的磁盘挂载点没有配置好。可以采用以下的步骤:
OCP 上放弃创建集群的任务 OCP 上删除主机 黑屏登录 OB 服务器,调整基础的配置, 然后删除/data/1, /data/log1, /home/admin 下面残存的安装遗留文件(rm -rf ) 重启一下 OB 服务器 。(切莫忘记NTP时钟同步,重启完成后记得 service ntpd start, 以及 ntpstat, ntpq -np 等命令检查时钟) 从新在 OCP 白屏上添加主机、创建集群等。
在生产环境,OBProxy 可能需要独立部署。在实验练习环境,我们将 oceanbase 和 OBProxy 部署在一起。可以在 3 台 OB 上都部署一个 OBProxy.
3. OCP 页面添加 OBProxy 集群
访问地址参数:在生产环境, 多台 obporxy 前可以有一个 F5均衡, F5均衡对外提供一个 ip地址,这里的访问地址参数就是F5 对外的 IP。我们实验环境没有 F5,那就选择一个 obproxy 的地址填写即可。
如果是云主机(4C16G)部署, 点击下面的参数设置, 增加一个参数,限制 OBProxy 最大可使用的内存。(只是最大值,并不是实际分配或者使用值)
4. 创建租户
实验环境中需要打开一个 OCP 的开关
因为规格过小的租户产生了很多不必要的问题,所以 OB 与 OCP 上都对租户的规格做了限制。
OB 的 2.X 版本之后,默认只能创建 5G 以上的租户。在我们实验环境创建集群的时候,我们将这个限制参数调整成了 2G,也就是可以创建 2G 的租户。(见前面章节部署 OB 集群的参数设置)
最新的OCP2.5版本在创建租户时进行自定义 Unit规格,默认将小于 5G 内存的 unit 屏蔽了,因为生产环境中创建过小的资源用户产生了很多不必要的问题。在 OCP 2.5.1之后增加了一个开关,打开该开关后在 OCP 上小于 5G 的 unit 才会显示出来。(该操作仅限于演示或实验环境)
首先需要获得 OCP 所使用的metadb数据库的登录密码:
登录到 OCP 的 metadb 数据库, 并打开开关 :
update config_properties set value='true' where `key` like '%small%' ; <----将这个开关打开 。
云主机(4C16G)的请注意以下事项:
云主机 是4C16G 我们创建集群的时候设定 observer 的内存(memory_limit)是15 G. 系统租户内存(ID500租户 system_memory)我们设定的是5G (15-5=10) 管理 sys(ID1租户) 租户默认是内存是 2-3, 一般是用了2.5G (15-5-2.5=7.5) 剩下来给普通租户的已经是 7.5G 了。 可以创建 3 个2G租户。
2)sys管理租户(ID1 租户)占用内存2.5G, 可以再降低到 2G,再释放0.5, 这样的话可以再多创建一个2G 的普通租户。(可选)
白屏中看管理 sys 租户的资源,可以在白屏直接修改

也可以在黑屏中修改:
在白屏界面上可以直接创建租户,也可以使用命令在黑屏创建租户, 黑屏创建租户样例:
创建 unit(5C2G):
创建 resource pool:
创建租户:
创建Oracle 租户:
在黑屏创建好租户后,在 OCP 白屏也会看得到,不过同步需要一点点时间。
OceanBase 的基础安装和配置基本就完成了,下面大家可以开始其它的实验练习了。
补充:云主机实验环境,在 sys 租户下执行这两个命令。因为我们实验环境留给log的空间比较小,避免被 log日志塞满。以下两条命令是启动日志文件循环,并且只保留 10 个日志文件。
alter system set enable_syslog_recycle=true;
OceanBase的安装部署还是很简单的,尤其是现在官方提供了比较详细的资料,但是实验环境比较理想,实际环境中安装还是会遇到各种问题,大家有机会可以自己搭建下对于理解OB的架构有些帮助,下次给大家分享我遇到的一些小问题及解决方法。实验环境一般也不会部署oms迁移工具,后续我会给大家介绍下通过dbcat+datax从oracle迁移数据到OB。
努力晨昏事,躬行味始长 --诸位共勉。

更多精彩干货分享
点击下方名片关注
IT那活儿





