oceanbase创建和使用租户

2024年 7月 12日 66.7k 0

[TOC]

1.租户的组成逻辑:

unit->pool->telent
单元 -> 资源池 -> 租户 -> 用户、数据库->对象
其中,
单元是资源的最小单位,可创建多个单元;
资源池由单元组成,一个资源池只能由一个单元构成;
租户由资源池组成,一个租户可以由多个资源池构成,但一个资源池只能属于一个租户;

当我们需要对租户进行扩容的时候,往往有两种方式:
1)从最底层单元入手,扩展单元的大小;
2)从最顶层入手,扩展租户的资源池

2.步骤:

1)创建unit

V3:
create resource unit u_1c2g max_cpu=1,max_memory='2g',max_iops=10000,max_disk_size=182441738240,max_session_num=1000000;

查看创建的unit资源信息:
use oceanbase;
select * from __all_unit_config;

其中,max_cpu,max_memory,max_iops,max_disk_size,max_session_num参数都需要出现在语句中进行定义。否则会报错:
Miss argument for 'PARAMETER_NAME'

V4:

create resource unit u_1c2g max_cpu=1,memory_size='2g',log_disk_size=51539607552,max_iops=1000000,iops_weight=8;

查看创建的unit资源信息:
use oceanbase;
select * from __all_unit_config;

其中,max_cpu,memory_size是必选参数,其他均可使用默认。这里我们需要注意的是,在v3和v4版本中在参数上的区别,比如memory的定义、disk的定义,iops的定义。

2)创建pool资源

V3、V4版本相同:

create resource pool pool_2c4g unit=u2c4g,unit_num=1;
or
create resource pool pool_2c4g unit=u2c4g,unit_num=1,zone_list=('zone1','zone2','zone3');

其中,unit和unit_num是必选参数,且unit_num的数量,必须小于等于zone中的observer的数量,否则会报错,无法创建(unit不能跨observer,一个资源池中,每个observer只能有一个unit)。

查看创建的pool资源信息:
use oceanbase;
select * from __all_resource_pool;

这里需要注意:
当我们设计的unit的memory小于5g的时候,在我们创建pool时,会报错:
ERROR 1235(0A000): unit min memory less then __min_full_resource_pool_memory not support

这是由于oceanbase在创建时,默认参数"__min_full_resource_pool_memory"的默认值为5G,它限制了资源池的最小内存,如果小于5G,则会报错。

那么我们要如何查询和修改默认参数呢?在v3和v4版本中,默认参数的查询视图也存在差异,具体如下:
v3版本中:
select * from oceanbase.__all_virtual_sys_parameter_stat where name='__min_full_resource_pool_memory';

v4版本中:
select * from oceanbase.gv$ob_parameters where name='__min_full_resource_pool_memory';

修改隐含配置项:
alter system set __min_full_resource_pool_memory=1073741824;
需要注意的是,该参数的单位是bytes,在配置时不能写单位,否则会报错,同时该值的大小最小为1g,既1073741824,过小的值会报错:Invalid config。

3)创建租户:

create tenant wx_tentant comment='For WX Test',charset='utf8mb4',zone_list=('zone1,zone2,zone3'),primary_zone='zone1,zone2;zone3',resource_pool_list=('pool_2c4g') set ob_tcp_invited_nodes='%';

其中,resource_pool_list为必选项。

4)登陆租户

创建租户后,可以直接使用root的管理员用护进行登陆,此时root默认没有被设定密码,因此我们需要登陆设置密码

登陆:
mysql -h172.16.131.213 -p2883 -uroot@wx_tentant#LsccbCluster_v3

修改密码:
alter user root identified by 'Password';

重新登陆:
mysql -h172.16.131.213 -p2883 -uroot@wx_tentant#LsccbCluster_v3 -pPassword

此时,在ocp上如果想对租户底下的对象进行操作,那么我们只需要输入root的密码即可
oceanbase创建和使用租户-1

oceanbase创建和使用租户-2

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论