游客qunztrp5ggyqy_个人页

个人头像照片 游客qunztrp5ggyqy TA的个人档案
0
176
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
  • 提交了问题 2022-01-21

    OBD 自动化部署多节点集群,应如何部署?

  • 提交了问题 2021-12-09

    什么是原子钟?

  • 提交了问题 2021-12-09

    什么是全球定位系统?

  • 提交了问题 2021-12-09

    掌握物理时钟需要了解哪些技术?

  • 提交了问题 2021-12-09

    为什么说分布式系统的时钟同步非常重要?

  • 提交了问题 2021-12-09

    UUID的格式是什么样的?

  • 提交了问题 2021-12-09

    通用唯一标识符(UUID)是什么?

  • 提交了问题 2021-12-09

    MAC地址的格式是什么样的?

  • 提交了问题 2021-12-09

    什么是MAC地址?

  • 提交了问题 2021-12-09

    1Pv6地址包含哪些类别的地址?

  • 提交了问题 2021-12-09

    URI的命名策略是怎样的?

  • 提交了问题 2021-12-09

    分布式系统命名方式有哪些?

  • 提交了问题 2021-12-09

    什么是客户端写复制协议?

  • 提交了问题 2021-12-09

    服务的数据基于主复制协议是什么?

  • 提交了问题 2021-12-09

    什么是数据冗余技术?

  • 提交了问题 2021-12-09

    对象存储服务的共识应用是什么?

  • 提交了问题 2021-12-09

    分布式系统中典型的故障有哪些?

  • 提交了问题 2021-12-09

    RAFT的架构原理是什么?

  • 提交了问题 2021-12-09

    PAXOS和VR架构组件有哪些区别?

  • 提交了问题 2021-12-09

    PAXOS包含哪些角色?

  • 提交了问题 2021-12-09

    PAXOS技术原理是什么?

  • 提交了问题 2021-12-09

    块存储、文件存储和对象存储的有哪些不同特点?

  • 提交了问题 2021-12-09

    块存储、文件存储和对象存储的访问协议I接口有哪些不同?

  • 提交了问题 2021-12-09

    块存储、文件存储和对象存储的使用者有哪些不同?

  • 提交了问题 2021-12-09

    块存储、文件存储和对象存储的使用范围有哪些不同?

  • 提交了问题 2021-12-09

    如何解决海量文件存储问题?

2022年01月

  • 01.21 16:46:22
    提交了问题 2022-01-21 16:46:22
  • 01.21 16:45:43
    回答了问题 2022-01-21 16:45:43

    如何安装OceanBase?

    OceanBase 本质上是一个单进程的软件,可执行文件名叫 observer可以通过 RPM 包安装,也可以通过源码直接编译安装。 软件包下载地址有:官网下载:

    https://open.oceanbase.com/softwareCenter/community

    GitHub 下载:https://github.com/oceanbase/oceanbase/releases/

    阿里云 Yum 源:https://mirrors.aliyun.com/oceanbase/OceanBase.repo

    image.png

    注:版本号后期会变,以实际版本为主。 如果机器可以连公网,可以将阿里云 YUM 源添加到本地仓库,使用 yum 命令安装。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:44:46
    回答了问题 2022-01-21 16:44:46

    OceanBase中用普通的建表语句,忽然报错提示机器资源不足,要如何解决该问题?

    方法一:找出租户的资源单元所在节点,查看该节点掉线的原因,解决它,然后建表。这个时 间可能有点长。

    方法二:会话级别或者全局级别关闭参数 ob_create_table_strict_mode ,允许节点掉线情况 下建表能成功。

    注意:节点异常还是要尽快修复。方法二理论上还是有风险的。

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:43:01
    回答了问题 2022-01-21 16:43:01

    OceanBase中用普通的建表语句,为什么忽然报错提示机器资源不足?

    在三副本集群里,默认建表会创建三个副本。如果有节点掉线,并且该租户在那个节点上还有 资源单元(resource unit)存在,则这个建表语句就无法创建三个副本。默认情况下,OceanBase 为了保证表元数据强一致,就会报错。这个报错信息是跟机器资源有关,但是不是那么直接。但是 可以通过修改租户参数关闭这个强约束。 参数名是:ob_create_table_strict_mode

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:42:26
    回答了问题 2022-01-21 16:42:26

    为什么在创建资源池的时候,或者在调整资源池资源规格的时候,碰到报错信息?

    报错信息提示了某个 ZONE 里没有足够的资源创建该资源单元。通常是资源单元规格超出了集 群资源可用资源。 所以创建资源池或者调整资源池之前需要计算集群可用资源。这个只需要查看视 图 __all_virtual_server_stat 。由于默认 SYS 租户的资源规格的 min_cpu 和 min_memory 跟对应 的 max_cpu 和 max_memory 不一致,会导致集群剩余资源展示的不准。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:41:53
    回答了问题 2022-01-21 16:41:53

    OceanBase 复制表语法是什么?

    可以在创建表的时候就指定复制表属性 DUPLICATE_SCOPE 。这个属性有下面几个值:

    1.NONE : 这个是默认值,表示是普通的表。2.CLUSTER :表的备副本分布在租户资源池所在的所有机器上。 示例:

    image.png

    也可以在表创建好后修改这个属性:

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:40:57
    回答了问题 2022-01-21 16:40:57

    什么是OceanBase 复制表场景?

    传统普通的表,主副本可能会成为读写瓶颈,业务可能会使用读写分离技术,将只读查询分离 出去。运维将只读查询路由到备副本。这个风险是备副本理论上有一定延时。如果表是复制表,则 备副本没有延迟问题。这是一种使用场景,前提是开启弱一致性读。 复制表最有用的场景是业务数据库做了水平拆分后,有部分业务表不适合拆分。前者的数据主 副本有可能在所有机器上,后者的主副本只会在某台机器上。OceanBase 里一个事务的 SQL 都会 跟随到事务开始时那条 SQL 的路由,如果某个 SQL 被路由到的节点不是该 SQL 访问的分区的主 副本节点,这个 SQL 就是个远程 SQL 。如果这个分区所在的表是复制表,则这条 SQL 就会在本 机执行,从而提升性能。 复制表使用的前提是表的修改频率不能太高,每个事务的平均延时会比普通的表的事务延时要 大。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:40:18
    回答了问题 2022-01-21 16:40:18

    OceanBase 复制表的原理是什么?

    复制表指的是一种特殊的表。 普通的表在生产环境,默认有三副本,其中一个主副本和两个备副本。备副本通过同步主副本的事务日志 clog 保持同步,同步协议是 Paxos 协议,主副本的事务 日志只有在多数成员里确认落盘后,事务修改才会生效。通常,默认情况下,读写都是在主副本上, 备副本是不提供读写服务。应用如果开启会话或语句级别的弱一致性读后,备副本可能会提供只读 服务。风险就是备副本的读会有些许延迟。 普通表可以变为复制表,然后主副本和所有备副本之间 使用全同步协议,主副本的事务日志只有在所有副本成员里确认落盘后,事务修改才会生效。所以 主副本跟所有备副本的数据理论上都是强一致的。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:39:45
    回答了问题 2022-01-21 16:39:45

    如何创建OceanBase表分组?

    创建表分组时,首先要规划好表分组的用途。如果是用于普通表的属性,表分组就不用分区; 如果是用于分区表的属性,表分组就要指定分区策略,并且要跟分区表的分区策略保持一致。 查看表分组下的表的语句是:show tablegroups ; 。有了表分组后,在建表时就可以指定表分组。也可以后期将一个表加入到表分组,使用语句:alter tablegroup ... add 。 将表从表分组中 移出时,使用语句:alter table ... tablegroup = '';

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:39:06
    回答了问题 2022-01-21 16:39:06

    OceanBase表分组是什么?

    表分组(TABLE GROUP)是 OceanBase 作为分布式数据库的一个特色功能。 表分组是表的 属性,会影响多个表的分区在 OceanBase 机器上的分布特征。 不同表的分区有可能分布在不同的节点上,当两个表做表连接查询时,OceanBase 会跨节点请 求数据,执行时间就跟节点间请求延时有关。在 SQL 调优时,OceanBase 建议对业务上关系密切 的表,设置相同的表分组。OceanBase 对于同一个表分组中的表的同号分区会管理为一个分区组。 同一个分区组中的分区,OceanBase 会尽可能的分配到同一个节点内部,这样就可以规避跨节点的请求。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:38:29
    回答了问题 2022-01-21 16:38:29

    如何使用OceanBase分区表索引功能?

    分区表的查询性能跟 SQL 中条件有关。当 SQL 中带上拆分键时,OceanBase 会根据条件做分区剪枝,只用搜索特定的分区即可;如果没有拆分键,则要扫描所有分区。 分区表也可以通过创建索引来提升性能。跟分区表一样,分区表的索引也可以分区或者不分区。 如果分区表的索引不分区,就是一个全局索引(GLOBAL),是一个独立的分区,索引数据覆盖整个分区表。如果分区表的索引分区了,根据分区策略又可以分为两类。一是跟分区表保持一致的分区策略,则每个索引分区的索引数据覆盖相应的分区表的分区,这个索引又叫本地索引(LOCAL)。 注意:通常创建索引时默认都是全局索引,本地索引需要在后面增加关键字 LOCAL 。建议尽可能的使用本地索引只有在有必要的时候才使用全局索引。其原因是全局索引会降低 DML 的性能,DML 可能会因此产生分布式事务。 示例:创建分区表的本地索引和全局索引

    image.png

    注意:OceanBase 的分区表主键和唯一键,不需要单独建索引。OceanBase 分区表的一个功 能限制是如果分区表有主键,主键必须包含分区键。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:37:15
    回答了问题 2022-01-21 16:37:15

    OceanBase 的组合分区(二级分区)是什么?

    组合分区通常是先使用一种分区策略,然后在子分区再使用另外一种分区策略,适合于业务表 的数据量非常大时。使用组合分区能发挥多种分区策略的优点。 在指定二级分区分区策略细节时,可以使用 SUBPARTITION TEMPLATE 子句。 尽管 OceanBase 在组合分区上支持 RANGE + HASH 和 HASH + RANGE 两种组合,对于一个 流水大表,为了维护方便(新增和删除分区),建议使用 RANGE + HASH 组合方式。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:36:20
    回答了问题 2022-01-21 16:36:20

    OceanBase的哈希(HASH)分区是什么?

    HASH 分区适合于对不能用 RANGE 分区、LIST 分区方法的场景,它的实现方法简单,通过对 分区键上的 HASH 函数值来散列记录到不同分区中。如果您的数据符合下列特点,使用 HASH 分 区是个很好的选择:

    1.不能指定数据的分区键的列表特征。

    2.不同范围内的数据大小相差非常大,并且很难手动调整均衡。

    3.使用 RANGE 分区后数据聚集严重。

    4.并行 DML、分区剪枝和分区连接等性能非常重要。

    但HASH 分区不能做新增或删除分区操作。 示例:创建一个 HASH 分区表

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:34:54
    回答了问题 2022-01-21 16:34:54

    使用范围(RANGE)分区,需要注意什么?

    当使用 RANGE 分区时,需要遵守如下几个规则:

    1.PARTITION BY RANGE ( expr )里的 expr 表达式的结果必须为整形。

    2.每个分区都有一个 VALUES LESS THAN 子句,它为分区指定一个非包含的上限值。分区键 的任何值等于或大于这个值时将被映射到下一个分区中。

    3.除第一个分区外,所有分区都隐含一个下限值,即上一个分区的上限值。

    4.允许且只允许最后一个分区上限定义为 MAXVALUE ,这个值没有具体的数值,比其他所有分区的上限都要大,也包含空值。

    注意:RANGE 分区可以新增、删除分区。如果最后一个 RANGE 分区指定了 MAXVALUE ,则不能新增分区。所以建议不要使用 MAXVALUE 定义最后一个分区。 RANGE 分区要求表拆分键表达式的结果必须为整型,如果要按时间类型列做 RANGE 分区,则 必须使用 timestamp 类型,并且使用函数 UNIX_TIMESTAMP 将时间类型转换为数值。这个需求也 可以使用 RANGE COLUMNS 分区实现,就没有整型这个要求。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:33:21
    回答了问题 2022-01-21 16:33:21

    OceanBase的范围(RANGE)分区是什么?

    RANGE 分区根据分区表定义时为每个分区建立的分区键值范围,将数据映射到相应的分区中。 它是常见的分区类型,经常跟日期类型一起使用。比如说,可以将业务日志表按日/周/月分区。 RANGE 分区简单的语法格式如下:

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:32:13
    回答了问题 2022-01-21 16:32:13

    OceanBase 分区策略有哪些?

    OceanBase 支持多种分区策略:

    1.范围(RANGE)分区

    2.RANGE COLUMNS 分区

    3.列表(LIST)分区

    4.LIST COLUMNS 分区

    5.哈希(HASH)分区

    6.组合分区

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:31:04
    回答了问题 2022-01-21 16:31:04

    OceanBase 的分区表是什么?

    OceanBase 的分区表是内建功能,您只需要在建表的时候指定分区策略和分区数即可。分区表的查询 SQL 跟普通表是一样的,OceanBase 的 OBProxy 或 OBServer 会自动将用户 SQL 路由 到相应节点内,因此,分区表的分区细节对业务是透明的。 如果知道要读取的数据所在的分区号,可以通过 SQL 直接访问分区表的某个分区。简单语法 格式如下:

    image.png

    默认情况下,除非表定义了分区名,分区名都是按一定规则编号,例如: 一级分区名为:p0 , p1 , p2 , … 二级分区名为:p0sp0 , p0sp1 , p0sp2 , … ; p1sp0 , p 1sp1 , p1sp2 , … 示例:访问分区表的具体分区。

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:30:18
    回答了问题 2022-01-21 16:30:18

    OceanBase的分区技术是什么?

    分区技术(Partitioning)是 OceanBase 非常重要的分布式能力之一,它能解决大表的容量问 题和高并发访问时的性能问题,主要思想就是将大表拆分为更多更小的结构相同的独立对象,即分 区。普通的表只有一个分区,可以看作分区表的特例。每个分区只能存在于一个节点内部,分区表 的不同分区可以分散在不同节点上。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:29:53
    回答了问题 2022-01-21 16:29:53

    如何使用 MySQL 租户进行数据库管理?

    OceanBase MySQL 租户下可以建多个数据库(database),表只能在具体的数据库下新建。 OceanBase MySQL 租户支持外键。不过在分布式数据库里,如果读写并发很高,不推荐在数据库层面使用外键约束。外键可能会给性能带来负面影响,会增加不必要的阻塞和死锁。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:28:48
    回答了问题 2022-01-21 16:28:48

    如何使用 MySQL 租户创建用户?

    这里用户指租户里的用户,跟传统 MySQL 里的用户概念一样。 OceanBase MySQL 租户创 建用户有两个方法: 1. create user 创建用户。2. grant 语句自动创建用户。示例:

    image.png

    OceanBase MySQL 租户不支持更新用户元数据的密码字段。 查看用户权限用语句 show grants。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:27:43
    回答了问题 2022-01-21 16:27:43

    如何对租户变量进行设置?

    1.修改业务租户变量,OceanBase 租户还有一个 叫变量(VARIABLE)的设计,这个跟 MySQL 实例很像。变量其实 就是租户的参数。可以在租户全局层面修改,也可以会话层面修改。很多变量还有对应的 SQL HINT,在语句级别修改。 全局层面的修改影响的是后续的会话,会话层面的修改仅影响当前会话, 语句级别的修改只影响当前语句。变量查看和修改方法语法:

    image.png

    2.通过 SYS 租户修改业务租户变量,有部分变量属于租户初始化变量,不能在业务租户里直接修改。需要在 SYS租户里修改。 有个变量比较特殊,初始化租户的时候在 SYS 租户设置,后期可以在业务租户里修改。如变量 ob_tcp_invited_nodes ,表示租户访问 IP 白名单。

    image.png

    如果业务租户设置错误导致无法登录时,还可以通过 SYS 租户再改回正确值。 还有个变量比较特殊,不允许后期更改。如变量 ob_compatibility_mode 表示租户兼容性。这 个在租户创建时指定,后期不能修改。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:26:02
    回答了问题 2022-01-21 16:26:02

    如何对租户参数进行设置?

    1.通过 SYS 租户修改业务租户参数,OceanBase 集群参数设置,其中有部分参数生效范围是租户(TENANT)。在 OceanBase 内部租户(sys)里,可以修改业务实例的部分参数。比如说参数 writing_throttling_tr igger_percentage 用于对指定租户进行内存限流(增量内存使用率达到这个阈值就对写入降速)。

    2.修改业务租户参数,在业务租户里,也可以自己设置参数。比如说还有个参数 writing_throttling_maximum _duration 是控制增量内存剩余内存根据当前写入速度预估还能支撑多久。这个参数仅供参考,准确 性不及上面那个参数。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:25:21
    回答了问题 2022-01-21 16:25:21

    OceanBase 租户常用参数使用建议有哪些?

    OceanBase 租户在刚开始使用的时候,建议调大租户的几个超时参数。

    1.ob_query_timeout:语句执行超时时间,单位 us, 默认值是 10000000 (也就是 10 秒)。 建议根据业务 SQL 平均执行时间水平调整。OLTP 场景调整短一些,OLAP 场景调整大一些。 初学者建议调大 10倍;

    2.ob_trx_idle_timeout :事务空闲超时时间,单位 us, 默认值是 120000000(也就是 120 秒)。建议根据业务事务平均空闲时间水平调整。空闲事务会占用连接、可能持有锁不释放, 导致高并发时阻塞和死锁概率增加。不建议调大;

    3.ob_trx_timeout :事务未提交超时时间,单位 us,默认值是 100000000 (也就是 100 秒)。 建议根据业务事务平均持续时间水平调整。事务长期不提交,会占用连接、可能持有锁不释 放,导致高并发时阻塞和死锁概率增加。不建议调大。如果是后台跑批业务,建议在会话级 别调大;

    4.ob_trx_lock_timeout:事务申请加锁等待超时时间,单位 us,默认值是 -1(也就是不控制。 超时依然会受;

    5.ob_query_timeout 限制。当调大了语句超时时间变量(ob_query_timeout)后,可以将 这个锁等待超时改为 10000000(即 10s)。减少阻塞和死锁的概率。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:24:03
    回答了问题 2022-01-21 16:24:03

    ODC是什么?

    OceanBase 提供官方图形化客户端工具 OceanBase Developer Center,简称 ODC。这个产品在官方网站上有介绍:什么是 OceanBase 开发者中心 ODC 下载地址在阿里云上:下载客户端版 ODC 。

    image.png

    image.png

    保存连接后,打开连接,即进入工作界面。目前 ODC 是对 OceanBase 适配性最好的客户端工具。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:22:20
    回答了问题 2022-01-21 16:22:20

    如何用DBeaver 连接租户?

    DBeaver 连接 OceanBase 的时候选择“MySQL”数据库类型。第一次使用会自动下载官方 MySQL 驱动。 连接配置页面如下,跟 MySQL 不一样的地方就是连接端口默认是 2883 以及 用户 名格式是:用户名@租户名#集群名 或 集群名:租户名:用户名

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:21:44
    回答了问题 2022-01-21 16:21:44

    DBEAVER是什么?

    DBeaver 是一款通用的数据库客户端工具,其原理是使用各个数据库提供的 JDBC 驱动连接数据库,支持常见的关系型数据库、非关系型数据库、分布式数据库等等。使用 OceanBase 提供的JDBC驱动或者MySQL官方驱动 ,DBeaver 也可以连接 OceanBase 的 MySQL 租户。 官方下载地址:https://dbeaver.io/download/

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:21:02
    回答了问题 2022-01-21 16:21:02

    OceanBase 支持的应用有哪些?

    OceanBase 支持的应用目前主要是 Java 和 C/C++ 。

    1.Java 语言 MySQL 官方 JDBC 驱动下载地址:MySQL Connector/J 5.1.46 OceanBase 官方 JDBC 驱动下载地址:OceanBase-Client

    2.C 语言 具体驱动说明请参考官网文档:OceanBase Connector/C 简介 下载地址:OceanBase Connector/C 下载

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:20:23
    回答了问题 2022-01-21 16:20:23

    OBCLIENT 客户端连接租户的方法是什么?

    OceanBase 还提供专用的命令行客户端工具,名字:obclient 。使用方法跟 mysql 命令一样。 示例:

    image.png image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:14:40
    回答了问题 2022-01-21 16:14:40

    如何用MYSQL 客户端连接租户?

    OceanBase MySQL 租户支持传统 MySQL 客户端连接,连接方式基本不变,跟传统 MySQL 不一样的地方是用户名的格式。 备注:

    -h:提供 OceanBase 数据库连接 IP,通常是一个 OBProxy 地址

    -u:提供租户的连接账户,格式有两种:用户名@租户名#集群名 或者 集群名:租户名:用户名 。 MySQL 租户的管理员用户名默认是 root

    -P:提供 OceanBase 数据库连接端口,也是 OBProxy 的监听端口,默认是 2883,可以自 定义

    -p:提供账户密码,为了安全可以不提供,改为在后面提示符下输入,密码文本不可见。-c:表示在 MySQL 运行环境中不要忽略注释

    -A:表示在 MySQL 连接数据库时不自动获取统计信息

    oceanbase:访问的数据库名,可以改为业务数据库。 如果没有安装 MySQL 客户端,可以安装 mariadb-server 。MySQL官方8.0的客户端连接协 议在密码处调整了逻辑,导致无法通过早期的OBPROXY 连接到OceanBase的 MySQL 租户。会报密码错误。可以通过加选项--default-auth=mysql_native_password 解决这个问题。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:13:19
    回答了问题 2022-01-21 16:13:19

    如何连接租户?

    OceanBase 开源版的租户只兼容 MySQL ,连接协议兼容 MySQL 5.6 。因此 MySQL 命令行客户端或者图形化工具理论上也是能连接 OceanBase 的租户。此外,OceanBase 也提供专属的命令行客户端工具 OBCLIENT 和图形化客户端工具 ODC 。

    1.MYSQL 客户端连接,

    2.OBCLIENT 客户端连接

    3.OceanBase 连接驱动(JDBC)

    4.DBEAVER 客户端连接

    5.ODC 客户端连接

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:12:23
    回答了问题 2022-01-21 16:12:23

    创建租户(TENANT)的语法是什么?

    租户就是实例,创建租户也是瞬间完成,需要关联到某个资源池。 创建租户的语法如下:

    image.png image.png

    租户创建的时候可以通过 set 命令指定租户变量(参数)值。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:11:18
    回答了问题 2022-01-21 16:11:18

    如何创建资源单元规格(RESOURCE UNIT)?

    创建资源单元规格,并不会立即分配资源。资源单元规格元数据在视图 __all_unit_config 里。 创建之前可以先查看一下,如果有合适的规格,也是可以复用的。语法 资源单元规格创建语法如下:

    image.png

    参数解释:

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:10:01
    回答了问题 2022-01-21 16:10:01

    如何创建MySQL 租户?

    建租户分为三步: 1.(可选)创建资源单元规格。如果有合适的规格可以复用,就不用创建了。

    2.创建资源池。可以每个 zone 一个资源池,使用独立的资源单元规格,也可以所有 zone 使用 同一个资源单元规格,都在一个资源池下。

    3.创建租户,关联到这个资源池。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:08:43
    回答了问题 2022-01-21 16:08:43

    如何查看 OceanBase 集群资源分配细节?

    image.png image.png

    这个结果显示内部租户的资源池(resource pool),由每个 zone 里的一个节点上的资源单元 (resource unit)组成,每个资源单元使用同一规格(sys_unit_config)。从上面可以看出,资源 单元规格 sys_unit_config 的定义里 CPU 和 内存的最小值和最大值定义不一样,前面统计资源里 的已分配资源是按最小值计算的。这个会导致剩余可用资源计算不那么直观。 所以,建议把这个资源单元规格定义的 CPU 和内存的最小值和最大值拉平。再查询剩余可用资源就准确了。

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:07:31
    回答了问题 2022-01-21 16:07:31

    如何查看 OceanBase 集群资源的情况?

    OceanBase 集群默认有个内部租户(sys),可以查看和管理集群的资源。查看集群可用资源,请使用下面 SQL:

    image.png image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:06:44
    回答了问题 2022-01-21 16:06:44

    OceanBase 多租户原理是什么?

    在业务开发之前,DBA 先需要从 OceanBase 集群里创建一个数据库实例出来。这个实例就是 OceanBase 租户。OceanBase 集群可以分配出多个租户,这个能力就是多租户。 OceanBase 数据库以集群形态部署运行,提供给业务使用的是其中的租户。租户也叫实例,拥有一定的资源能力(如 CPU、内存和空间)。 ceanBase 是单进程软件,进程名叫 observer ,每个进程启动后,默认会将操作系统的大部 分资源据为己有。资源指的是 CPU、内存和磁盘空间。当然,这个资源的使用情况可以通过集群启 动参数去设置。进程 observer 取得的资源中 CPU 个数是声明式的,内存资源是独占的,磁盘空间是独占的(预分配)。

    image.png

    OceanBase 集群能把所有节点进程 observer 取得的资源集中管理,然后从集群中分配出多个 租户,每个租户对应一定的资源。这个资源大小可以定义,并且资源可以在线调整,这个功能也是 弹性伸缩能力的一个体现。 OceanBase 的租户资源定义是包含 CPU、内存、空间、IOPS 和会话 数,目前产品只实现了 CPU 和 内存的资源隔离,空间、IOPS 和会话数不起作用。不过建议创建 资源的时候依然要设置的有意义一些。尤其是空间资源,不要定义的超出机器磁盘实际可用空间很 多。这个数据会对后期负载均衡机制有一定影响。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:05:43
    回答了问题 2022-01-21 16:05:43

    手动启动进程 OBSERVER ,提示共享库找不到,应如何解决?

    将 OceanBase 的 LIB 加到环境变量 LD_LIBRARY_PATH 里。也可以写到 .bash_profile中

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:04:13
    回答了问题 2022-01-21 16:04:13

    手动启动进程 OBSERVER ,为什么提示共享库找不到?

    没有将 OceanBase 的 LIB 加到环境变量 LD_LIBRARY_PATH 里。 LIB 目录如下:

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:03:18
    回答了问题 2022-01-21 16:03:18

    obd 命令出错,原因是什么?

    查看 obd 命令日志,根据错误描述去解决

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:01:40
    回答了问题 2022-01-21 16:01:40

    OBD 部署时目录非空的原因是什么,应如何解决?

    image.png

    CentOS 8.0 刚初始化的文件系统里目录里会有一个默认文件夹 lost+found, 解决方法:清空刚建的文件系统目录

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 16:00:37
    回答了问题 2022-01-21 16:00:37

    ulimit 设置不生效应该如何解决?

    修改 SSHD 配置文件 sshd_config ,取消对 UsePAM yes的注释

    image.png

    重启 SSHD 服务

    image.png

    再次修改 ulimit.conf 文件

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 15:59:06
    回答了问题 2022-01-21 15:59:06

    ulimit 设置不生效的原因是什么?

    admin 用户 ulimit 配置未生效的原因可能是由于操作系统关闭了 PAM,PAM 用于限制登录 用户的 ulimit 配置,如果不开启 PAM,则会使用 SSHD 的默认值(即 1024)。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 15:58:17
    回答了问题 2022-01-21 15:58:17

    手动重启 OceanBase 集群自举(bootstrap 集群初始化)操作不成功的原因有哪些?

    常见原因如下:

    1.集群节点之间时间同步延时超过 50ms;

    2.集群节点之间网络延时超过 100ms;

    3.集群节点上 OBSERVER 相关目录结构不对或者目录权限不对;

    4.集群节点上进程 observer 启动参数写的不对。注意隐含参数的名字(如__min_full_resourc e_pool_memory )、参数 -d 的目录是否正确、参数 –z;

    5.跟 IP 的对应关系、 参数中多了空格或分隔符错误(有的是 , ,有的是;);

    6.集群节点可用内存低于进程 observer 启动参数 memory_limit 值。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 15:57:18
    回答了问题 2022-01-21 15:57:18

    手动重启 OceanBase 集群时在初始化目录过程中需要注意什么?

    首先创建工作目录下的总数据目录 ~/oceanbase/store/obdemo 、 数据文件目录 /data/ob demo 和日志相关目录 /redo/obdemo 。 注意,跟使用 OBD 自动化部署的 OceanBase 节点目录稍微有点不一样的地方是我在目录里加入了集群名标识(obdemo)。
    第二个不一样的地方是在 ~/oceanbase/store/obdemo 是真实的目录,下面的子目录是映射 到其他两个文件系统路径(指 /data/ 和 /redo/)。生产环境要求这两个文件系统尽可能是两 块独立的物理盘,或者最低要求是两个独立的逻辑盘。 看一下初始化后的目录结构。这个目录结构很重要,有时候进程 observer 启动失败就跟目录结构和权限不对有关。

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 15:56:24
    回答了问题 2022-01-21 15:56:24

    手动重启 OceanBase 集群时要如何清理目录和数据?

    第一次部署不需要执行这步。这步主要是用于后面安装部署失败后,需要清空目录和数据重新部署

    image.png

    检查目录结构,跟下面一致

    image.png image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 15:54:07
    回答了问题 2022-01-21 15:54:07

    手动部署,需要安装 OceanBase 的 OBSERVER 软件,它的目录结构是什么?

    软件包默认安装目录是 : /home/admin/oceanbase 。目录结构如下:

    image.png image.png

    提示:您也可以对 RPM 包直接解压到指定目录,就不用安装到默认目录。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 15:52:06
    回答了问题 2022-01-21 15:52:06

    手动重启 OceanBase 集群时,在部署规划需要注意什么?

    部署之前首先要初始化服务器环境,进行机器三节点之间时间同步检查, 检查本机和目标节点时间误差常用命令是: clockdiff 。可能会有些机器使用 clockdiff 会报错。此时可以换下面命令判断时间同步误差。

    image.png image.png

    三节点时间同步误差如果超过 50ms,则后面初始化集群一定会失败。 这里还要留意节点的时 间误差可能有个缓慢递增的特点,也许当前集群还能正常工作,一天后由于节点时间误差扩大到 50 ms 以外,该节点就掉线了;

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 15:51:19
    回答了问题 2022-01-21 15:51:19

    如何手动重启 OceanBase 集群?

    1.部署规划,进行机器和角色划分,磁盘划分, 部署之前首先要初始化服务器环境,进行机器三节点之间时间同步检查;

    2.手动部署,需要安装 OceanBase 的 OBSERVER 软件软件包默认安装目录是 : /home/admin/oceanbase 。

    3.清理目录和数据,第一次部署不需要执行这步。这步主要是用于后面安装部署失败后,需要清空目录和数据重新部署

    4.初始化数据目录,这一步只用于第一次部署时执行。如果是重复部署,目录已经创建的情况下,不需要再执行这 一步。手动部署时,OceanBase 节点上的相关目录都需要手动创建。

    5.启动 OBSERVER 进程,每个机器的启动参数大部分一样,只有少数不一样,需要特别留意。如果三个节点机型都一致,那么启动参数里只有一个参数不一样,就是 -z 指定该节点是哪个 zone 。三个 zone 的三个节点初始化为一个三副本集群。后面 -o 参数不是必须的。这里主要是测试 机器内存不足,所以需要指定一些影响内存的参数。如果您机器内存足够(如大于 64G),则可以不需要 -o 参数部分。 检查三个节点进程启动正常,主要看端口监听是否正常。

    6.集群自举(初始化),当 OceanBase 集群三个节点都正常启动,并且监听正常时,连接到任一节点(通过 2881口直连),进行自举(bootstrap 集群初始化)操作。初始密码是空。通常来说,只要严格按照步骤设置目录结构和权限、启动参数,集群自举都能成功。

    7.设置相关密码 ,集群管理员(root@sys)密码默认集群管理员(root@sys)的密码是空的,这里需要设置一个密码。OBPROXY 用户(proxyro)密码默认 OBPROXY 连接 OceanBase 集群使用用户 proxyro 。

    8.安装 OBPROXY 软件包,手动部署需要安装 OceanBase 的 OBPROXY 软件 ,社区版的 OBPROXY 软件默认安装到 /home/admin/obproxy-版本号下,目前社区版的 OBPROXY 安装后的文件还是很简单的,后面可能会微调。

    9.启动 OBPROXY 进程 启动 OBPROXY 进程也推荐在软件安装目录,进程 pbproxy 会在该目录下生成目录 etc 保存 OBPROXY 的运行参数,以及目录 log 保存运行日志。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 15:49:59
    回答了问题 2022-01-21 15:49:59

    如何使用 OBD 重启集群?

    手动重启 OceanBase 集群节点的原理,下面是使用 OBD 工具自动化做这个操作。但 是注意,当前 OBD 的重启集群可能并没有包含必要的检查操作,所以,测试环境可以用,生产环 境要谨慎使用。 使用 OBD 重启集群的命令是:obd cluster restart 。 也可以 通过 -c 命令指定重启具体的组件。 有关 OBPROXY 的重启特点跟 OBSERVER 是一样的,也有工作目录和启动参数。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 01.21 15:49:25
    回答了问题 2022-01-21 15:49:25

    如何重启 OceanBase 集群?

    OceanBase 自身并没有提供“重启集群”的命令。OceanBase 的核心能力就是高可用,前提是三副本部署。当少数派节点故障时,OceanBase 内部可能会自动切换,依然可以为业务提供读写服务。OB 提供了停止和启动某个副本(zone 级别或者 server 级别)的功能,并且只允许停止少数派节点。 所以,OceanBase 集群的重启是靠外部操作。比如说用 kill 命令杀进程,然后再启动进程 observer。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
正在加载, 请稍后...
暂无更多信息
  • 提交了问题 2022-01-21

    OBD 自动化部署多节点集群,应如何部署?

  • 回答了问题 2022-01-21

    如何安装OceanBase?

    OceanBase 本质上是一个单进程的软件,可执行文件名叫 observer可以通过 RPM 包安装,也可以通过源码直接编译安装。 软件包下载地址有:官网下载:

    https://open.oceanbase.com/softwareCenter/community

    GitHub 下载:https://github.com/oceanbase/oceanbase/releases/

    阿里云 Yum 源:https://mirrors.aliyun.com/oceanbase/OceanBase.repo

    image.png

    注:版本号后期会变,以实际版本为主。 如果机器可以连公网,可以将阿里云 YUM 源添加到本地仓库,使用 yum 命令安装。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase中用普通的建表语句,忽然报错提示机器资源不足,要如何解决该问题?

    方法一:找出租户的资源单元所在节点,查看该节点掉线的原因,解决它,然后建表。这个时 间可能有点长。

    方法二:会话级别或者全局级别关闭参数 ob_create_table_strict_mode ,允许节点掉线情况 下建表能成功。

    注意:节点异常还是要尽快修复。方法二理论上还是有风险的。

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase中用普通的建表语句,为什么忽然报错提示机器资源不足?

    在三副本集群里,默认建表会创建三个副本。如果有节点掉线,并且该租户在那个节点上还有 资源单元(resource unit)存在,则这个建表语句就无法创建三个副本。默认情况下,OceanBase 为了保证表元数据强一致,就会报错。这个报错信息是跟机器资源有关,但是不是那么直接。但是 可以通过修改租户参数关闭这个强约束。 参数名是:ob_create_table_strict_mode

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    为什么在创建资源池的时候,或者在调整资源池资源规格的时候,碰到报错信息?

    报错信息提示了某个 ZONE 里没有足够的资源创建该资源单元。通常是资源单元规格超出了集 群资源可用资源。 所以创建资源池或者调整资源池之前需要计算集群可用资源。这个只需要查看视 图 __all_virtual_server_stat 。由于默认 SYS 租户的资源规格的 min_cpu 和 min_memory 跟对应 的 max_cpu 和 max_memory 不一致,会导致集群剩余资源展示的不准。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase 复制表语法是什么?

    可以在创建表的时候就指定复制表属性 DUPLICATE_SCOPE 。这个属性有下面几个值:

    1.NONE : 这个是默认值,表示是普通的表。2.CLUSTER :表的备副本分布在租户资源池所在的所有机器上。 示例:

    image.png

    也可以在表创建好后修改这个属性:

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    什么是OceanBase 复制表场景?

    传统普通的表,主副本可能会成为读写瓶颈,业务可能会使用读写分离技术,将只读查询分离 出去。运维将只读查询路由到备副本。这个风险是备副本理论上有一定延时。如果表是复制表,则 备副本没有延迟问题。这是一种使用场景,前提是开启弱一致性读。 复制表最有用的场景是业务数据库做了水平拆分后,有部分业务表不适合拆分。前者的数据主 副本有可能在所有机器上,后者的主副本只会在某台机器上。OceanBase 里一个事务的 SQL 都会 跟随到事务开始时那条 SQL 的路由,如果某个 SQL 被路由到的节点不是该 SQL 访问的分区的主 副本节点,这个 SQL 就是个远程 SQL 。如果这个分区所在的表是复制表,则这条 SQL 就会在本 机执行,从而提升性能。 复制表使用的前提是表的修改频率不能太高,每个事务的平均延时会比普通的表的事务延时要 大。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase 复制表的原理是什么?

    复制表指的是一种特殊的表。 普通的表在生产环境,默认有三副本,其中一个主副本和两个备副本。备副本通过同步主副本的事务日志 clog 保持同步,同步协议是 Paxos 协议,主副本的事务 日志只有在多数成员里确认落盘后,事务修改才会生效。通常,默认情况下,读写都是在主副本上, 备副本是不提供读写服务。应用如果开启会话或语句级别的弱一致性读后,备副本可能会提供只读 服务。风险就是备副本的读会有些许延迟。 普通表可以变为复制表,然后主副本和所有备副本之间 使用全同步协议,主副本的事务日志只有在所有副本成员里确认落盘后,事务修改才会生效。所以 主副本跟所有备副本的数据理论上都是强一致的。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    如何创建OceanBase表分组?

    创建表分组时,首先要规划好表分组的用途。如果是用于普通表的属性,表分组就不用分区; 如果是用于分区表的属性,表分组就要指定分区策略,并且要跟分区表的分区策略保持一致。 查看表分组下的表的语句是:show tablegroups ; 。有了表分组后,在建表时就可以指定表分组。也可以后期将一个表加入到表分组,使用语句:alter tablegroup ... add 。 将表从表分组中 移出时,使用语句:alter table ... tablegroup = '';

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase表分组是什么?

    表分组(TABLE GROUP)是 OceanBase 作为分布式数据库的一个特色功能。 表分组是表的 属性,会影响多个表的分区在 OceanBase 机器上的分布特征。 不同表的分区有可能分布在不同的节点上,当两个表做表连接查询时,OceanBase 会跨节点请 求数据,执行时间就跟节点间请求延时有关。在 SQL 调优时,OceanBase 建议对业务上关系密切 的表,设置相同的表分组。OceanBase 对于同一个表分组中的表的同号分区会管理为一个分区组。 同一个分区组中的分区,OceanBase 会尽可能的分配到同一个节点内部,这样就可以规避跨节点的请求。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    如何使用OceanBase分区表索引功能?

    分区表的查询性能跟 SQL 中条件有关。当 SQL 中带上拆分键时,OceanBase 会根据条件做分区剪枝,只用搜索特定的分区即可;如果没有拆分键,则要扫描所有分区。 分区表也可以通过创建索引来提升性能。跟分区表一样,分区表的索引也可以分区或者不分区。 如果分区表的索引不分区,就是一个全局索引(GLOBAL),是一个独立的分区,索引数据覆盖整个分区表。如果分区表的索引分区了,根据分区策略又可以分为两类。一是跟分区表保持一致的分区策略,则每个索引分区的索引数据覆盖相应的分区表的分区,这个索引又叫本地索引(LOCAL)。 注意:通常创建索引时默认都是全局索引,本地索引需要在后面增加关键字 LOCAL 。建议尽可能的使用本地索引只有在有必要的时候才使用全局索引。其原因是全局索引会降低 DML 的性能,DML 可能会因此产生分布式事务。 示例:创建分区表的本地索引和全局索引

    image.png

    注意:OceanBase 的分区表主键和唯一键,不需要单独建索引。OceanBase 分区表的一个功 能限制是如果分区表有主键,主键必须包含分区键。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase 的组合分区(二级分区)是什么?

    组合分区通常是先使用一种分区策略,然后在子分区再使用另外一种分区策略,适合于业务表 的数据量非常大时。使用组合分区能发挥多种分区策略的优点。 在指定二级分区分区策略细节时,可以使用 SUBPARTITION TEMPLATE 子句。 尽管 OceanBase 在组合分区上支持 RANGE + HASH 和 HASH + RANGE 两种组合,对于一个 流水大表,为了维护方便(新增和删除分区),建议使用 RANGE + HASH 组合方式。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase的哈希(HASH)分区是什么?

    HASH 分区适合于对不能用 RANGE 分区、LIST 分区方法的场景,它的实现方法简单,通过对 分区键上的 HASH 函数值来散列记录到不同分区中。如果您的数据符合下列特点,使用 HASH 分 区是个很好的选择:

    1.不能指定数据的分区键的列表特征。

    2.不同范围内的数据大小相差非常大,并且很难手动调整均衡。

    3.使用 RANGE 分区后数据聚集严重。

    4.并行 DML、分区剪枝和分区连接等性能非常重要。

    但HASH 分区不能做新增或删除分区操作。 示例:创建一个 HASH 分区表

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    使用范围(RANGE)分区,需要注意什么?

    当使用 RANGE 分区时,需要遵守如下几个规则:

    1.PARTITION BY RANGE ( expr )里的 expr 表达式的结果必须为整形。

    2.每个分区都有一个 VALUES LESS THAN 子句,它为分区指定一个非包含的上限值。分区键 的任何值等于或大于这个值时将被映射到下一个分区中。

    3.除第一个分区外,所有分区都隐含一个下限值,即上一个分区的上限值。

    4.允许且只允许最后一个分区上限定义为 MAXVALUE ,这个值没有具体的数值,比其他所有分区的上限都要大,也包含空值。

    注意:RANGE 分区可以新增、删除分区。如果最后一个 RANGE 分区指定了 MAXVALUE ,则不能新增分区。所以建议不要使用 MAXVALUE 定义最后一个分区。 RANGE 分区要求表拆分键表达式的结果必须为整型,如果要按时间类型列做 RANGE 分区,则 必须使用 timestamp 类型,并且使用函数 UNIX_TIMESTAMP 将时间类型转换为数值。这个需求也 可以使用 RANGE COLUMNS 分区实现,就没有整型这个要求。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase的范围(RANGE)分区是什么?

    RANGE 分区根据分区表定义时为每个分区建立的分区键值范围,将数据映射到相应的分区中。 它是常见的分区类型,经常跟日期类型一起使用。比如说,可以将业务日志表按日/周/月分区。 RANGE 分区简单的语法格式如下:

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase 分区策略有哪些?

    OceanBase 支持多种分区策略:

    1.范围(RANGE)分区

    2.RANGE COLUMNS 分区

    3.列表(LIST)分区

    4.LIST COLUMNS 分区

    5.哈希(HASH)分区

    6.组合分区

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase 的分区表是什么?

    OceanBase 的分区表是内建功能,您只需要在建表的时候指定分区策略和分区数即可。分区表的查询 SQL 跟普通表是一样的,OceanBase 的 OBProxy 或 OBServer 会自动将用户 SQL 路由 到相应节点内,因此,分区表的分区细节对业务是透明的。 如果知道要读取的数据所在的分区号,可以通过 SQL 直接访问分区表的某个分区。简单语法 格式如下:

    image.png

    默认情况下,除非表定义了分区名,分区名都是按一定规则编号,例如: 一级分区名为:p0 , p1 , p2 , … 二级分区名为:p0sp0 , p0sp1 , p0sp2 , … ; p1sp0 , p 1sp1 , p1sp2 , … 示例:访问分区表的具体分区。

    image.png

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    OceanBase的分区技术是什么?

    分区技术(Partitioning)是 OceanBase 非常重要的分布式能力之一,它能解决大表的容量问 题和高并发访问时的性能问题,主要思想就是将大表拆分为更多更小的结构相同的独立对象,即分 区。普通的表只有一个分区,可以看作分区表的特例。每个分区只能存在于一个节点内部,分区表 的不同分区可以分散在不同节点上。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    如何使用 MySQL 租户进行数据库管理?

    OceanBase MySQL 租户下可以建多个数据库(database),表只能在具体的数据库下新建。 OceanBase MySQL 租户支持外键。不过在分布式数据库里,如果读写并发很高,不推荐在数据库层面使用外键约束。外键可能会给性能带来负面影响,会增加不必要的阻塞和死锁。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
  • 回答了问题 2022-01-21

    如何使用 MySQL 租户创建用户?

    这里用户指租户里的用户,跟传统 MySQL 里的用户概念一样。 OceanBase MySQL 租户创 建用户有两个方法: 1. create user 创建用户。2. grant 语句自动创建用户。示例:

    image.png

    OceanBase MySQL 租户不支持更新用户元数据的密码字段。 查看用户权限用语句 show grants。

    以上内容来自于《OceanBase 社区版入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=8210,如有问题,欢迎加入钉群进行答疑

    二维码.png

    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息