磁盘大于50G、内存8G以上、CPU一般即可;
不用担心,虽然OceanBase是分布式数据库,拥有一台机器依然可以体验;
操作系统强烈建议使用CentOS 7 64位(因为这个操作系统有所有的库依赖,编译内核版本)
下载地址:https://oceanbase.alipay.com/download/resource.
下载的是一个自动化部署包,实际上这个自动部署包并不好用,而且错误信息不明确,我们这里使用脚本部署,解压安装包:
我们需要的第一个文件是deploy.py,这个是自动化部署脚本,可以协助我们部署集群或单机服务,然后继续解压ocp-setup.tar.gz:
在ocp_yh文件夹内找到obproxy-1.3.3-1506155.el7.x86_64.rpm、oceanbase-1.4.60-1571952.el7.x86_64.rpm这两个RPM包,解压他们,如果windows下发现不能解压,复制到centos下使用归档管理器打开,提取observer和obproxy(linux下可执行文件):
现在我们拿到了三个文件deploy.py、observer、obproxy,随便创建一个文件夹打包deploy,然后复制到CentOS 7里面,开始部署。
进入打包的文件夹
//准备基本的文件夹
[admin@localhost test]$ ./deploy.py prepare_local_dir
//生成配置文件
[admin@localhost test]$ ./deploy.py gen_config
clog_dir = '/data/log1' # 定义redolog的dir
data_dir = '/data/1' # 定义sstable的dir
log_dir = '' # 定义observer.log的dir
log_level='INFO' # 定义observer缺省的日志级别
port_gen = itertools.count(8040) # 通过这个配置项指定observer使用的端口号起始点, deploy.py分配端口的时候会调用port_gen.next()
# 指定observer启动的配置项,enable_merge_by_turn
obs_cfg=dict(datafile_size='10G', # 指定sstable占用空间大小
enable_merge_by_turn='False', # 指定是否要启用轮转合并,
memory_limit='64G', # 指定observer的内存限制
)
# 三个zone,每个zone一个observer和一个obproxy
ip_list = dict(ip1='10.244.13.174', ip2='10.244.1.233', ip3='10.244.0.216')
ob1 = OBI(sub('rs@$ip1@z1 proxy@$ip1@z1 rs@$ip2@z2 proxy@$ip2@z2 rs@$ip3@z3 proxy$ip3@z3', ip_list))
# 在本机上启动一个observer
obx = OBI('local_ip')
# 在本机启动一个observer和一个obproxy
oby = OBI(sub('$ip1@z1 proxy@$ip1@z1', dict(ip1='local_ip')))
我们更改的部分有:
[admin@localhost test]$ mv observer bin
[admin@localhost test]$ mv obproxy bin
[admin@localhost test]$ chmod u+x bin/observer
[admin@localhost test]$ chmod u+x bin/obproxy
ssh免密码登录设置:
在集群所有机器(包括本机)上执行:
[admin@localhost test]$ ssh-keygen -t rsa
然后在部署机器上,即现在所处机器上执行,需要复制集群所有机器的id,包括本机,每个host执行一次,如果是集群最好所有机器的用户名都用同样的:
[admin@localhost test]$ ssh-copy-id user@host
现在开始真正部署了:
[admin@localhost test]$ ./deploy.py obx.reboot
如果是单机版使用obx的配置,如果是集群部署使用ob1.reboot;
reboot表示初始化服务会清空所有数据,慎用;
stop表示停止服务;
start表示启动服务(前提是服务被stop的,新部署的需要用reboot初始化);
不出意外的话OceanBase就部署成功啦,OceanBase默认的工作目录在~/obx.obs0。接下来就是使用OceanBase,现在还不能像mysql那样直接run起来。
OceanBase是以租户为单位划分资源的,所以在使用OceanBase前,需要创建自己的租户。
root登录OceanBase,reboot后需要等待一定的时间,等服务完全启动起来:
[admin@localhost test]$ ./deploy.py obx.sql
先创建资源单元,再创建资源池,在创建租户,具体管理语句见OceanBase官方文档:https://oceanbase.alipay.com/docs/oceanbase/OceanBase%E7%AE%A1%E7%90%86%E5%91%98%E6%89%8B%E5%86%8C/%E7%AC%AC%E4%B8%89%E9%83%A8%E5%88%86%20OceanBase%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E5%92%8C%E6%89%A7%E8%A1%8C%E8%AE%A1%E5%88%92/esrd9d
创建好租户后就可以登录OceanBase了:
[admin@localhost test]$ mysql -h 192.168.230.133 -P 8049 -uroot@tenant -c
OceanBase监听的端口查看:
[admin@localhost test]$ ps -ef | grep observer
OceanBase1.4深度兼容mysql,现在我们可以像使用mysql一样使用OceanBase了,其他新增语法可以去官网查看文档。
后面官网会推出2.0试用版,可以用同样的方式部署,2.0版本深度兼容mysql、oracle,性能更加强悍,敬请关注。