遇到oceanbase问题时,使用OBDIAG高效收集相关信息的方法

2024年 5月 6日 35.9k 0

该工具适用于OB2.x、OB3.x、OB4.x版本集群(目前2.0以下版本的obdiag因适配问题还无法用于OB2.x,建议使用2.0最新版obdiag)

该工具适用于如下场景所涉及的OB(内部表、日志)、OBPROXY(日志)的信息收集:

  • obloader/obdumper导数问题
  • OB进程CORE、无故重启
  • obproxy进程CORE、无故重启
  • CLOG盘满问题
  • UNIT迁移、副本不均衡问题
  • 有主选举、无主选举问题
  • OCP出现OB日志告警、OB日志有ERROR
  • 长事务和悬挂事务问题
  • 备份恢复问题
  • SQL执行报错、PL执行报错
  • 应用报错
  • OB内存问题(-4030、-4013)
  • OB启动问题(启动慢、启动失败)
  • 正在发生的CPU跑满场景(过去式的CPU跑满信息获取有限)
  • 主备库异常场景
  • 合并异常场景
  • 集群通过2881或2883无法连接问题

该工具不适用于如下场景所涉及的OB(内部表、日志)、OBPROXY(日志)的信息收集:

  • sql执行慢、PL执行慢
  • sql结果集错误
  • sql兼容性问题

注意事项:

1,默认每个ob节点只取20个数据文件,如果无法满足需求,需要修改/usr/local/oceanbase-diagnostic-tool/conf/inner_config.yml配置文件的file_number_limit参数。具体参考https://www.oceanbase.com/docs/common-obdiag-cn-1000000000632495

2,主备问题,需要分别获取主库和备库的信息,需要"obdiag config"配置不同数据源后执行命令后获取2次

3,由于该工具在收集日志时,会先把日志copy到对应ob节点的/tmp目录,如果收集的日志比较多,可能需要较多的/tmp磁盘空间

工具下载:

1,打开地址:https://www.oceanbase.com/softwarecenter

2,按如下图片进行下载

遇到oceanbase问题时,使用OBDIAG高效收集相关信息的方法-1

工具安装:

1,将下载的rpm包传输到对应主机(无需OB所在主机,只要该主机与OB集群的网络可达即可)

2,执行如下命令安装:

$sudo rpm -ivh oceanbase-diagnostic-tool-1.6.0-22024020410.el7.x86_64.rpm
warning: Unable to get systemd shutdown inhibition lock: Unit is masked.
Preparing...                          ################################# [100%]
Updating / installing...
   1:oceanbase-diagnostic-tool-1.6.0-2################################# [100%]
Please execute the following command to init obdiag:

 source /usr/local/oceanbase-diagnostic-tool/init.sh

3,安装完成后,执行如下命令初始化:

[admin@e69a01088.et15sqa /home/shoubian.ls]
$source /usr/local/oceanbase-diagnostic-tool/init.sh
Init obdiag finished

如上步骤一切正常后,即可使用

工具使用:

配置OB集群信息:

注意事项:

1,如果要收集obproxy的日志,务必配置obproxy的信息

2,上面的信息务必配置正确,避免获取信息失败

3,ssh的用户和密码是必须要配置且准确,否则无法运行

4,ssh建议配置admin用户

执行如下命令,配置集群相关信息:

obdiag config -h11.166.86.111 -uroot@sys -P2881 -pxxxx
根据提示填写正确信息,正常输出如下:
2024-01-31 09:57:24,019 [INFO] Getting all the node information of the cluster, please wait a moment ...
Please enter the following configuration !!!
Enter your oceanbase host ssh username (default:''): test # ssh 到各主机的用户名
Enter your oceanbase host ssh password (default:''): ********* # ssh 到各主机的用户对应的密码
Enter your oceanbase host ssh_port (default:'22'): 22 # ssh 的端口号,默认是22
Enter your oceanbase install home_path (default:'/root/observer'): /home/admin/oceanbase # OceanBase 部署的安装目录
Enter your oceanbase data_dir (default:'/home/admin/oceanbase/store'): # OceanBase 部署的数据盘目录
Enter your oceanbase redo_dir (default:'/home/admin/oceanbase/store'): # OceanBase 部署的redo数据的目录
Enter your need config obproxy [y/N] (default:'N'): y # 被诊断的集群是否需要带上obproxy
Enter your obproxy server eg:'192.168.1.1;192.168.1.2;192.168.1.3' (default:''): xx.xx.xx.xx # obproxy的节点ip
Enter your obproxy host ssh username (default:''): test # obproxy的节点的ssh用户
Enter your obproxy host ssh password (default:''): ********* # obproxy的节点的ssh用户密码
Enter your obproxy host ssh port (default:'22'): 22  # obproxy的节点的ssh的端口号,默认是22
Enter your obproxy install home_path (default:'/root/obproxy'): /home/admin/obproxy # obproxy的安装目录
2024-01-31 09:59:23,109 [INFO] Node information has been rewritten to the configuration file /test/.obdiag/config.yml, and you can enjoy the journey !

运行收集命令:

收集OB相关信息:

1,将下面的文件all_ob_relative_informations.yaml,copy到~/.obdiag/gather/tasks/observer目录下,".obdiag"目录是在安装obdiag软件的对应用户目录下存在:

然后执行如下命令,收集信息,其中--from为问题开始时间,--to为问题结束时间,obdiag会根据提供的时间区间自动获取日志、内部视图结果:

obdiag gather scene run --scene=observer.all_ob_relative_informations --from 2024-03-21 15:40:00 --to 2024-03-21 22:05:00

注意:

如上命令不建议手敲输入,手敲可能会出错,如果手敲输入,需要检查字符完全准确

收集obproxy相关信息:

1,将下面的文件obproxy_all_informations.yaml,copy到~/.obdiag/gather/tasks/obproxy目录下,".obdiag"目录是在安装obdiag软件的对应用户目录下存在:

📎obproxy_all_informations.yaml

然后执行如下命令,收集信息,其中--from为问题开始时间,--to为问题结束时间,obdiag会根据提供的时间区间自动获取日志、内部视图结果:

obdiag gather scene run --scene=obproxy.obproxy_all_informations --from 2024-03-21 15:40:00 --to 2024-03-21 22:05:00

注意:

如上命令不建议手敲输入,手敲可能会出错,如果手敲输入,需要检查字符完全准确

获取信息并提供:

程序运行结束后,最后会显示目录名称,一般是在当前的程序运行目录下,如下,将如下结果提供给售后支持人员即可:

2024-03-24 00:09:05,886 [INFO] step nu: 82 execute end
2024-03-24 00:09:05,886 [INFO] scene execute end
2024-03-24 00:09:05,886 [INFO] execute tasks end : observer.all_ob_relative_informations
If you want to view detailed obdiag logs, please run:' obdiag display-trace --trace_id 55484174-f481-3580-818d-ed9152cadad3 '

Gather scene results stored in this directory: gather_pack_20240324000843

目录内包含运行结果,如下:

遇到oceanbase问题时,使用OBDIAG高效收集相关信息的方法-2

相关文章

pt-kill工具的使用
pt-ioprofile工具包的使用
数据库管理-第216期 Oracle的高可用-01(20240703)
DBMS_REPAIR EXAMPLE SCRIPT WITH PARTITION
数据库事务的四大特性: ACID 
使用BBED修复损坏的SYSTEM文件头

发布评论