OceanBase 创建租户

OceanBase 数据库 4.0 开始,有三种类型的租户:系统租户用户租户 以及 每个用户租户对应的 Meta 租户

规则

一个 OceanBase 数据库租户可以在资源规格、资源池、副本类型,副本分布几个不同维度灵活定义,所以创建租户时,也需要按照 “unit config -> resource pool -> tenant” 的顺序进行创建和定义

创建 Unit 

登录

obclient -uroot@sys -h127.0.0.1 -P2881

资源单元 Unit 是一个租户使用 CPU、内存的最小逻辑单元,也是集群扩展和负载均衡的一个基本单位,在集群节点上下线,扩容、缩容时会动态调整资源单元在节点上的分布进而达到资源的使用均衡。而 Unit Config 则规定了一个 Unit 需要使用的计算存储资源(包含内存、CPU 和 IO 等)的规格,是一个配置信息

CREATE RESOURCE UNIT test1 MAX_CPU =3,MIN_CPU =3 ,MEMORY_SIZE ='2G';

创建 resource pool

Resource Pool 则是租户的资源实体,所以在这一步我们需要创建一个 Resource Pool,并且与 Unit Config 关联起来

CREATE RESOURCE POOL pool1 UNIT='test1',UNIT_NUM=1,ZONE_LIST=('zone1');

注意

上面的例子针对的是单节点的集群环境,如果您的集群有 3 个节点,那么 ZONE_LIST 的值应该为 ('zone1','zone2','zone3'),其中 Zone 的名称需要根据您创建的情况具体填写。

查看集群信息

obclient [(none)]> SHOW PARAMETERS LIKE 'cluster';

创建 租户

在完成 Unit Config、Resource Pool 的创建,完成资源单元和资源池的对应后,就可以正常开始租户创建了。

定义一个名为 tenant1 的单副本租户,并规定字符集为 utf8mb4,使用 pool1 的资源池,ob_tcp_invited_nodes 是租户白名单定义,初始可以设置为 '%',表示任意 IP 地址均可以访问,后期可以修改

CREATE TENANT IF NOT EXISTS tenant1 CHARSET='utf8mb4', ZONE_LIST=('zone1'), PRIMARY_ZONE='zone1', RESOURCE_POOL_LIST=('pool1') SET ob_tcp_invited_nodes='%';

注意

上面的例子针对的是单节点的集群环境,只能创建单副本的租户。如果您的集群有 3 个节点,那么 ZONE_LIST 的值应该为('zone1','zone2','zone3'),PRIMARY_ZONE 则填写 'zone1;zone2;zone3',表示租户的 Leader 优先分布在 zone1,其次为 zone2

验证

通过查询 oceanbase.DBA_OB_TENANTS 视图来确认租户是否创建成功

obclient [oceanbase]> SELECT * FROM DBA_OB_TENANTS;

# 查看unit情况,当前在oceanbase database下,有默认的sys_unit_config
select * from __all_unit_config \G
# 查看resource_pool情况
select * from __all_resource_pool \G
# 查看租户情况
select * from __all_tenant \G
# 根据上述3张表的情况,可以观察到,集群obdemo下目前没有业务租户,也没有额外的资源单位和资源池

修改租户配置

OceanBase 数据库可以灵活的对 租户资源的 CPU,内存资源进行调整,并且在线生效,对业务透明。修改租户所占用的 CPU、内存大小,仅需要 调整租户 所对应的 Unit Config,不需要对资源池或者租户进行调整

SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS;

调整 资源单元 CPU、内存的使用大小为 5 c,10 G

ALTER resource unit unit_test1  max_cpu =5,min_cpu =5 ,memory_size ='10G';
SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS;

### OceanBase 租户 创建、管理和配置使用指南 #### 一、租户概述 在OceanBase中,租户的概念类似于传统数据库中的实例。每个租户拥有独立的资源配额和命名空间,在Oracle模式下尤其如此[^2]。 #### 二、创建租户创建一个新的租户,可以使用`CREATE TENANT`命令来完成这一过程。下面是一个简单的SQL语句用于创建名为test_tenant的新租户: ```sql CREATE TENANT test_tenant CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; ``` 此命令指定了字符集以及排序规则,可以根据实际需求调整这些参数设置。 #### 三、管理租户 对于已经存在的租户来说,管理员可以通过多种方式对其进行有效管理,包括但不限于修改资源配置、暂停/恢复服务等操作。例如,当需要更改某个特定租户(假设为mytenant)的最大CPU数量时,可执行如下指令: ```sql ALTER RESOURCE UNIT myunit CPU=4, MEMORY_SIZE='8G'; ALTER TENANT mytenant UNIT=myunit; ``` 这里先改变了资源单元myunit的属性,再将其应用到目标租户上。 #### 四、配置租户 为了满足不同应用场景的需求,还可以进一步定制化各个方面的行为特性。比如开启读写分离功能以提高性能表现: ```sql SET GLOBAL ob_read_only = OFF FOR 'mytenant'; /* 设置指定租户允许写入 */ ``` 另外值得注意的是,在某些情况下可能还需要考虑跨数据中心部署等问题,这通常涉及到更复杂的网络规划和技术方案选择。 #### 五、启动备份 针对数据安全性和灾难恢复能力的要求,适时开展全量或增量级别的备份工作是非常必要的。如果希望对整个集群内所有租户的数据实施保护措施,则可以在系统级别发出请求;而若是仅限于单个业务实体范围内的话,则只需由对应的具体租户发起即可[^1]: ```sql -- 系统级全面备份 ALTER SYSTEM BACKUP DATABASE [TENANT=mysql_tenant]; -- 单独某租户自定义名称下的部分表结构及记录保存 ALTER SYSTEM BACKUP DATABASE tenant_name TABLE table_list; ``` 以上就是有关OceanBase平台之上围绕着“租户”的一系列基本概念介绍及其具体实现方法说明。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值