快速收集诊断信息,敏捷诊断工具obdiag应用实践——《OceanBase诊断系列》之三
1. 前言
作为OceanBase的敏捷诊断工具,obdiag具有以下特点:
- 部署便捷:提供rpm包和OBD上部署的模式,都能够一键部署安装。用户可以选择将其部署到集群中任意一台能连接到各个节点的设备上,而不仅限于OBServer节点。
- 即开即用:使用过程中所依赖的python包都是自包含的,只需在部署机器上有python2或者python3环境即可。
- 集中收集:无需在每台服务器上分别部署,只需进行一次单点部署。需要时在部署机器上执行收集或分析命令即可使用
obdiag 1.2.1版本支持:
- 一键收集OB日志
- 一键收集AWR报告
- 一键收集主机信息
- 一键收集OB堆栈信息
- 一键收集(clog、slog解析后的日志)
- 一键收集perf信息(扁鹊图、perf火焰图、pstack火焰图)
- 一键收集并行SQL的执行详情信息
- 一键收集OBPROXY的日志待解锁功能
obdiag 1.3.0版本支持:
- 一键分析OB日志
obdiag 1.4.0版本支持:
- 一键集群巡检
obdiag 1.5.0版本支持:
- 一键全链路诊断
2. 安装部署使用
说明:方式一和方式二只需选择一种即可
2.1. 方式一:独立安装使用obdiag
2.1.1. obdiag部署
在线安装(可访问外网)
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y oceanbase-diagnostic-tool
source /usr/local/oceanbase-diagnostic-tool/init.sh
离线部署(不可访问外网)
obdiag工具可从OceanBase官网下载免费下载,下载链接
yum install -y oceanbase-diagnostic-tool*.rpm
source /usr/local/oceanbase-diagnostic-tool/init.sh
2.1.2. obdiag 配置
用户侧配置文件的默认路径是 ~/.obdiag/config.yml。可直接编辑配置文件或者通过 obdiag config <option> 命令快速生成配置。
obdiag config -h <db_host> -u <sys_user> [-p password] [-P port]
配置项说明如下:
| 参数名称 | 是否必须 | 说明 |
|---|---|---|
| db_host | 是 | OceanBase 集群 sys 租户的连接地址 |
| sys_user | 是 | OceanBase 集群sys 租户的连接用户,例如 'root@sys' |
| -p password | 否 | OceanBase 集群 sys 租户的连接密码,默认为空 |
| -P port | 否 | OceanBas e集群 sys 租户的端口,默认为 2881 |
更多配置说明请参见文档: 链接
2.2. 方式二:OBD模式下安装使用obdiag
如果你的OceanBase集群是通过OBD安装部署的,并且OBD的版本大于2.5.0那么,你可以直接通过下面的方式使用。
2.1.1. 安装
- 安装OBD 2.5.0 及以上版本
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y ob-deploy
source /etc/profile.d/obd.sh
- 安装obdiag工具
使用该命令可部署obdiag工具可在本机安装部署obdiag, (如果用户不安装直接使用也会走自动安装流程)
obdiag deploy
2.1.2. 使用
2.1.2.1. obd obdiag gather
使用该命令可调用obdiag工具进行OceanBase相关的诊断信息收集
obd obdiag gather <deploy name> <gather type> [options]
gather type包含:
- log:一键收集所属OceanBase集群的日志
- sysstat:一键收集所属OceanBase集群主机信息
- clog:一键收集所属OceanBase集群(clog日志)
- slog:一键收集所属OceanBase集群(slog日志)
- plan_monitor:一键收集所属OceanBase集群指定trace_id的并行SQL的执行详情信息
- perf:一键收集所属OceanBase集群的perf信息(扁鹊图、perf火焰图、pstack火焰图)
- obproxy_log:一键收集所属OceanBase集群所依赖的obproxy组件的日志
- all:一键统一收集所属OceanBase集群的诊断信息,包括收集OceanBase日志/主机信息/OceanBase堆栈信息/OceanBase OceanBase perf信息(扁鹊图、perf火焰图、pstack火焰图)
3. obdiag独立部署模式下使用体验
1. 部署安装
在线部署(可访问外网的情况下可选择)
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y oceanbase-diagnostic-tool
source /usr/local/oceanbase-diagnostic-tool/init.sh
2. 收集最近半小时内的OB集群日志
$obdiag gather log --since 30m...ZipFileInfo:
+----------------+-----------+
| Node | LogSize |
+================+===========+
| 11.162.218.126 | 12.231M |
+----------------+-----------+...Gather Ob Log Summary:
+----------------+-----------+---------+--------+-----------------------------------------------------------------------------------------------------------+
| Node | Status | Size | Time | PackPath |
+================+===========+=========+========+===========================================================================================================+
| 11.162.218.126 | Completed | 12.231M | 5 s | /home/test/gather_pack_20231103110502/ob_log_192.168.1.111_20231103103500_20231103110600.zip. |
+----------------+-----------+---------+--------+-----------------------------------------------------------------------------------------------------------+
If you want to view detailed obdiag logs, please run:'obdiag display-trace --trace_id c5ca9bce-0279-3977-bb52-3ae0b35cd3a8'Trace ID: c5f1e526-79f5-11ee-81e3-00163e01c7ce
If you want to view detailed obd logs, please run: obd display-trace c5f1e526-79f5-11ee-81e3-00163e01c7ce
3. 收集指定时间的OB日志
obdiag gather log --from 2023-01-16 18:25:00 --to 2023-01-17 01:30:00Gather Ob log Summary:
+-------------------+-----------+---------+--------+-----------------------------------------------------------------------+
| Node | Status | Size | Time | PackPath |
+===================+===========+=========+========+=======================================================================+
| xxx.xxx.xxx.xxx | Completed | 15.762K | 6 s | gather_pack_20230118002457/ob_log_xxx.xxx.xxx.xxx_20230118002458.zip |
+-------------------+-----------+---------+--------+-----------------------------------------------------------------------+
3. 收集all
$obdiag gather all...ZipFileInfo:
+----------------+-----------+
| Node | LogSize |
+================+===========+
| 11.162.218.126 | 17.469M |
+----------------+-----------+...Gather Ob Log Summary:
+----------------+-----------+---------+--------+-----------------------------------------------------------------------------------------------------------+
| Node | Status | Size | Time | PackPath |
+================+===========+=========+========+===========================================================================================================+
| 11.162.218.126 | Completed | 17.469M | 6 s | /home/test/gather_pack_20231103111342/ob_log_192.168.1.111_20231103104340_20231103111440.zip |
+----------------+-----------+---------+--------+-----------------------------------------------------------------------------------------------------------+... Gather Sysstat Summary:
+----------------+-----------+----------+--------+---------------------------------------------------------------------------------------------+
| Node | Status | Size | Time | PackPath |
+================+===========+==========+========+=============================================================================================+
| 11.162.218.126 | Completed | 865.705K | 2 s | /home/test/gather_pack_20231103111342/sysstat_192.168.1.111_20231103111348.zip |
+----------------+-----------+----------+--------+---------------------------------------------------------------------------------------------+...Gather Perf Summary:
+----------------+-----------+---------+--------+------------------------------------------------------------------------------------------+
| Node | Status | Size | Time | PackPath |
+================+===========+=========+========+==========================================================================================+
| 11.162.218.126 | Completed | 12.530K | 6 s | /home/test/gather_pack_20231103111342/perf_192.168.1.111_20231103111351.zip |
+----------------+-----------+---------+--------+------------------------------------------------------------------------------------------+...Gather Ob stack Summary:
+----------------+-----------+---------+--------+----------------------------------------------------------------------------------------------+
| Node | Status | Size | Time | PackPath |
+================+===========+=========+========+==============================================================================================+
| 11.162.218.126 | Completed | 11.567K | 5 s | /home/test/gather_pack_20231103111342/obstack2_192.168.1.111_20231103111358.zip |
+----------------+-----------+---------+--------+----------------------------------------------------------------------------------------------+...If you want to view detailed obdiag logs, please run:'obdiag display-trace --trace_id afb5d4ad-b723-38bc-a660-d050c94132a3'Trace ID: fc37da72-79f6-11ee-a367-00163e01c7ce
If you want to view detailed obd logs, please run: obd display-trace fc37da72-79f6-11ee-a367-00163e01c7ce
4. OBD模式下obdiag使用
参见OBD官网文档: OceanBase分布式数据库-海量数据 笔笔算数
| 第一篇 | 如何修炼成“神医”——《OceanBase诊断系列》之一 |
| 第二篇 | 走进SQL审计视图——《OceanBase诊断系列》之二 |
| 第三篇 | 快速收集诊断信息,敏捷诊断工具obdiag应用实践——《OceanBase诊断系列》之三 |
相关文章:
快速收集诊断信息,敏捷诊断工具obdiag应用实践——《OceanBase诊断系列》之三
1. 前言 作为OceanBase的敏捷诊断工具,obdiag具有以下特点: 部署便捷:提供rpm包和OBD上部署的模式,都能够一键部署安装。用户可以选择将其部署到集群中任意一台能连接到各个节点的设备上,而不仅限于OBServer节点。即…...
C++错误总结(1)
1.定义函数类型时,如果没有返回值,用void void swap(int &x, int &y){ int tem x; x y; y tem; } 2.输入时,不加换行符 cin >> a >> b >> c >> endl ;(红色标记的是错误的部分) 3.【逆序出入…...
std::shared_from_this注意事项:exception bad_weak_ptr
1.不可以在构造函数中调用shared_from_this() 因为它的实现是: _LIBCPP_INLINE_VISIBILITYshared_ptr<_Tp> shared_from_this(){return shared_ptr<_Tp>(__weak_this_);}也就是它依赖的__weak_this_此时还未创建完成。 2.一定要public继承 class MyTy…...
【工具】Raycast – Mac提效工具
引入 以前看到同事们锁屏的时候,不知按了什么键,直接调出这个框,然后输入lock屏幕就锁了。 跟我习惯的按Mac开机键不大一样。个人觉得还是蛮炫酷的~ 调研 但是由于之前比较繁忙,这件事其实都忘的差不多了࿰…...
蓝桥杯集训·每日一题2024 (二分,双指针)
前言: 开学了,平时学习的压力也逐渐大起来了,不过还算可以接受,等到后面阶段考的时候就不一样了,我目前为了转专业退选了很多课,这些课我都需要花时间来刷绩点,不然保研就没有竞争力了。我自己会…...
在Linux(Ubuntu)中使用终端编译 vscode安装
文章目录 📚在Linux(Ubuntu)中使用终端编译🐇.cpp程序编译🐇.py程序编译🐇查看Python、C编程环境 📚vscode安装 📚在Linux(Ubuntu)中使用终端编译 虚拟机安装…...
官网正在被哪些产品蚕食,定制网站又被哪些建站产品挤占。
2023-12-09 16:22贝格前端工场 官网建设是一个被大多数人看衰的市场,本文来理性分析下,谁在蚕食这个市场,谁又在挤占这个产品生存空间,欢迎大家评论,探讨。 网站正在被以下产品形式取代: 1. 移动应用&…...
BUUCTF---[MRCTF2020]你传你呢1
1.题目描述 2.打开题目链接 3.上传shell.jpg文件,显示连接成功,但是用蚁剑连接却连接不上。shell文件内容为 <script languagephp>eval($_REQUEST[cmd]);</script>4.用bp抓包,修改属性 5.需要上传一个.htaccess的文件来把jpg后缀…...
vite+vue3门户网站菜单栏动态路由控制
门户网站用户端需要分板块展示,板块内容由管理端配置,包括板块名称,访问路径,路由组件,展示顺序,是否展示。如下图所示: 用户访问门户网站时,展示菜单跳转通过板块配置,动…...
【C语言】linux内核packet_setsockopt
一、中文注释 // 发送数据包函数。它尝试通过特定的网络设备队列直接传输一个skb(socket缓冲区)。 static int packet_direct_xmit(struct sk_buff *skb) {return dev_direct_xmit(skb, packet_pick_tx_queue(skb)); // 调用dev_direct_xmit函数&#x…...
LeetCode的使用方法
LeetCode的使用方法 一、LeetCode是什么?1.LeetCode简介2.LeetCode官网 二、LeetCode的使用方法1.注册账号2.力扣社区力扣编辑器 2.1 讨论发起讨论参与讨论关注讨论 2.2 文章撰写文章关注文章 3.力扣面试官版测评面试招聘竞赛 4.力扣学习LeetBook 书架我的阅读猜您喜…...
Vue事件处理:.passive修饰符与应用场景
.passive修饰符 passive这个修饰符会执行默认方法。你们可能会问,明明默认执行为什么会设置这样一个修饰符。这就要说一下这个修饰符的本意了。 浏览器只有等内核线程执行到事件监听器对应的JavaScript代码时,才能知道内部是否会调用preventDefa…...
智慧城市中的数字孪生:构建城市管理的未来框架
目录 一、引言 二、数字孪生技术概述 三、数字孪生技术在智慧城市中的应用 1、实时监测与预警 2、模拟与优化 3、智能化决策 4、协同与共享 四、数字孪生技术构建城市管理的未来框架的价值 1、提高管理效率 2、优化资源配置 3、提升公共服务水平 4、增强应对突发事…...
强引用、软引用、弱引用、幻象引用 —— Java的四种引用类型解析
强引用、软引用、弱引用、幻象引用 —— Java的四种引用类型解析 在Java中,对象的生命周期并不总是由我们直接控制。除了我们常见的强引用外,Java还提供了软引用、弱引用和幻象引用这三种引用类型,它们对对象生命周期的影响各不相同。理解这…...
基于禁忌搜索算法(TS)的TSP(Python实现)
本篇文章是博主在最化优学习、人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在最优化算…...
Linux shell 网络掩码地址转CIDR
例子: ./1.sh 255.255.255.0 ./1.sh 255.255.255.128 ./1.sh 255.255.0.0 源实现: #!/bin/bashnetmask_to_cidr() {local IFSlocal -a octetslocal i0local cidr0IFS. read -r -a octets <<< "$1"for octet in "${octets[]}…...
C#,煎饼排序问题(Pancake Sorting Problem)算法与源代码
1 煎饼排序问题 给定一个未排序的数组,任务是对给定数组进行排序。您只能在阵列上执行以下操作。 翻转(arr,i):将数组从0反转为i 示例: 输入:arr[]{23、10、20、11、12、6、7} 输出:…...
13.西瓜书——半监督学习
1.概述 (1) 纯半监督学习 (Pure Semi-Supervised Learning) 纯半监督学习是一种典型的半监督学习方法,它的主要特点是同时利用有标签数据和无标签数据进行模型训练。目标是通过整合这两种类型的数据来提高模型的泛化性能。在这个过程中&#…...
C++进阶之路---继承(二)
顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、继承与友元 友元关系不能继承,也就是说基类友元不能访问子类私有和保护成员。 class Student; class Per…...
C及C++每日练习(3)
选择题: 1.以下程序的输出结果是() #include <stdio.h> main() { char a[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p; int i; i 8; p a i; printf("%s\n", p - 3); } A.6 B. 6789 C. 6 D.789 对于本题࿰…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
