基于项目需求需要适配OceanBase数据库,之前咱也没有听说过这是个啥玩意啊,特地去百度了一番:说是阿里自的云分布式数据库,什么存储引擎啊、MVCC啊、Paxios协议啊等等 咱们这里都不讨论,只是做个简单的应用案例给大家。
要想使用oceanBase 首先我们要有oceanBase,
目前安装部署oceanBase 有两种方式 一种是基于OBD(ob-deploy),另外一种呢就是基于docker。
由于docker占用内存相对较多,所以我们以OBD的方式进行配置。
环境:centos7 4C8G oceanBasic 需要最小的内存为8GB
cd /usr/local/
mkdir obd
cd obd
mkdir lib data config
cd lib
wget -O ob-deploy-1.3.3-11.el7.x86_64.rpm https://mdn.alipayobjects.com/ob_portal/afts/file/A*6AePTLupLH8AAAAAAAAAAAAADWF2AQ?af_fileName=ob-deploy-1.3.3-11.el7.x86_64.rpm
rpm -ivh ob-deploy-1.3.3-11.el7.x86_64.rpm
cd ../config
wget https://gitee.com/oceanbase/oceanbase/raw/master/tools/quick_start/quick_start_demo.yaml
vim quick_start_demo.yaml
调整配置文件quick_start_demo.yaml
内容
home_path 目录需要提前创建好并指定,其余配置不用修改
准备好这些之后 我们就可以部署、启动obd了
obd cluster autodeploy obtest -c /usr/local/obd/config/quick_start_demo.yaml -A #obtest 为集群名称 不允许重复 -A 表示会利用剩余的服务器资源创建一个test租户
obd cluster start obtest #启动集群
当出现如下界面时表示启动成功
服务启动成功之后,下面我们来测试一下连接
首先下载一下obclient
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum -y install obclient
obclient -h127.0.0.1 -P2881 -uroot@test
貌似是不用密码直接能登陆;执行show databases;命令能正常显示数据库信息,
完全兼容mysql的语法。
经测试发现,也可以使用mysql的5.7客户端进行连接,所以如果我们在项目中使用oceanBasic数据库的话,我们可以使用mysql的数据库驱动,然后使用oceanBasic的服务端地址进行访问,不过需要注意的一点是配置文件中的username 需要写成root@test的样式才行
问题
使用yum安装时 下载obd和obclient时都感觉会比较慢,不知道是否是我网络的问题
报错: open files number must not be less than 20000 (Current value: 1024)
超出文件数打开的最大限制。
vim /etc/security/limits.conf
添加如下两行
root soft nofile 655350
root hard nofile 655350
不要使用source /etc/security/limits.conf
会提示root 未知命令
,此时我们需要退出当前shell会话,然后重新打开,重新执行obd的autodeploy操作即可
failed to connect server
重新执行start命令
上文中我们使用的是默认的test租户,可以自定义租户么?
obd cluster tenant create obtest -n ssss
#sss 为自定义的租户名称 机器硬件条件不满足了所以就未测试,有条件的同学可以测试下,然后使用自定义的租户访问oceanBasic
参考资料
https://open.oceanbase.com/quickStart