当前位置: 首页 > article >正文

OBProxy 路由策略与使用运维-常见问题

启动失败

机器是否存在 hostname :输入hostname -i, 确认host ip是否存在

目录是否存在,权限是否正确:确保当前目录下有读、写、执行的权限

端口是否被占用:使用obproxyd.sh启动OBProxy, 使用的端口为2883

启动环境是否指定正确:如果通过obproxyd.sh启动, 需要使用-e参数指定OBProxy运行环境

成功启动但无法建立连接

常见问题报错解决思路
IP PORT错误

ERROR 2003 (HY000): Can't connect

to MySQL server on '127.1' (111)
检查所需建立连接的obproxy, obproxy是否存在

权限错误

ERROR 1045 (42000): Access denied

for user ‘XXXXXXXXX’
直接连接observer确认该信息是否正确
租户名错误

ERROR 5160 (HY000): invalid tenant

name specified in connection string

本机mysql版本是否过低,MySQL 5.7.8之前版本,

用户名长度超过16字节会被截断。5.7.8版本之后版本用户长度超过32字节会被截
认证错误

ERROR 2013 (HY000): Lost

connection to MySQL server at

‘reading authorization packet’,

system error: 0
本地json配置集群是否和远程json文件一致,该配置文件主要用于确认你需要连接的OB集群是否存在

慢查询配置项及其修改方式

OBProxy 有自己的慢查询日志打印功能,通过 OBProxy 的以下两个配置项可控制打印到日志中的 SQL 或事务的处理时间阈值。

配置项说明
slow_transaction_time_threshold指慢查询或事务的整个生命周期的时间阈值,超过了该时间,就会打印相关日志。
slow_proxy_process_time_threshold在发往 Server 前 Proxy 本身的处理时间,包括获取集群信息、路由信息、黑名单信息等。
slow_query_time_threshold指从 OBProxy 获取 SQL 直到返回给客户端之前的这段时间的阈值,超过了该时间,也会打印相关日志。

一般修改配置项slow_transaction_time_threshold即可,配置项 slow_proxy_process_time_threshold默认值为 2ms,该值适用于绝大多数场景

obclient> ALTER PROXYCONFIG SET slow_transaction_time_threshold='100ms';

慢查询举例

SQL相关timeout设置

默认配置:

查询超时:ob_query_timeout(默认10s)

事务未提交超时ob_trx_timeout 默认100s)

事务空闲超时ob_trx_idle_timeout(默认120s)

常见超时原因:

连接闲置时间超时

客户端SQL执行耗时长

问题解决:

Ping to keep alive.

调优SQL or 调整timeout value

小结:
OBProxy作为OceanBase的高性能且易于运维的反向代理服务器,具有防连接闪断、OBServer宕机

或升级不影响客户端正常请求、兼容所有MySQL客户端、支持热升级和多集群功能

OBProxy核心功能包括路由、连接管理以及运维&&监控

OBProxy的部署方式可以分为集中部署和客户端部署

OBproxy可以通过RSList启动,也可以通过config_url启动,前者只可以管理特定的OB集群,后者可

以管理多个集群

OBProxy弱一致性读策略可以分为主备均衡的路由策略(默认)、备优先读策略、读写分离策略

OBProxy慢查询日志除了SQL本身之行的时间,还包括发送和接收数据消耗的网络延时

集中式部署的特点:集中式系统中,每个终端或客户端机器仅仅负责数据的录入和输出,而数据的存储与控制处理完全交由主机来完成。集中式系统最大的特点就是部署结构简单。由于集中式系统往往基于底层性能卓越的大型主机,因此无须考虑如何对服务进行多个节点的部署,也就不用考虑多个节点之间的分布式协作问题。


http://www.kler.cn/a/6471.html

相关文章:

  • 文件操作(File类)
  • SYD881X RTC定时器事件在调用timeAppClockSet后会出现比较大的延迟
  • Golong中无缓冲的 channel 和 有缓冲的 channel 的区别
  • Android 搭建AIDL Client和Server端,双向通信
  • libmodbus安装使用
  • 二八(vue2-04)、scoped、data函数、父子通信、props校验、非父子通信(EventBus、provideinject)、v-model进阶
  • FIFO的工作原理及其设计
  • 哈利波特c++千行代码
  • C语言程序环境和预处理
  • USB抓包分析
  • Spring Security
  • 【C语言蓝桥杯每日一题】—— 递增序列
  • C 学习笔记 —— 结构(二)
  • 【面试】互联网相关面试题
  • 操作系统结构
  • 【C语言学习】预处理命令
  • 【从零开始学习 UVM】10.7、UVM TLM —— TLM Fifo [uvm_tlm_fifo]
  • [windows-rs]Rust 调用 Windows API
  • 2023-4-1刷提情况
  • C++内存模型
  • LeetCode-5. 最长回文子串
  • Docker基础操作
  • c++编写动态星空
  • 我在 bilibili 学代码审计
  • Haar特征
  • 【CSS】课程网站横版导航栏 ( 横版导航栏测量及样式 | 代码示例 )