系统租户的集群级配置项

官文:
系统租户下,可以查看本租户的租户级配置项和集群级配置项信息。
普通租户下,可以查看本租户的租户级配置项以及系统租户的集群级配置项信息。

问题:
集群级配置项 和 系统租户的集群级配置项, 是什么关系? 谁包含谁?

它的意思是说,集群级配置项包含了“系统租户的集群级配置项”和"其他集群级配置项” ?

系统租户的集群级配置项,太难理解了,sys租户它只是个租户啊,何来集群级配置项 ?

我觉得这个文档啊,还是应该由一个大哥哥级别的人,一个人来写,前后统一一致。

OB 的运维思路是 一次部署一套集群,然后提供多个租户给不同的业务用。业务用的是租户,租户对应传统的MySQL和ORACLE实例。

集群管理需要有个具体的入口,这就是集群都默认有个 SYS 租户给 超级管理员用一样(类似ORACLE的 SYS 用户,MySQL的 root 用户 的作用)。

参数的作用范围分两个层次:集群层面和租户层面。

  1. 有些参数是集群层面的,作用于集群所有租户但普通租户(非SYS租户)只能看不能改。比如说参数 memory_limit, enable_major_freeze
  2. 有些参数是租户层面的,普通租户可以自己修改,但是SYS租户也可以为普通租户修改。比如参数:freeze_trigger_percentage major_freeze_duty_time 。运维要特别注意这点,4.x版本后合并可以在租户级别进行,所以一些租户参数的修改要到具体租户下或者SYS租户下修改时要指定业务租户名(别只改了 SYS 租户)。
  3. 所有参数还有个生效粒度是对节点生效,默认是对集群或租户所有节点生效,当OB 集群节点配置不一样或者压力不一样的时候用,一般不要用(非标准用法,容易挖坑)。
  4. 第1点里提到的参数还可以在集群节点进程启动的时候指定,这个用于救急用。比如说某个参数设置错了导致集群异常进不去了,只好重启节点时将参数改回。这类参数在节点的observer目录的 etc/observer.config.bin 里可以查看,但是不能修改文件。

参数(parameter)这个概念是 ORACLE 的,MySQL的参数叫做变量(variable),并且MySQL的变量还分全局层面和会话层面。OB的MySQL租户也继承了这点。

  1. 租户的变量只能在租户下修改,并且作用范围只能对本租户生效。比如说变量 ob_query_timeout transaction_isolation autocommit 。
  2. 租户的变量修改如果带 GLOBAL 字眼,则是租户层面全局生效,新会话生效,当前会话不生效;如果不带GLOBAL 字眼,默认就是 SESSION 级别,只对当前会话生效,会话断开重连后又继承了全局设置(当前会话设置丢失)。
  3. 业务租户的变量也可以在 SYS 租户里设置。主要用于救急用。比如说租户访问白名单变量 ob_tcp_invited_nodes 设置错了导致租户不能登录,那就去 SYS 租户里设置一下。
alter tenant obmysql1 set variables ob_tcp_invited_nodes='%';

4.有些业务租户变量是不能修改的。如 ob_compatibility_mode ,这个表示租户的兼容类型。

谢谢 大师 。

集群级配置项 和 系统租户的集群级配置项。

我认为, 它们就是同一个意思。

优秀