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

数据库学习Q&A 092:OceanBase数据库如何选择副本路由选择(读写分离部署)?

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/


即使用了只读副本和只读Zone的部署模式。读写分离部署时,不存在备优先读的路由策略,路由依赖系统变量 ob_route_policy。主要存在以下几种情况:

  1. 对于强一致性读语句,且 SQL 指定了表名,那么直接路由到该表涉及的分区的 Leader 的 OBServer 节点执行。

  2. 对于强一致性读语句,SQL 为"select 不指定表名/use database/set session 级别系统变量"时,忽略 Zone 属性,此时等同于常规部署下的主备均衡路由(默认)。

  3. 对于强一致性读语句,不包含登录认证请求,且去除 1 & 2 场景的请求,将按照以下策略进行路由:

    1. 相同 Region,相同 IDC,不在合并状态的读写 Zone 中的节点。

    2. 相同 Region,不同 IDC,不在合并状态的读写 Zone 中的节点。

    3. 相同 Region,相同 IDC,正在合并状态的读写 Zone 中的节点。

    4. 相同 Region,不同 IDC,正在合并状态的读写 Zone 中的节点。

    5. 不同 Region,不在合并状态的读写 Zone 中的节点。

    6. 不同 Region,正在合并状态的读写 Zone 中的节点。

只读 Zone 优先路由(默认)

对于弱一致性语句和登录认证请求,将根据系统变量 ob_route_policy 的不同取值进行路由。设置ob_route_policy = readonly_Zone_first(默认值)时,将按照以下策略进行路由:

  1. 相同 Region,相同IDC,不在合并状态的只读 Zone 中的节点。

  2. 相同 Region,不同IDC,不在合并状态的只读 Zone 中的节点。

  3. 相同 Region,相同IDC,正在合并状态的只读 Zone 中的节点。

  4. 相同 Region,不同IDC,正在合并状态的只读 Zone 中的节点。

  5. 相同 Region,相同IDC,不在合并状态的读写 Zone 中的节点。

  6. 相同 Region,不同IDC,不在合并状态的读写 Zone 中的节点。

  7. 相同 Region,相同IDC,正在合并状态的读写 Zone 中的节点。

  8. 相同 Region,不同IDC,正在合并状态的读写 Zone 中的节点。

  9. 不同 Region,不在合并状态的只读 Zone 中的节点。

  10. 不同 Region,正在合并状态的只读 Zone 中的节点。

  11. 不同 Region,不在合并状态的读写 Zone 中的节点。

  12. 不同 Region,正在合并状态的读写 Zone 中的节点。

仅发送到只读 Zone 的路由

设置 ob_route_policy = only_readonly_Zone 时,将按照以下策略进行路由:

  1. 相同 Region,相同 IDC,不在合并状态的只读 Zone 中的节点。

  2. 相同 Region,不同 IDC,不在合并状态的只读 Zone 中的节点。

  3. 相同 Region,相同 IDC,正在合并状态的只读 Zone 中的节点。

  4. 相同 Region,不同 IDC,正在合并状态的只读 Zone 中的节点。

  5. 不同 Region,不在合并状态的只读 Zone 中的节点。

  6. 不同 Region,正在合并状态的只读 Zone 中的节点。

不在合并状态的 Zone 优先路由

设置 ob_route_policy = unmerge_Zone_first 时,将按照以下策略进行路由:

  1. 相同 Region,相同 IDC,不在合并状态的只读 Zone 中的节点。

  2. 相同 Region,不同 IDC,不在合并状态的只读 Zone 中的节点。

  3. 相同 Region,相同 IDC,不在合并状态的读写 Zone 中的节点。

  4. 相同 Region,不同 IDC,不在合并状态的读写 Zone 中的节点。

  5. 相同 Region,相同 IDC,正在合并状态的只读 Zone 中的节点。

  6. 相同 Region,不同 IDC,正在合并状态的只读 Zone 中的节点。

  7. 相同 Region,相同 IDC,正在合并状态的读写 Zone 中的节点。

  8. 相同 Region,不同 IDC,正在合并状态的读写 Zone 中的节点。

  9. 不同 Region,不在合并状态的只读 Zone 中的节点。

  10. 不同 Region,不在合并状态的读写 Zone 中的节点。

  11. 不同 Region,正在合并状态的只读 Zone 中的节点。

  12. 不同 Region,正在合并状态的读写 Zone 中的节点。



欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

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

评论