OceanBase一体机和云栖大会OB体验介绍
OB一体机
目前OB一体机集成了硬件监控,硬件和OS参数配置都针对数据库特点定制并测试过稳定性和性能。未来还会加入更多软硬件特性进去。2B市场竞争不少,云厂商的分布式产品部署起来都要很多台服务器。而POC时多数客户勉强凑齐服务器数量,软硬件配置参差不齐,POC环节耗时非常大。带着一体机去测试POC可以提高效率,也许会成为趋势。注:OB生产环境交付部署是独立部署或者跟云的IAAS层结合部署。
最小规模的OB一体机里面包含:1台1U交换机、6台1U服务器。其中3台服务器上部署OCP集群,另外3台服务器部署OB集群。OCP集群是Docker化部署,分别在每台服务器上起了一个OCP Docker。同时OCP集群自身的元数据库也是一个OB集群,这个集群分别有三个OB Docker组成。OCP集群连接OB元数据库通过OBProxy集群,OBProxy集群有3个OBProxy Docker容器组成。此外还有2个DNS容器,为OCP、OBProxy提供统一的域名解析服务(还包括高可用和负载均衡服务)。详细如下图。
业务OB集群是直接安装在物理机上,其他应用和OB都是docker容器。
OCP自动化部署
OceanBase集群的手动安装个人觉得比ORACLE的RAC还是简单很多,不过在客户现场还是建议用OceanBase运维平台(OCP)去自动部署OceanBase集群快。以前OCP部署也是一个问题。如今OCP版本到了2.3,架构非常简单,使用工具脚本可以一键部署OCP。
#
./install.sh -h
Usage: ./install.sh [OPTIONS]
Options:
-h, --help Print help and exit
-d, --debug Print debug information
-V, --version Print version
-i, --install-steps string For example 1,3-5,7-
-c, --clear-steps string For example 1,3-5,7-
-f, --config-file string Read in a config file
-l, --load-balance dns | haproxy
Steps:
1. ssh authorization
2. install load balancer (default: dns)
3. install ob server
4. init ocp metadb
5. install temp OCP
6. install obproxy
7. install OCP
8. POSTCHECK
9. install OMS (optional)
部署过程就是按上面顺序来。这里有个有趣的现象。其中OBProxy要访问元数据库OB依赖一个rootservice的API,而这个API只有OCP可以提供。而OCP访问元数据库又是通过OBProxy,有个互相依赖过程。所以这里会有个第5步,安装一个临时的简易版的OCP,只提供一个rootservice的API接口。后面安装OCP的时候会删除这个临时的服务。
有关OCP的介绍可以查看官方公众号文章《稳定易用!全面解读新一代OceanBase云平台》。
OB自动化部署
OB机器资源管理
OCP的功能某种意义上是一个小型的云数据库管理平台。在部署OB之前要先将机器资源通过OCP管理起来。机器规模大了,管理好机器资源这个也很重要。
【资源】->【新增机器】,需要录入机器相关信息包括帐号权限(用于打通OCP到机器ssh通道)。
录入后查询结果如下。其中有3台机器是OCP安装过程中自动初始化的数据。
软件资源管理
管理软件RPM包。通过OCP可以自动化部署OB集群,OBProxy,OB备份恢复等。所以OCP需要管理OB、OBProxy以及OB备份恢复用的软件RPM包。其中版本信息对后期升级非常重要。在外部客户,RPM需要上传,然后保存到元数据库中。机器规模大,管理好每个机器上的软件版本也很重要。
OB集群部署
部署OB用的机器和RPM都准备好就可以开始新建OB集群。
【新建集群】时可以选择RPM版本、分组信息、机房信息等。随后后台任务会自动从机房机器资源池里寻找空闲的机器用于安装。集群名称非常重要,是后面识别这个集群的唯一标识。
顺利的话,新建集群任务十几分钟左右能完成。随后可以查看已有的集群。
有关集群后期的运维操作(如扩容、升级、重启、下线、备份等操作)都集中在这里。
OBProxy部署
业务OB集群需要使用独立的OBProxy访问。这个OBProxy可以部署在任意服务器、虚拟机上。这个机器信息需要单独增加,作为OBProxy的服务器。
点击【运维】-【OBProxy】
机器添加成功后,会出现该机器的列表,后面操作里有【安装】按钮,即是引导安装特定版本的OBProxy。
通过这里安装的任意一个OBProxy可以访问OCP里新增的OB集群。在客户实际环境,可能还需要将多个OBProxy挂载到一个F5或LVS等设备下以为OBProxy提供高可用和负载均衡能力。这个目前不在OCP里做。
到这一步,一个OceanBase集群就部署好了。下面开发就可以开始数据库实例申请和使用。也就是在云栖大会现场也可以互动体验的一部分。有兴趣去现场体验的要重点看下这块。
OB实例使用(互动体验)
实例申请
在OCP的【实例】->【新建实例】下,有实例申请页面如下:
实例申请需要指定:
OB版本:目前有1.x和2.x两个主流版本。
兼容模式:MySQL或ORACLE,以后重点发展ORACLE兼容模式。
集群分组:实例会从这个分组下的OB集群里分配。
实例规格:按需分配,后面可以弹性伸缩。
租户数量和列表:默认数量1.大于1是一次性申请多个同等规格的租户。下面列表表示租户的多副本具体形态。默认是三副本。机器多的话可以增加只读副本。
点击确认后回到实例列表里,可以看到 实例在创建中。通常5分钟左右实例就可以创建完毕。可以到【任务】模块里查看创建租户进度。
实例创建成功后,不能直接使用,会提示修改密码。点击列表中实例名链接。
修改实例管理员密码
点【重置密码】,指定密码后生成修改密码任务。大概1分钟就成功。
从【实例详情】页面里还能看到实例的连接用户名:sys@oracletest10_3#OB22
,连接IP就是前面新增的任意一个OBProxy。这个页面还可以对实例的资源规格进行在线调整(即弹性伸缩)。
连接OB(ORACLE)实例
如果申请的OB实例兼容MySQL,则可以用任意一款MySQL客户端。不过我推荐用DBEaver(参见《推荐一款数据库通用客户端(也支持OB)》)。如果OB实例兼容ORACLE,则外部任意一款数据库客户端都不支持这个连接协议。OB开发同学在开源的DBEaver基础上新增了对OB实例的支持(内测中,无论MySQL模式还是ORACLE模式都可以)。
输入OB的ORACLE实例信息,
测试链接成功后,点完成。即可执行一些SQL。
MySQL的一些很方便的SHOW命令在ORACLE实例里也保留了。ORACLE DBA再也不用羡慕MySQL下的那些格式友好的命令了。
后面操作就是ORACLE SQL常用操作,这里就不介绍了。
查看实例性能
查看实例性能也是从【实例详情】中进去,点击【性能指标】
因为刚才新建实例没有业务访问,这里借助另外一个实例的性能数据。
OceanBase实例的性能指标非常丰富,为将来OceanBase深入性能诊断优化打下基础。
监控集群实时性能
还可以通过【监控】查看【OB实时】性能。可以看所有集群或者指定的集群。
实例删除
最后实例试用完了可以删除,删除入口在【实例详情】页面里。
通常在删除之前建议作一个实例备份。由于一体机服务器有限,没有配置备份服务器这里就不演示【集群备份】和【实例恢复】了。
结论
从上面可以看出,围绕OceanBase的部署、运维、使用方面的平台工具建设已经非常成熟,这得益于OceanBase在蚂蚁内部多年的运维经验积累。OCP可以说是一个自动化运维PaaS平台,也可以理解为云数据库平台。
当然随着OB对外输出,外部客户业务跟蚂蚁业务往往有很大差别,运维规范职责分工也有很大不同,OCP的自动化运维设计还需要进一步跟传统客户的实际情况结合。这点需要实际项目积累,也欢迎大家积极反馈。
更多内容,推荐阅读: