
# 查询InnoDB锁等待列表 - QueryInnoDBLockWaits
#### 功能介绍
查询InnoDB锁等待列表。目前仅支持MySQL实例。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DAS&api=ListInnodbLocks)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-das/das_01_0130.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                         | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | das:clouddba:listInnodbLock | list | instance    | -   | -  | -      |
     
  
 
#### URI
GET /v3/{project_id}/instances/{instance_id}/innodb-locks
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| project_id  | 是    | String | **参数解释**： 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-das/das_01_0036.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值：** 不涉及。 |
| instance_id | 是    | String | **参数解释：** 实例ID。标识实例的唯一标识。可通过查看实例列表或者实例详情获取实例ID信息。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 **默认取值：** 不涉及。                                                                                |
   
表2Query参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| db_user_id | 是    | String | **参数解释：** 数据库用户ID。用户使用数据库账号与数据库建立的连接ID（数据库用户ID由[注册数据库用户](https://support.huaweicloud.com/api-das/das_01_0019.html)接口创建）。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字、中划线组成，且长度为36个字符的UUID。 **默认取值：** 不涉及。 |
   
#### 请求参数
无。
#### 响应参数
**状态码： 200**
表3响应Body参数 
| 参数                | 参数类型                                                                       | 描述                                                                                                                                                   |
|:---|:---|:---|
| innodb_trx        | Array of [InnodbTrx] objects             | **参数解释：** 当前持有或等待锁的事务信息。                                                                                                |
| innodb_lock_waits | Array of [InnodbLockWaits] objects | **参数解释：** 每个事务请求的锁以及阻塞该请求的锁的对应关系。                                                                                       |
| count             | Integer                                                                    | **参数解释：** 当前持有或等待锁的事务数量。 **取值范围：** \[0, 2\^31-1\]，实际取决于查询。 |
   
 表4InnodbTrx 
| 参数                  | 参数类型                                                             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| trx_id              | String                                                           | **参数解释：** 事务ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                         |
| trx_state           | String                                                           | **参数解释：** 事务状态。 **取值范围：** - RUNNING：运行中  - LOCK WAIT：等待锁  - ROLLING BACK：正在回滚  - COMMITTING：正在提交   |
| trx_started         | String                                                           | **参数解释：** 事务开始时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                               |
| trx_wait_started    | String                                                           | **参数解释：** 事务ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                               |
| trx_mysql_thread_id | String                                                           | **参数解释：** 会话ID，同ListProcesses接口返回的id。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                        |
| trx_query           | String                                                           | **参数解释：** 事务运行的SQL语句。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                               |
| trx_tables_locked   | String                                                           | **参数解释：** 加行锁的表数量。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                            |
| trx_rows_locked     | String                                                           | **参数解释：** 锁定的行数量（近似值）。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                           |
| trx_rows_modified   | String                                                           | **参数解释：** 事务插入或者修改的行数。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                        |
| trx_isolation_level | String                                                           | **参数解释：** 隔离级别。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                              |
| innodb_wait_locks   | Array of [InnodbLock] objects | **参数解释：** 等待锁信息。                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| innodb_hold_locks   | Array of [InnodbLock] objects | **参数解释：** 持有锁信息。                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表5InnodbLock 
| 参数          | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| lock_id     | String | **参数解释：** 锁ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| lock_trx_id | String | **参数解释：** 事务ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| lock_mode   | String | **参数解释：** 锁模式。 **取值范围：** - S\[,GAP\]  - X\[,GAP\]  - IS\[,GAP\]  - IX\[,GAP\]  - AUTO_INC  - UNKNOWN   |
| lock_type   | String | **参数解释：** 锁类型。 **取值范围：** - RECORD：行锁。  - TABLE：表锁。                                                                                                                                                                                                                                                                                                              |
| lock_table  | String | **参数解释：** 加锁的表。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| lock_index  | String | **参数解释：** 如果是lock_type='RECORD' 行级锁，为锁住的索引，如果是表锁为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| lock_space  | String | **参数解释：** 如果是lock_type='RECORD' 行级锁，为锁住的索引，如果是表锁为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| lock_page   | String | **参数解释：** 如果是lock_type='RECORD' 行级锁，为锁住的页号，如果是表锁为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| lock_rec    | String | **参数解释：** 如果是lock_type='RECORD' 行级锁，为锁住的堆号，如果是表锁为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| lock_data   | String | **参数解释：** 事务锁住的主键值，若是表锁，则该值为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表6InnodbLockWaits 
| 参数                | 参数类型   | 描述                                                                                                                                |
|:---|:---|:---|
| requesting_trx_id | String | **参数解释：** 申请锁资源的事务ID。 **取值范围：** 不涉及。 |
| requested_lock_id | String | **参数解释：** 申请的锁的ID。 **取值范围：** 不涉及。      |
| blocking_trx_id   | String | **参数解释：** 阻塞的事务ID。 **取值范围：** 不涉及。       |
| blocking_lock_id  | String | **参数解释：** 阻塞的锁的ID。 **取值范围：** 不涉及。        |
   
#### 请求示例
查询InnoDB锁等待列表。
```
GET https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/instances/da304cd5bbb944de828759bc7be3d3fein01/innodb-locks?db_user_id=2c250598-1e3c-4d31-bc19-be1d866247e6
```
#### 响应示例
**状态码： 200**
```
{
  "innodb_trx" : [ {
    "trx_id" : "1080883393",
    "trx_state" : "LOCK WAIT",
    "trx_started" : "2021-01-14 18:49:26",
    "trx_wait_started" : "2021-01-14 18:49:26",
    "trx_mysql_thread_id" : "115602",
    "trx_query" : "DELETE FROM adfasdf WHERE  id =1",
    "trx_tables_locked" : "1",
    "trx_rows_locked" : "1",
    "trx_rows_modified" : "0",
    "trx_isolation_level" : "REPEATABLE READ",
    "innodb_wait_locks" : [ {
      "lock_id" : "1080883393:27750:3:2",
      "lock_trx_id" : "1080883393",
      "lock_mode" : "X",
      "lock_type" : "RECORD",
      "lock_table" : "`abc`.`adfasdf`",
      "lock_index" : "GEN_CLUST_INDEX",
      "lock_space" : "27750",
      "lock_page" : "3",
      "lock_rec" : "2",
      "lock_data" : "0x0000005528EC"
    } ],
    "innodb_hold_locks" : [ ]
  }, {
    "trx_id" : "1080882971",
    "trx_state" : "LOCK WAIT",
    "trx_started" : "2021-01-14 18:49:25",
    "trx_wait_started" : "2021-01-14 18:49:25",
    "trx_mysql_thread_id" : "115598",
    "trx_query" : "DELETE FROM adfasdf WHERE  id =1",
    "trx_tables_locked" : "1",
    "trx_rows_locked" : "1",
    "trx_rows_modified" : "0",
    "trx_isolation_level" : "REPEATABLE READ",
    "innodb_wait_locks" : [ ],
    "innodb_hold_locks" : [ {
      "lock_id" : "1080882971:27750:3:2",
      "lock_trx_id" : "1080882971",
      "lock_mode" : "X",
      "lock_type" : "RECORD",
      "lock_table" : "`abc`.`adfasdf`",
      "lock_index" : "GEN_CLUST_INDEX",
      "lock_space" : "27750",
      "lock_page" : "3",
      "lock_rec" : "2",
      "lock_data" : "0x0000005528EC"
    } ]
  } ],
  "innodb_lock_waits" : [ {
    "requesting_trx_id" : "1080883393",
    "requested_lock_id" : "1080883393:27750:3:2",
    "blocking_trx_id" : "1080882971",
    "blocking_lock_id" : "1080882971:27750:3:2"
  } ],
  "count" : 2
}
```
#### 状态码
| 状态码 | 描述                   |
|:---|:---|
| 200 | Success.             |
| 400 | BadRequest.          |
| 500 | InternalServerError. |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-das/das_01_0035.html)。
