只记录OceanBase 数据库与OCP的异常处理,其它组件暂时不写录。
一、问题1:
说明:OMS 出现异常,无法访问(OB无法访问)
OB数据库架构:1:1:1
原因:某一台OBserver因为内存问题,被服务器直接kill掉了。
处理:增加OBserver服务器的内存,采用轮询的方式关闭Observer增加内存,需要提前确认OB数据的Master。
OceanBase 重启Observer 顺序
powershell
1.在OCP 界面关闭Observer
2.在OCP 界面关闭Zone (如果zone下只有一个Observer的情况下)
3.关闭Observer 服务器
4.调整Observer 服务器,并重启Observer服务器
5.在OCP 界面的主机菜单中,启动OCP agent
6.启动Zone(未关闭Zone的情况下,直接启动Observer)
OceanBase 的关闭问题(可能存在关闭失败,但是服务器上进程已不存在的问题)
1.重启Observer 服务器
2..在OCP 界面的主机菜单中,启动OCP agent
3.启动Zone(未关闭Zone的情况下,直接启动Observer)
异常:
集群状态 (问题:OCP 上某个集群出现zone 一直在重启状态,但是Observer上并未存在相关进程),解决办法如下:
powershell
mysql -uroot@ocp_meta#obcluster -P2883 -p -h
select * from ob_zone;
update ob_zone set status='RUNNING';
select * from ob_cluster;
update ob_cluster set status='RUNNING' where name='';
select * from ob_server;
select * from ob_cluster;
可以观察OCP的状态:
集群状态,zone的状态。
异常:集群状态与zone的状态正常,但是所有的监控信息不可展示,原因属于OCP本身的数据记录,但是OB数据库未启动。
彻底处理:
进入OCP中,进入问题集群中,停止集群,然后重启启动集群,然后重启所有OBserver 上的ocp_agent。
二、问题2:
说明:OCP服务器与服务重建且重新接管OB集群的问题
处理方式:
1.配置OCP服务器上的ntp服务(保证ntp)。
OCP接管集群的两种方式:
powershell
1.进入OCP界面,点击接管集群(存在直连/OBProxy),选择直连输入OB数据库的sys租户的root密码即可,但是OBProxy需要重新创建。端口2881 。
2.配置OCP服务器上的ntp服务(保证ntp),进入OCP界面,点击接管集群(存在直连/OBProxy),选择OBProxy输入OB数据库的sys租户的root密码即可。端口2883 。
三、问题3:
OceanBase 3.2.3v
说明:线上OceanBase的事务被kill 的问题排查(官网上也有相关的描述)
1.排查思路:OceanBase 的事务,也就是SQL语句,存在一个唯一的trace_id,通过trace_id找到执行的sql_id。
2.通过trace_id查找OBserver服务器上的日志(选举日志,observer日志等)。
3.发现是内存问题,导致RT启用切主操作,导致SQL语句被kill。
4.增加租户内存,可以解决,也可以参考大事务限流的方式,或者配置进入大事务队列中进行处理。