首页 > 数据库 > 数据库开发技术 > OB公有云体验三:深入使用
本文接前篇《OB 公有云体验二:跟独立部署的区别》继续分享 OB公有云深入使用经验。文中示例是阿里云上 OB,其他云上使用方法大体相同。
假设你是 DBA 刚接手客户的公有云数据库。首先进入的是云数据库 OceanBase 的控制台界面。
左边菜单是 OBCloud 数据库常用的操作:实例列表(管理 OBCloud 实例详情)、自治服务(性能容量自治诊断服务)、迁移评估(将传统数据库 ORACLE/MySQL 迁移到 OBCloud 前的评估,包括兼容性、性能)、数据传输(OMS公有云版本,支持传统数据库、云数据库到 OBCloud 实例的迁移,类似阿里云的 DTS)、数据研发(ODC 公有云版本,跟 ODC Web 版本功能大体相同,很实用。类似于阿里云的 DMS )。中间是 OBCloud 实例的汇总,关注一下其中的过期时间。这里也会有性能诊断和容量诊断的结果,关注一下空间使用率和增长情况。右下角是 OBCloud 实例常用运维操作,包括购买实例(新建新的集群实例)、新建租户(也是租户实例)、新建账户(给开发用的账户)、创建数据库(给开发用的数据库)、设置白名单分组(数据库很多的时候对访问客户端做白名单限制,不是 OB 租户内部的那个白名单变量)、添加报警规则(运维基础操作)、配置备份策略(运维基础操作,有备无患)。
接下来就是看实例详细列表。

首先关注付费模式和到期时间。云数据库服务可用性跟钱密切相关。说极端一点,钱不到位,数据库立即关停。然后就是看实例类型(集群实例是独立 OB 集群,租户实例就是云的集群实例中的一个租户)、序列(序列对应的是数据盘模式,有云盘ESSD PL1、本地NVMe SSD和本地 HDD。磁盘的性能影响数据库的读写性能、合并行等等)、可用区(可用区就是机房,跟部署类型也密切相关。通常是双机房部署或多机房部署,其中双机房部署的副本类型是 2F1A ,有2个数据副本同时也有高可用容灾多活能力,是比较经济的选择)、存储空间(这只包含数据文件的存储空间,日志文件clog以及备份空间都是配套送的,备份空间有免费额度,需要详细了解一下,不然用着用着就收费了)。
上面这些信息进入具体的实例还可以看的更详细一些。

其中需要特别留意的是版本自动升级(小版本自动升级)、可维护时间(客户允许 OBCloud 后台自动进行 OB 升级重启的时间)、数据合并( OBCloud 集群实例的数据合并 MAJOR FREEEZE 时间,如果集群中租户很多,可以考虑租户层面设置错开合并时间)、全功能副本数(跟部署类型相关,也可以调整全功能副本数,会引起大批量数据同步操作)。右边的容量详细信息可以看到日志盘大小和分配率。OB 4.2 后日志clog 空间也是预分配,这个就是预分配的总空间,实际使用不会超出这个空间。如果租户的 clog 空间不够用会有报错,那个时候先扩容租户的 clog 空间。如果碰到集群实例的日志盘空间不够,再扩容集群的日志盘空间。
涉及到实例资源规格和容量的变更操作需要使用标准变配、临时变配、定时变配。三个操作的原理都是 OB 租户的弹性伸缩能力,区别只是计费方式不一样,最后一个定时变配还要求能变回去。在 OBCloud 的资源里,数据盘的空间一旦变大就不能变回去,这是 OB 技术限制的(blockfile 不支持缩容)。

实例套餐规格变配指的 CPU 和内存,存储空间扩容就是数据文件,分开处理是因为前者操作起来方便一些。此外规格变配可能引起数据迁移(也叫迁移变配)。在线下 OB 集群运维里也很常见。节点数的变更就是拓扑的变化,会引起数据迁移。日志盘扩容技术上支持,公有云暂时没有全部放开,提工单可以开通。
说到 OBCloud 实例的拓扑,集群实例拓扑如下。

这个里面可以看到集群实例的节点规格和数量、租户信息。租户信息中特别是主可用区信息(PRIMARY ZONE设置)。图中两个租户的主可用区都设置为使用全部可用区,默认情况是其中一个可用区。主可用区的选择要看业务应用部署在哪个可用区。否则,业务访问数据库应用容易出现跨可用区的请求。在配置租户的可用区或者数据库代理的可用区时,产品页面发现跨可用区请求时会提醒。
租户实例也有拓扑页面,相对信息就少很多。

租户拓扑图能看到节点的副本类型(只能看到全功能副本、只读副本等)、主可用区信息。不一样的是可以看到租户的代理地址。OBCloud 实例的访问是以租户为单位的,每个租户实例(包括集群实例的租户)都有一个独立的访问地址(默认是可读可写地址),这个地址是一个域名,后端对应代理在对应可用区的节点 IP(一般就是 OBCloud 集群实例的节点 IP,所以不同客户的代理实际地址不会重复,除非后期推出了共享型的数据库代理产品)。当代理地址切换可用区后,域名地址不变,域名解析出来的 IP 可能会变,所以不要通过 IP 去连接租户。
租户实例还支持增加多个代理地址,用于只读查询、读写分离等场景。这些地址的可用区选择就看用户场景期望读在哪个可用区了。

如果可用区选择在非默认的可用区时,会提示要在对应可用区创建一个 VSwitch 交换机和 VPC 网络。
OBCloud 实例控制台首页的【自治服务】可以在顶层查看所有 OBCloud 实例(集群实例和租户实例)的性能概况(有多少个 SlowSQL 或 可疑 SQL)。使用门槛非常低,这里就不多介绍。这里介绍一个隐藏用法,在租户实例的性能监控页面上,选取想重点查看的时间范围,会提示一个【诊断租户】。
点击诊断租户,会弹出跟自治服务中类似的租户性能诊断页面。
在租户实例非常多的客户里,OBCloud 这个自治服务和租户诊断服务可以节省运维很多精力。如果时间充足的话,可以使用租户实例下【诊断】页面进行更细粒度的诊断。
这个页面功能看起来就很熟悉了,线下 OCP 早期版本很早就有了,就不详细介绍了。
OBCloud 实例免不了要从线下导入大量数据,可以使用数据迁移服务,也可以使用文件导入数据。由于 OB 4.3.0 才支持客户端导入 CSV 文件命令(load local data),所以碰到 OBCloud 实例,load data 就用不了(版本是 4.2.1, OB 节点用户不能访问)。变相替代方法就是用 obloader 工具将 CSV 文件导入到租户里。如果 csv 文件非常多数据量非常大,默认的导入方法可能会很慢,这个时候就可以用到旁路导入功能。
首先需要理解旁路导入是 OB 内核的一个能力,允许某些数据写入时绕开 SQL 引擎的部分路径以及增量内存写入路径,而直接将数据写入到数据文件中(sstable)。使用 insert /*+ direct */ into ... 方法可以在 SQL 窗口里激活旁路导入。obloader 作为一个客户端工具要使用旁路导入路径,需要使用参数 --direct --rpc-port=xxx 方法。这个 rpc-port 就是指 OBServer 节点的 2882 端口。在公有云上, OBServer 节点不会允许客户端直连 OBServer,而是通过 ODP 连接。即使是 ODP 也不是直接连接,而是前端使用 SLB 提供一个域名和 VIP 接受用户请求,也就是用户看到的租户的数据库代理地址。这个时候要怎么启用旁路导入呢?
办法也是有的。首先 ,ODP 要升级到 4.3.0 版本。ODP 会新增一个监听端口(rpc_port=2885),ODP 会把客户端发往 2885 的请求转发给后端 OBServer 的 2882 端口。第二,公有云上代理地址开通旁路导入端口(目前是 3307 )。公有云会将客户端对 3007 端口的请求转发到 ODP 的 2885 端口。这样, obloader 就可以通过旁路导入功能导入大量数据到业务租户中。
目前要升级公有云 ODP 版本需要给售后提工单。
OBCloud 实例在阿里云上有在线工单,使用的是阿里云的在线工单系统。工单机器人用了阿里云的通义千问模型,在查询文档、产品用法方面非常实用(比 OB 官网文档搜索功能好很多)。所以有些功能不会用,可以问【在线服务】。
不过,需要留意的是,跟 ChatGPT 一样,这个机器人也会有一本正经的胡说八道的时候。对于它给出的答案如果有官网文档链接,以官网文档里为准。如果没有链接,大概率就是它拼凑的答案,这个时候更要去查看官网文档核实一下。
有些需求和问题也可以【提交工单】。提交工单的效果如何取决于你对问题的描述信息的准确度。一般建议讲清楚:
实例名
需求或问题概述
问题复现步骤包括截图
工单交流碰到复杂的问题时可能需要授权服务账户访问你的实例、或者售后会拉钉钉群,有 阿里云 TAM 专门处理你的问题。处理效果往往首先取决于沟通效率、其次才是问题技术难度。

几个工单沟通下来,我的感觉还是很好的,反馈基本都给满。
更多阅读参考:
原文作者:数据库技术闲谈;如有侵权,请联系管理员删除。