验证OceanBase
部署OceanBase完成后,需要验证OceanBase是否已经可用。在验证OceanBase前,需要先创建租户。
OceanBase是支持多租户的数据库,OceanBase数据库租户是一个逻辑概念,是资源分配单位,OceanBase数据库租户间的数据是完全隔离的,每个租户都相当于传统数据库的一个数据库实例。
OceanBase数据库租户分为系统租户和普通租户。本节介绍通过创建普通租户来验证OceanBase。OceanBase数据库默认会自动创建系统租户,系统租户负责一部分OceanBase数据库管理工作,并且能够访问系统元数据表。系统租户自动预留了一定的资源。
以下为创建普通租户以及数据库的详细操作步骤:
- 使用root用户通过OBClient连接OceanBase。
obclient -h127.0.0.1 -P2883 -uroot -Doceanbase -A
以下参数请根据实际情况修改:
- 127.0.0.1和2883为OceanBase服务器的IP地址和端口号。
- root为数据库用户。
- oceanbase为OceanBase数据库的名称。
- 创建资源单位。
- OceanBase 3.1.5:
CREATE RESOURCE UNIT sysbench_unit max_cpu = 122, max_memory = '200G', min_memory = '200G', max_iops = 102400, max_session_num = 30000, max_disk_size = '120G';
以下参数请根据实际情况修改:
- sysbench_unit为本例中需要创建的资源单位名称。
- MAX_CPU和MAX_MEMORY表示使用该资源配置的资源单元能够提供的CPU和Memory的上限。
- MAX_MEMORY的取值范围为[1073741824,+∞),单位为字节,即最小值为1GB。
- MAX_IOPS的取值范围为[128,+∞)。
- MAX_SESSION_NUM的取值范围为[64,+∞)。
- OceanBase 4.2.1:
CREATE RESOURCE UNIT sysbench_unit MEMORY_SIZE='200g',LOG_DISK_SIZE='120g',MIN_CPU=122,MAX_CPU=122,MAX_IOPS=102400,MIN_IOPS=102400;
以下参数请根据实际情况修改:
- sysbench_unit为本例中需要创建的资源单位名称。
- MEMORY_SIZE字段用于指定内存容量。最小值为1GB。
- MIN_CPU和MIN_MEMORY表示使用该资源配置的资源单元能够提供的CPU和Memory的下限。
- LOG_DISK_SIZE字段用于指定租户的Unit日志盘的大小。默认值为内存规格值的3倍,最小值为2GB。
- MIN_CPU字段用于指定CPU的最少数量,为可选项。默认等于MAX_CPU,最小值为1C。
- MAX_CPU字段用于指定CPU的最多数量。最小值为1C。
- MAX_IOPS字段用于指定IOPS的最多数量,为可选项。最小值为1024。
- MIN_IOPS字段用于指定IOPS的最少数量,为可选项。最小值为1024。
- OceanBase 3.1.5:
- 创建资源池。
CREATE RESOURCE POOL sysbench_pool unit = 'sysbench_unit', unit_num = 1, zone_list=('zone1','zone2','zone3');
以下参数请根据实际情况修改:
- sysbench_pool为本例中需要创建的资源池名称。
- sysbench_unit为2中创建的资源单位名称。
- unit_num字段用于指定要创建的单个Zone下的Unit个数。每个单元会根据当前集群负载,自动在每个Zone中选择一个Server负载,但同一个资源池的多个Unit不能分配到同一个Server,即一个资源池包含的Unit个数不能超过单Zone内Server的个数。指定要创建的单个Zone下的Unit个数。每个单元会根据当前集群负载,自动在每个Zone中选择一个Server负载,但同一个资源池的多个Unit不能分配到同一个Server,即一个资源池包含的Unit个数不能超过单Zone内Server的个数。
- zone_list字段用于指定要创建的资源池所属的Zone。指定要创建的资源池所属的属于哪些Zone。可以通过查询oceanbase.DBA_OB_ZONES视图,获取集群中的Zone信息,操作步骤如下:
- 使用root用户登录到集群的系统租户。连接示例如下,连接数据库时请以实际环境为准。
obclient -h127.0.0.1 -P2883 -uroot -Doceanbase -A
- 在数据库中查询oceanbase.DBA_OB_ZONES视图,获取集群中的Zone信息。
SELECT * FROM oceanbase.DBA_OB_ZONES;
- 使用root用户登录到集群的系统租户。连接示例如下,连接数据库时请以实际环境为准。
- 创建普通租户。
create tenant sysbench_tenant resource_pool_list=('sysbench_pool'), charset=utf8mb4, replica_num=3, zone_list('zone1', 'zone2', 'zone3'), primary_zone=RANDOM, locality='F@zone1,F@zone2,F@zone3' set variables ob_compatibility_mode='mysql', ob_tcp_invited_nodes='%';
以下参数请根据实际情况修改:
- sysbench_tenant为本例中需要创建的租户名称。
- sysbench_pool为资源池名称。
- charset字段用于指定字符集。
- replica_num字段用于指定副本数。一般情况下设置为与Zone数相同,且不允许超过Zone数。
- zone_list字段用于指定要创建的资源池所属的Zone。
- primary_zone字段用于指定租户所在的PrimaryZone名称。
- locality字段用于描述副本在Zone间的分布情况。
- ob_compatibility_mode字段用于指定租户的兼容模式(可选MySQL或Oracle模式),而且只能在创建时指定;如果不指定ob_compatibility_mode,默认兼容模式为MySQL。
- 使用root用户登录创建的租户下的系统默认数据库。
obclient -h127.0.0.1 -P2883 -uroot@sysbench_tenant -Doceanbase -A
以下参数请根据实际情况修改:
- 127.0.0.1和2883为OceanBase服务器的IP地址和端口号。
- root为数据库用户,sysbench_tenant为数据库租户。
- oceanbase为OceanBase数据库的名称。
- 创建sysbench_tenant租户下的数据库。
父主题: OceanBase部署指南