欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/
OceanBase 数据库采用了多租户架构。多租户架构适用于资源整合(Resource Consolidation)、云服务等场景,同时也降低了运维复杂度。
OceanBase 数据库 4.0 开始,有三种类型的租户:系统租户、用户租户以及每个用户租户对应的 Meta 租户。

登录系统租户
系统租户是 OceanBase 数据库内部用来处理集群公共任务的数据库实例。Root Service 基于系统租户承担 OceanBase 数据库的管理工作,包括集群管理、租户管理、资源管理、负载均衡、每日合并调度、迁移复制等。系统租户是集群默认创建的租户,与集群生命期一致,负责管理集群和所有租户的生命周期。
系统租户兼容 MySQL 模式,可以通过 MySQL 客户端登录也可以通过 OceanBase 客户端(OBClient)登录。
通过 MySQL 客户端登录
通过 MySQL 客户端登录数据库连接串示意如下:
mysql -h 主机 IP -P 端口号 -u 账号 -p '数据库密码' -D 默认数据库 -Ac --prompt "OceanBase(\u@\d)> "
主要参数介绍:
-h:登录 OceanBase 数据库的主机 IP。OceanBase 支持通过 ODP 登录和直连 OBServer 节点登录。建议通过 ODP 登录,ODP 可以更好的处理 OceanBase 数据库的分布式特性,包括路由和容灾功能。-P:登录 OceanBase 数据库的端口号。OceanBase 数据库支持部署时在配置文件中修改端口号,可以查看配置文件中各 OBServer 节点的mysql_port参数和 ODP 的listen_port参数。如果没有显式指定,则为默认值。- 通过 ODP 登录时,默认端口号是 2883。
- 直连 OBServer 节点登录时,默认端口号是 2881。
-u:登录 OceanBase 数据库的账号。不同于传统数据库,OceanBase 数据库的账号包含更多字段,包括用户名、租户名和集群名。- 通过 ODP 登录时,需要指定用户名、租户名和集群名,其格式为
用户名@租户名#集群名。例如以 root 用户登录 test 集群的 SYS 租户,其账号为root@sys#test。 - 直连 OBServer 节点登录时,需要指定用户名和租户名,其格式为
用户名@租户名。例如以 root 用户登录 test 集群的 SYS 租户,其账号为root@sys。
- 通过 ODP 登录时,需要指定用户名、租户名和集群名,其格式为
-p:登录 OceanBase 数据库的密码。新搭建的集群,其 SYS 租户 root 用户的初始密码为空。建议新搭建集群后的第一件事就是修改 root 用户密码alter user root identified by 'xxxxxx'。
关于通过 MySQL 客户端连接的详细信息,参见 通过 MySQL 客户端连接 OceanBase 租户。
通过 OBClient 登录
除了使用 MySQL 客户端登录,还可以使用 OceanBase 客户端(OBClient)登录。OBClient 是推荐的 OceanBase 数据库黑屏客户端工具,其用户与 MySQL 客户端兼容,其数据库连接串示意如下:
obclient -h 主机 IP -P 端口号 -u 账号 -p '数据库密码' -D 默认数据库 -Ac --prompt "OceanBase(\u@\d)> "
关于通过 OBClient 客户端连接的详细信息,参见 通过 OBClient 连接 OceanBase 租户。
登录最佳实践
-
root 用户权限较大,如果随意扩散,对数据库安全会造成极大隐患。建议 root 用户仅用于管理其他用户,并创建符合“最小够用”原则的专用的运维用户和只读用户。
-
查看视图建议以专用的只读用户登录。
OceanBase 数据库 4.0 相比以前版本最大的变化是内部信息的查询全面转向视图,通过系统租户的 OceanBase 数据库可以查看丰富的视图信息。
obclient> use oceanbase obclient> show tables; +-------------------------------------------+ | Tables_in_oceanbase | +-------------------------------------------+ | CDB_INDEXES | | CDB_IND_COLUMNS | | CDB_IND_PARTITIONS | | CDB_IND_SUBPARTITIONS | | CDB_OBJECTS | | CDB_OB_ARCHIVELOG | | CDB_OB_ARCHIVELOG_PIECE_FILES | ......这些视图分为两大类:数据字典视图和动态性能视图。
- 数据字典视图:命名特点是以
DBA_和CDB_开头,DBA_开头的视图展示的是各个租户内的信息,比如DBA_OB_LS视图展示的是租户内的日志流信息,系统租户内的DBA_OB_LS表只展示系统租户自身的日志流信息。CDB_开头的视图是系统租户专用的,用于在系统租户内查看集群所有租户的数据库状态,比如CDB_OB_LS视图展示的是集群所有租户的所有日志流信息。一般每个DBA_开头的视图在系统租户下都有对应的CDB_开头的视图。 - 动态性能视图的命名特点是以
GV$和V$开头,V$只展示登录到的机器上的信息,GV$是租户所有机器信息的汇总。OceanBase 4.0 在普通租户下也增加了很多动态性能视图,比如GV$OB_UNITS视图可以在租户内查询到本租户的 Unit 分布信息。系统租户的动态性能视图是特殊处理的,会直接展示整个集群所有租户信息的汇总。
例如查看 OceanBase 集群的节点信息:
obclient> use oceanbase Database changed obclient> select * from dba_ob_servers; +-------------+----------+----+--------------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+-------------------------------------------------------------------------------------------+ | SVR_IP | SVR_PORT | ID | ZONE | SQL_PORT | WITH_ROOTSERVER | STATUS | START_SERVICE_TIME | STOP_TIME | BLOCK_MIGRATE_IN_TIME | CREATE_TIME | MODIFY_TIME | BUILD_VERSION | +-------------+----------+----+--------------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+-------------------------------------------------------------------------------------------+ | 6.x.xxx.xx | 2882 | 6 | sa128_obv4_2 | 2881 | NO | ACTIVE | 2022-12-30 16:17:03.173519 | NULL | NULL | 2022-12-30 16:08:04.749100 | 2023-01-04 11:48:36.589270 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec 7 2022 16:22:15) | | 6.x.xxx.xx | 2882 | 4 | sa128_obv4_3 | 2881 | NO | ACTIVE | 2022-12-30 16:36:35.567437 | NULL | NULL | 2022-12-30 16:08:02.755200 | 2023-01-04 14:13:36.976548 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec 7 2022 16:22:15) | | 6.x.xxx.xxx | 2882 | 3 | sa128_obv4_3 | 2881 | NO | ACTIVE | 2022-12-12 12:42:00.054759 | NULL | NULL | 2022-11-03 15:37:09.530894 | 2022-12-22 14:43:26.717736 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec 7 2022 16:22:15) | | 6.x.xx.xx | 2882 | 1 | sa128_obv4_1 | 2881 | NO | ACTIVE | 2022-12-12 12:25:17.555651 | NULL | NULL | 2022-11-03 15:37:08.990683 | 2022-12-12 12:25:18.553763 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec 7 2022 16:22:15) | | 6.x.xx.xxx | 2882 | 2 | sa128_obv4_2 | 2881 | YES | ACTIVE | 2022-12-12 11:46:37.222980 | NULL | NULL | 2022-11-03 15:37:09.490511 | 2022-12-12 11:47:31.075335 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec 7 2022 16:22:15) | | 6.x.xx.xx | 2882 | 5 | sa128_obv4_1 | 2881 | NO | ACTIVE | 2022-12-30 16:25:45.420996 | NULL | NULL | 2022-12-30 16:08:03.928478 | 2023-01-04 11:48:36.578231 | 4.0.0.0_101000022022120716-0d7927892ad6d830e28437af099f018b0ad9a322(Dec 7 2022 16:22:15) | +-------------+----------+----+--------------+----------+-----------------+--------+----------------------------+-----------+-----------------------+----------------------------+----------------------------+-------------------------------------------------------------------------------------------+ 6 rows in set (0.03 sec) - 数据字典视图:命名特点是以
-
建议以专用的运维用户执行集群运维命令。
通过系统租户可以执行集群运维命令,例如隔离某个异常节点:
obclient> ALTER SYSTEM STOP SERVER 'xx.xx.xx.xx:2882';成功执行后可以通过
DBA_OB_SERVERS视图中对应节点的STOP_TIME字段确认是否隔离成功。
登录用户租户
与系统租户对应的是用户租户,用户租户是由用户创建的租户,对外提供完整的数据库功能,支持 MySQL 和 Oracle 两种兼容模式。
登录系统租户,查询 DBA_OB_TENANTS 视图即可查看所有的租户信息:
TENANT_TYPE表示租户类型:SYS为系统租户,META为 Meta 租户,User为用户租户。租户 ID 为 1 的是系统租户。租户 ID 大于 1000 的租户中,偶数的是用户租户,奇数的是 Meta 租户,并且用户租户的租户 ID 比其对应 Meta 租户大 1。COMPATIBILITY_MODE表示租户兼容模式:MYSQL为 MySQL 兼容模式,ORACLE为 Oracle 兼容模式。
登录 MySQL 模式的用户租户,可以用 MySQL 客户端 和 OBClient 客户端登录。登录 Oracle 模式的用户租户,只能用 OBClient 客户端登录。登录方式与登录系统租户一致,区别是登录账号中的租户名需要改为对应的租户名。
在 MySQL 模式的用户租户下,OceanBase 数据库自有的数据字典视图和动态性能视图都在 oceanbase 这个命名空间下。在 Oracle 模式的用户租户下,OceanBase 数据库自有的视图是在 SYS 用户下。两种模式下,OceanBase 数据库视图的名字、字段和使用体验都是一致的。
登录 Meta 租户
Meta 租户是 OceanBase 数据库内部自管理的租户,每创建一个用户租户会创建一个对应的 Meta 租户,其生命周期与用户租户保持一致。Meta租户不能直接登录,它的信息可以通过用户租户和系统租户进行访问。
欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/




