
# 查询元数据锁列表 - QueryMetadataLocks
#### 功能介绍
查询元数据锁列表。目前仅支持MySQL实例。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DAS&api=ListMetadataLocks)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-das/das_01_0130.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                           | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | das:clouddba:listMetadataLock | list | instance    | -   | -  | -      |
     
  
 
#### URI
GET /v3/{project_id}/instances/{instance_id}/metadata-locks
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| project_id  | 是    | String | **参数解释**： 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-das/das_01_0036.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值：** 不涉及。 |
| instance_id | 是    | String | **参数解释：** 实例ID。标识实例的唯一标识。可通过查看实例列表或者实例详情获取实例ID信息。 **约束限制：** 仅支持MySQL实例。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 **默认取值：** 不涉及。                                                                       |
   
表2Query参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| db_user_id | 是    | String | **参数解释：** 数据库用户ID。用户使用数据库账号与数据库建立的连接ID（数据库用户ID由[注册数据库用户](https://support.huaweicloud.com/api-das/das_01_0019.html)接口创建）。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字、中划线组成，且长度为36个字符的UUID。 **默认取值：** 不涉及。 |
| thread_id  | 否    | String | **参数解释：** 会话ID。 **约束限制：** 不涉及。 **取值范围：** \[0, 2\^31-1\]，实际取决于查询。 **默认取值：** 不涉及。                                                                                                                            |
| database   | 否    | String | **参数解释：** 数据库名称。 **约束限制：** 仅支持MySQL实例的数据库。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                           |
| table      | 否    | String | **参数解释：** 数据库表名。 **约束限制：** 仅支持MySQL实例的数据库的表。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                               |
   
#### 请求参数
无。
#### 响应参数
**状态码： 200**
表3响应Body参数 
| 参数             | 参数类型                                                                 | 描述                                                                                                                                            |
|:---|:---|:---|
| metadata_locks | Array of [MetadataLock] objects | **参数解释：** 元数据锁列表。                                                                                                 |
| count          | Integer                                                              | **参数解释：** 元数据锁数量。 **取值范围：** \[0, 2\^31-1\]，实际取决于查询。 |
   
 表4MetadataLock 
| 参数            | 参数类型                                                       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| thread_id     | String                                                     | **参数解释：** 会话ID。 **取值范围：** \[0, 2\^31-1\]，实际取决于查询。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| lock_status   | String                                                     | **参数解释：** 锁状态。 **取值范围：** - PENDING：等待锁  - GRANTED：持有锁                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| lock_mode     | String                                                     | **参数解释：** 加锁模式。 **取值范围：** - MDL_SHARED  - MDL_EXCLUSIVE  - MDL_SHARED_READ  - MDL_SHARED_WRITE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| lock_type     | String                                                     | **参数解释：** 锁类型。 **取值范围：** - Table metadata lock：表元数据锁  - Schema metadata lock：库元数据锁  - Tablespace lock：表空间锁  - Global read lock：全局读锁                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| lock_duration | String                                                     | **参数解释：** 锁范围。 **取值范围：** - MDL_STATEMENT：语句级别  - MDL_TRANSACTION：事务级别  - MDL_EXPLICIT：global级别                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| table_schema  | String                                                     | **参数解释：** 锁所在的数据库，对于部分Global read lock级别的元数据锁，该值为空。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| table_name    | String                                                     | **参数解释：** 表名。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| user          | String                                                     | **参数解释：** 用户。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| time          | String                                                     | **参数解释：** 时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| host          | String                                                     | **参数解释：** 主机。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| database      | String                                                     | **参数解释：** 会话所在的数据库。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| command       | String                                                     | **参数解释：** 命令。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| state         | String                                                     | **参数解释：** 状态。 **取值范围：** - Sleep：等待客户端发送新的请求  - Searching rows for update：进行第一阶段扫描  - Sending data：读取并处理查询请求的行  - Sorting for group / order：进行内存或磁盘排序  - Waiting for table metadata lock：等待获取元数据锁  - Locked：等待行级锁或表级锁释放  - Statistics：计算统计信息  - Updating：查找要更新的行并进行修改  - Copying to tmp table on disk：正在将临时结果集从内存移动到磁盘   |
| sql           | String                                                     | **参数解释：** SQL语句。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| trx_exec_time | String                                                     | **参数解释：** 事务执行时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| block_process | Array of [Process] objects | **参数解释：** 阻塞会话列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| wait_process  | Array of [Process] objects | **参数解释：** 等待会话列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表5Process 
| 参数                | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| id                | String | **参数解释：** 会话ID。 **取值范围：** \[0, 2\^31-1\]，实际取决于查询。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| user              | String | **参数解释：** 用户。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| host              | String | **参数解释：** 主机。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| database          | String | **参数解释：** 数据库。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| command           | String | **参数解释：** 命令。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| time              | String | **参数解释：** 会话持续时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| state             | String | **参数解释：** 状态。 **取值范围：** - Sleep：等待客户端发送新的请求  - Searching rows for update：进行第一阶段扫描  - Sending data：读取并处理查询请求的行  - Sorting for group / order：进行内存或磁盘排序  - Waiting for table metadata lock：等待获取元数据锁  - Locked：等待行级锁或表级锁释放  - Statistics：计算统计信息  - Updating：查找要更新的行并进行修改  - Copying to tmp table on disk：正在将临时结果集从内存移动到磁盘   |
| sql               | String | **参数解释：** SQL语句。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| trx_executed_time | String | **参数解释：** 事务持续时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
#### 请求示例
查询元数据锁列表。
```
GET https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/instances/da304cd5bbb944de828759bc7be3d3fein01/metadata-locks?db_user_id=2c250598-1e3c-4d31-bc19-be1d866247e6&thread_id=12121&database=example&table=example
```
#### 响应示例
**状态码： 200**
```
{
  "metadata_locks" : [ {
    "thread_id" : "4096619",
    "lock_status" : "GRANTED",
    "lock_mode" : "MDL_SHARED_READ",
    "lock_type" : "Table metadata lock",
    "lock_duration" : "MDL_TRANSACTION",
    "table_schema" : "test_zyr",
    "table_name" : "test2",
    "user" : "root",
    "time" : "40",
    "host" : "das server",
    "database" : "test_zyr",
    "command" : "Sleep",
    "state" : "Waiting for table metadata lock",
    "sql" : null,
    "trx_exec_time" : "341",
    "block_process" : [ ],
    "wait_process" : [ ]
  } ],
  "count" : 1
}
```
#### 状态码
| 状态码 | 描述                   |
|:---|:---|
| 200 | Success.             |
| 400 | BadRequest.          |
| 500 | InternalServerError. |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-das/das_01_0035.html)。
