OB如何创建租户
一、 先导知识:
资源隔离是保证用户间相互不受影响的重要手段。数据库的资源隔离主要有以下方式:
l 服务器隔离
l 数据库隔离:sqlserver、oceanbase、oracle 12c、informix、TDSQL
l Schema隔离:oracle(before 12c)、mysql、DB2
OceanBase的资源隔离
在OceanBase集群中,每当有业务需要使用数据库时,在该集群上为其创建一个租户。通过租户实现资源隔离,采用“单实例多租户”的管理模式。每个用户在OceanBase上都有对应的租户信息,一个租户相当于MYSQL上的一个实例,根据用户的需求,用户对应的租户绑定指定规格的资源,包括CPU核数、内存、存储空间等。
OceanBase上有系统租户和用户租户都有root权限账号
l 系统租户存放OceanBase数据库管理的各种内部元数据信息
l 用户租户下存放用户的各种数据和数据库元信息

二、 如何创建租户
创建租户流程步骤:
- 创建单元
CREATE RESOURCE UNIT unitname
MAX_CPU [=] cpunum,
MAX_MEMORY [=] memsize,
MAX_IOPS [=] iopsnum,
MAX_DISK_SIZE [=] disksize,
MAX_SESSION_NUM [=] sessionnum,
[MIN_CPU [=] cpunum,]
[MIN_MEMORY [=] memsize,]
[MIN_IOPS [=] iopsnum] ;
创建资源单元配置时, MAX_CPU、MAX_MEMORY、MAX_IOPS、MAX_DISK_SIZE、MAX_SESSION_NUM必须指定。MIN_CPU、 MIN_MEMORY、MIN_IOPS可选,默认值和MAX_CPU、MAX_MEMORY、 MAX_IOPS 保持一致。
|
参数 |
取值范围 |
单位 |
备注 |
|
MAX_MEMORY |
[1073741824, +∞) |
字节 |
最小值为1G,写成带单位的形式,如‘1G’,‘100M’等 |
|
MAX_IOPS |
[128,+∞) |
||
|
MAX_DISK_SIZE |
[536870912,+∞] |
字节 |
最小值为512M,写成带单位的形式,如‘1G’,‘100M’等 |
|
MAX_SESSION_NUM |
[64,+∞) |
- 创建资源池
CREATE RESOURCE POOL poolname
UNIT [=] unitname,
UNIT_NUM [=] unitnum,
ZONE_LIST [=] ('zone' [, 'zone' …]);
资源池中包含 N 个资源单元,同时必须指定所属的 ZONE LIST(集群)。若需要包含N个资源单元,需多次使用create添加相应的资源池。在用户手册中,资源池是存在修改的命令的方式,但经过真实测试,在1.X的版本中无法对资源池进行修改。若需要修改,那是一个比较繁琐的流程。
- 创建租户
CREATE TENANT [IF NOT EXISTS] tenantname
[tenant_characteristic_list]
tenant_characteristic_list:
tenant_characteristic [, tenant_characteristic...]
tenant_characteristic:
COMMENT 'string'
|{CHARACTER SET | CHARSET} [=] charsetname
|COLLATE [=] collationname
|REPLICA_NUM [=] num
|ZONE_LIST [=] (zone [, zone…])
|PRIMARY_ZONE [=] zonelist
|DEFAULT TABLEGROUP [=] {NULL | tablegroup}
|RESOURCE_POOL_LIST [=](poolname [, poolname…])
|LOCALITY [=] locality;
如果要创建的租户名已存在,并且没有指定 IF NOT EXISTS,则会出现错误租户名的合法性和变量名一致,最长 64 个字节,只能有大小写英文字母,数字和下划线,而且必须以字母或下划线开头,并且不能是 OceanBase 的关键字。只有用 root 用户连接到系统租户才能执行 CREATE TENANT 去创建租户。
三、 小结:
OceanBase是阿里在Paas数据库云上的解决方案。它的优点在于可以根据租户的资源使用情况,进行调配(可看下图),但生产系统上严禁出现超卖的情况。若发生超卖的情况,在某一个副本故障时其他两个副本有可能无法接管业务。系统租户用户无法查询到其他租户的信息,这方面的安全性比oracle12c做得更好,个人觉得更适合在公有云上大展手脚。

代表一个租户
OB如何创建租户的更多相关文章
- openstack私有云布署实践【15 创建租户网络+实例】
这里以办公网测试环境为例, (一)创建租户demo的网络 使用admin用户 source admin-openrc.sh 创建public公网 neutron net-create 1040 ...
- 版本12.2.0.1.0数据库,复制种子数据库快速创建租户数据库PDB
实验测试:快速创建一个数据库PDB2: 实验环境:12.2.0.1.0版本数据库,dbca图形化安装,现有环境,CDB容器数据库ORCL,PDB可插拔数据库ABC ---查询CDB名称,状态 SQ ...
- openstack 租户、用户管理
创建domain [root@cc01 ~]# openstack domain create --description "Default Domain" default +-- ...
- OpenStack Train版-12.创建虚拟网络并启动实例(控制节点)
使用VMware虚拟机创建网络可能会有不可预测到的故障,可以通过dashboard界面,管理员创建admin用户的网络环境 1.第一种: 建立公共提供商网络在admin管理员用户下创建 source ...
- 如何用Serverless让SaaS获得更灵活的租户隔离和更优的资源开销
关于SaaS和Serverless,相信关注我的很多读者都已经不陌生,所以这篇不会聊它们的技术细节,而将重点放在SaaS软件架构中引入Serverless之后,能给我们的SaaS软件带来多大的收益. ...
- efcore使用ShardingCore实现分表分库下的多租户
efcore使用ShardingCore实现分表分库下的多租户 介绍 本期主角:ShardingCore 一款ef-core下高性能.轻量级针对分表分库读写分离的解决方案,具有零依赖.零学习成本.零业 ...
- efcore在Saas系统下多租户零脚本分表分库读写分离解决方案
efcore在Saas系统下多租户零脚本分表分库读写分离解决方案 ## 介绍 本文ShardinfCore版本x.6.0.20+ 本期主角: - [`ShardingCore`](https://gi ...
- OceanBase数据库实践入门——手动搭建OceanBase集群
前言 目前有关OceanBase功能.案例.故事的文章已经很多,对OceanBase感兴趣的朋友都想安装一个数据库试试.本文就是分享初学者如何手动搭建一个OceanBase集群.这也是学习理解Ocea ...
- Hitachi Content Platform学习
相关资料:https://community.hds.com/groups/developer-network-for-hitachi-content-platform/content?filterI ...
随机推荐
- 服务间调用--feign跟ribbon
微服务一般来说当然是多服务多实例的,那么这些服务之间如何相互调用呢?spring cloud之前我们用dubbo,把服务开放出来,在xml配好后就可以像调用本地service一样调用其它模块的服务了: ...
- 【转】浅谈https\ssl\数字证书
转载请注明出处:http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的SSL数字证书申请 ...
- FTL(FreeMarker)基础
FreeMarker标签使用一.FreeMarker模板文件主要有4个部分组成1.文本,直接输出的部分2.注释,即<#--...-->格式不会输出3.插值(Interpolation):即 ...
- css 两大特性:继承性和层叠性
css 有两大特性: 继承性和层叠性, 继承性 面向对象语言都会存在继承的概念,在面向对象的语言中,继承的特点:继承了父类的属性和方法.那么我们现在主要研究css,css中没有方法,所以我们仅仅继承属 ...
- gradle方式集成融云sdk dlopen failed: library "libsqlite.so" not found
1.gradle implementation 'cn.rongcloud.android:IMLib:2.8.6' implementation 'cn.rongcloud.android:IMKi ...
- 刚刚写的一个lua下解释csv的工具。
csvtool = {} function csvtool:csv2table(filename) if type(filename) ~= "string" or filenam ...
- 关于如何等待一个元素的出现而不用一些笨拙粗暴的time.sleep()方法
我相信这是一个非常大众化的需求,我们需要等待某一个元素的出现以此来让我们的脚本进入到下一个Step,这个等待方法最好能够设置超时时间,然后找到后迅速callback.我们也很幸运!如果你仔细看Sele ...
- PowerShell 脚本域策略管理
大中型企业中,会设置许多组策略进行日常运维管理 ,毕然里面也存在许多废弃的策略,需要我们定期清理我们的组策略信息.通常我们导出HTML报告方式来帮助我们分析组策略信息: #1 首先需要加载GroupP ...
- 关于VisualStudio2010发布项目问题
VisualStudio2010速度还是很给力的,VS2015打开机器就双100%了:VS2010机器上跑起来还是很好用的. 今天编译一个MVC3.0项目,发布时候出现诡异现象:Content文件夹里 ...
- Ehcache的配置与使用
Ehcache是JAVA内制的一个缓存框架! 目的:缓解频繁读取数据库的压力; 初步配置如下: <?xml version="1.0" encoding="UTF- ...