# 诊断工具命令组 OBD 集成了Oceanbase Diagnostic Tool(简称: obdiag) 工具,obdiag现有功能包含了对于OceanBase日志、SQL Audit以及OceanBase进程堆栈等信息进行的扫描收集,支持通过OBD实现诊断信息的一键采集。 ## obd obdiag deploy 使用该命令可部署obdiag工具可在本机安装部署obdiag ```shell obd obdiag deploy ``` ## obd obdiag gather 使用该命令可调用obdiag工具进行OceanBase相关的诊断信息收集 ```shell obd obdiag gather [options] ``` gather type包含: * log:一键收集所属OceanBase集群的日志 * sysstat:一键收集所属OceanBase集群主机信息 * clog:一键收集所属OceanBase集群(clog日志) * slog:一键收集所属OceanBase集群(slog日志) * plan_monitor:一键收集所属OceanBase集群指定trace_id的并行SQL的执行详情信息 * stack:一键收集所属OceanBase集群的堆栈信息 * perf:一键收集所属OceanBase集群的perf信息(扁鹊图、perf火焰图、pstack火焰图) * obproxy_log:一键收集所属OceanBase集群所依赖的obproxy组件的日志 * all:一键统一收集所属OceanBase集群的诊断信息,包括收集OceanBase日志/主机信息/OceanBase堆栈信息/OceanBase clog、slog日志/OceanBase perf信息(扁鹊图、perf火焰图、pstack火焰图) ## obd obdiag gather log 使用该命令可以一键收集所属OceanBase集群的日志 ```shell obd obdiag gather log [options] ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 参数说明见下表 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------|------|--------|---------------------------|-------------------------------------------------------------------| | --from | 否 | string | / | 日志收集的开始时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 12:00:00" | | --to | 否 | string | / | 日志收集的结束时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 13:00:00" | | --since | 否 | string | / | 日志收集最近的某段时间,格式为: n m/h/d,m表示分钟, h表示小时, d表示天,例如 30m表示收集最近30分钟的日志 | | --scope | 否 | string | all | 选择收集的OceanBase日志类型,choices=[observer, election, rootservice, all], default=all | | --grep | 否 | string | / | 选择查询的关键字 | | --encrypt | 否 | string | false | 回传的文件是否加密,选项[true,false] | | --store_dir | 否 | string | 默认命令执行的当前路径 | 存储结果的本地路径 | | --obdiag_dir | 否 | string | $HOME/oceanbase-diagnostic-tool | obdiag的安装目录 | ## obd obdiag gather sysstat 使用该命令可以一键收集所属OceanBase集群主机信息(主机dmesg信息/主机cpu/内存信息) ```shell obd obdiag gather sysstat [options] ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 参数说明见下表 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------|------|--------|---------------------------|-------------------------------------------------------------------| | --store_dir | 否 | string | 默认命令执行的当前路径 | 存储结果的本地路径 | | --obdiag_dir | 否 | string | $HOME/oceanbase-diagnostic-tool | obdiag的安装目录 | ## obd obdiag gather clog 使用该命令可以一键收集所属OceanBase集群的clog日志,需要收集的集群节点上部署过ob_admin工具 ```shell obd obdiag gather clog [options] ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 参数说明见下表 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------|------|--------|---------------------------|-------------------------------------------------------------------| | --from | 否 | string | / | 日志收集的开始时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 12:00:00" | | --to | 否 | string | / | 日志收集的结束时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 13:00:00" | | --since | 否 | string | / | 日志收集最近的某段时间,格式为: n m/h/d,m表示分钟, h表示小时, d表示天,例如 30m表示收集最近30分钟的日志 | | --encrypt | 否 | string | false | 回传的文件是否加密,选项[true,false] | | --store_dir | 否 | string | 默认命令执行的当前路径 | 存储结果的本地路径 | | --obdiag_dir | 否 | string | $HOME/oceanbase-diagnostic-tool | obdiag的安装目录 | ## obd obdiag gather slog 使用该命令可以一键收集所属OceanBase集群的slog日志,需要收集的集群节点上部署过ob_admin工具 ```shell obd obdiag gather slog [options] ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 参数说明见下表 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------|------|--------|---------------------------|-------------------------------------------------------------------| | --from | 否 | string | / | 日志收集的开始时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 12:00:00" | | --to | 否 | string | / | 日志收集的结束时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 13:00:00" | | --since | 否 | string | / | 日志收集最近的某段时间,格式为: n m/h/d,m表示分钟, h表示小时, d表示天,例如 30m表示收集最近30分钟的日志 | | --encrypt | 否 | string | false | 回传的文件是否加密,选项[true,false] | | --store_dir | 否 | string | 默认命令执行的当前路径 | 存储结果的本地路径 | | --obdiag_dir | 否 | string | $HOME/oceanbase-diagnostic-tool | obdiag的安装目录 | ## obd obdiag gather plan_monitor 该命令可以一键收集所属OceanBase集群指定的trace_id并行SQL的执行详情信息,便于在AP场景下分析SQL执行慢的算子层面的原因。说明:该功能仅在OB > 3.0版本才支持 ```shell obd obdiag gather plan_monitor [options] ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 参数说明见下表 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------|------|--------|---------------------------|-------------------------------------------------------------------| | -c/--components | 否 | string | oceanbase-ce | 用于访问oceanbase库的组件 | | --trace_id | 是 | string | | OB 4.0以下版本从gv$sql_audit中查到的trace_id, OB 4.0及以上版本从gv$ob_sql_audit中查到的trace_id| | -u/--user | 否 | string | root | 可访问oceanbase库的用户| | -p/--password | 否 | string | | 可访问oceanbase库的用户的密码| | --store_dir | 否 | string | 默认命令执行的当前路径 | 存储结果的本地路径 | | --obdiag_dir | 否 | string | $HOME/oceanbase-diagnostic-tool | obdiag的安装目录 | ## obd obdiag gather stack 该命令可以一键收集所属OceanBase集群的堆栈信息,该采集项暂不支持arm版本。 ```shell obd obdiag gather stack [options] ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 参数说明见下表 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------|------|--------|---------------------------|-------------------------------------------------------------------| | --store_dir | 否 | string | 默认命令执行的当前路径 | 存储结果的本地路径 | | --obdiag_dir | 否 | string | $HOME/oceanbase-diagnostic-tool | obdiag的安装目录 | ## obd obdiag gather perf 该命令可以一键收集所属OceanBase集群的perf信息(扁鹊图、perf火焰图、pstack火焰图) ```shell obd obdiag gather perf [options] ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 参数说明见下表 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------|------|--------|---------------------------|-------------------------------------------------------------------| | --scope | 否 | string | all | 用于选择性的收集指定的perf信息, 可选项目[sample, flame, pstack,all] | | --store_dir | 否 | string | 默认命令执行的当前路径 | 存储结果的本地路径 | | --obdiag_dir | 否 | string | $HOME/oceanbase-diagnostic-tool | obdiag的安装目录 | ## obd obdiag gather obproxy_log 使用该命令可以一键收集所属OceanBase集群所依赖的obproxy集群的日志 ```shell obd obdiag gather obproxy_log [options] ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 参数说明见下表 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------|------|--------|---------------------------|-------------------------------------------------------------------| | --from | 否 | string | / | 日志收集的开始时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 12:00:00" | | --to | 否 | string | / | 日志收集的结束时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 13:00:00" | | --since | 否 | string | / | 日志收集最近的某段时间,格式为: n m/h/d,m表示分钟, h表示小时, d表示天,例如 30m表示收集最近30分钟的日志 | | --scope | 否 | string | all | 选择查询的obproxy日志类型,可选项[obproxy, obproxy_digest, obproxy_stat, obproxy_slow, obproxy_limit, all] | | --grep | 否 | string | / | 选择查询的关键字 | | --encrypt | 否 | string | false | 回传的文件是否加密,选项[true,false] | | --store_dir | 否 | string | 默认命令执行的当前路径 | 存储结果的本地路径 | | --obdiag_dir | 否 | string | $HOME/oceanbase-diagnostic-tool | obdiag的安装目录 | ## obd obdiag gather all 使用该命令可以一键统一收集所属OceanBase集群的诊断信息,包括收集OceanBase日志/主机信息/OceanBase堆栈信息/OceanBase clog、slog日志/OceanBase perf信息(扁鹊图、perf火焰图、pstack火焰图) ```shell obd obdiag gather all [options] ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 参数说明见下表 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------|------|--------|---------------------------|-------------------------------------------------------------------| | --from | 否 | string | / | 日志收集的开始时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 12:00:00" | | --to | 否 | string | / | 日志收集的结束时间,格式为: "yyyy-mm-dd hh:mm:ss",需要加引号 ,例如"1970-01-01 13:00:00" | | --since | 否 | string | / | 日志收集最近的某段时间,格式为: n m/h/d,m表示分钟, h表示小时, d表示天,例如 30m表示收集最近30分钟的日志 | | --scope | 否 | string | all | 选择收集的OceanBase日志类型,choices=[observer, election, rootservice, all], default=all | | --grep | 否 | string | / | 选择查询的关键字 | | --encrypt | 否 | string | false | 回传的文件是否加密,选项[true,false] | | --store_dir | 否 | string | 默认命令执行的当前路径 | 存储结果的本地路径 | | --obdiag_dir | 否 | string | $HOME/oceanbase-diagnostic-tool | obdiag的安装目录 |