暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase 学习笔记27:OceanBase 数据库为什么支持读写分离部署?

174

OceanBase 数据库支持读写分离部署,要求客户端将写请求路由到 ReadWrite Zone,将弱一致性读请求路由到ReadOnly Zone,此功能强依赖 OBProxy 的 LDC 功能。

读写分离的部署需要进行以下 4 个步骤:

  1. OceanBase 集群的 LDC 配置。

  2. OBProxy 的 LDC 配置。

  3. OBProxy 的集群配置。

  4. 应用配置弱一致性读。

OceanBase 集群的 LDC 配置

  1. 在客户端中使用 root 用户登录集群的 sys 租户。

  2. 执行以下示例语句配置 LDC,其中 region 通常设置为城市名(大小写敏感)。 idc 代表该 Zone 所处的机房信息,通常设置为机房名(小写),z1 为当前设置的 Zone 的名称。它们的关系是一个 OceanBase 集群中有若干个 Region,一个 Region 有若干个 Zone,一个 Zone 对应一个 Zone Type 和 IDC 属性。

    obclient> ALTER SYSTEM MODIFY zone "z1" set region = "SHANGHAI"; 
    obclient> ALTER SYSTEM MODIFY zone "z1" set zone_type = "ReadWrite";
    obclient> ALTER SYSTEM MODIFY zone "z1" set idc = "zue";
    
  3. 检查 OBServer 中 LDC 设置内容是否生效,查询语句如下所示,查看返回结果中对应 Zone 的 Region Zone Type 和 IDC 项的值是否符合您的设置值。

    obclient> SELECT * FROM oceanbase.DBA_OB_ZONES;
    

OBProxy 的 LDC 配置

读写分离部署时,OBProxy 仅需正确设置好 LDC 即可。OBProxy 的 LDC 配置有两种方式,其中 zue 为示例机房。

  1. OBProxy 进程启动时通过参数指定进行配置(建议使用的方式),示例语句如下所示。

    cd /opt/taobao/install/obproxy-1.5.5
    ./bin/obproxy -o proxy_idc_name=zue
    
  2. 在 OceanBase 支持的客户端工具中运行 ALTER 语句修改 OBProxy 配置项,示例语句如下所示。

    obclient> ALTER PROXYCONFIG SET proxy_idc_name='zue';
    

    以示例 zue 机房为例,为 OBProxy 配置 LDC 后,如果应用部署在上海 zue 机房,当应用逻辑发起弱一致性读时,请求都是优先发往上海机房。

    为 OBProxy 配置 LDC 后可通过下述语句检查配置是否生效。

    obclient> SHOW PROXYINFO IDC;
    

    返回结果如下所示:

    返回结果

OceanBase 集群配置

在 OceanBase 数据库支持的客户端中使用 root 用户登录到集群的业务租户,运行下述语句设置 Global 级别系统变量 ob_route_policy 为对应取值即可,默认取值为 readonly_zone_first

obclient> SET @@global.ob_route_policy=readonly_zone_first;

应用配置弱一致性读

读写分离部署同样仅针对弱一致性读的场景才会生效。应用配置弱一致性读有以下 3 种方法:

  • 在 SQL 中携带 Hint 来指定,示例语句如下所示。

    obclient> SELECT /*+read_consistency(weak)*/ * FROM t1;
    
  • 设置 Session 级别的系统变量来指定(仅对当前 Session 生效),示例语句如下所示。

    obclient> SET @@ob_read_consistency='weak';
    
  • 设置全局级别的系统变量来指定(对该租户的所有连接都会生效),示例语句如下所示。

    obclient> SET @@global.ob_read_consistency='weak';
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论