5.obdiag-commands.md 13.4 KB
Newer Older
R
Rongfeng Fu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
# 诊断工具命令组

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 <gather type> <deploy name> [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 <deploy name> [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 <deploy name> [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 <deploy name> [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 <deploy name> [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 <deploy name> [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 <deploy name> [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 <deploy name> [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 <deploy name> [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 <deploy name> [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的安装目录 |