
# 查询元数据锁信息 - QueryMetaLock
#### 功能介绍
查询元数据锁信息。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DAS/doc?api=LogoffBuiltInAccount)中调试该接口。
#### 授权信息
账号具备所有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}/connections/{connection_id}/instance/query-meta-lock
表1路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| project_id    | 是    | String | **参数解释**： 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-das/das_01_0036.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值：** 不涉及。 |
| connection_id | 是    | String | **参数解释：** 连接ID。用户使用数据库账号与数据库建立的连接ID（数据库用户ID由[创建实例连接](https://support.huaweicloud.com/api-das/das_01_0070.html)创建）。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字、中划线组成，且长度为36个字符的UUID。 **默认取值：** 不涉及。        |
   
表2Query参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| thread_id   | 否    | String | **参数解释：** 线程ID。 **约束限制：** 不涉及。 **取值范围：** 只能由数字组成，且长度为128个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| db_name     | 否    | String | **参数解释：** 数据库名称。 **约束限制：** 不涉及。 **取值范围：** 最大长度为128个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| table_name  | 否    | String | **参数解释：** 表名称。 **约束限制：** 不涉及。 **取值范围：** 最大长度为128个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| lock_status | 否    | String | **参数解释：** 锁状态。 **约束限制：** 不涉及。 **取值范围：** - GRANTED：持有锁  - PENDING：等待锁   **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                     |
| lock_type   | 否    | String | **参数解释：** 锁类型。 **约束限制：** 不涉及。 **取值范围：** - Schema metadata lock：库元数据锁  - Table metadata lock：表元数据锁  - Tablespace lock：表空间锁  - Global read lock：全局锁  - Backup lock：备份锁   **默认取值：** 不涉及。 |
   
#### 请求参数
无。
#### 响应参数
**状态码： 200**
表3响应Body参数 
| 参数                         | 参数类型                                                    | 描述                                                                                                                                    |
|:---|:---|:---|
| infos                      | Array of [表4] objects | **参数解释：** MDL锁等待信息。                                                                                      |
| count                      | Integer                                                 | **参数解释：** MDL锁总数量。 **取值范围：** 不涉及。            |
| wait_lock_count            | Integer                                                 | **参数解释：** 等待锁的会话的数量。 **取值范围：** 不涉及。          |
| hold_lock_count            | Integer                                                 | **参数解释：** 持有锁的会话的数量。 **取值范围：** 不涉及。       |
| time_greater_than_count    | Integer                                                 | **参数解释：** 等锁时间大于阈值的会话的数量。 **取值范围：** 不涉及。 |
| lock_wait_threshold_second | Long                                                    | **参数解释：** MDL锁等待时间阈值。 **取值范围：** 不涉及。       |
   
 表4MetaLockInfo 
| 参数                 | 参数类型                                                      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| lock_id            | String                                                    | **参数解释：** MDL锁ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| thread_id          | String                                                    | **参数解释：** 线程ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| lock_status        | String                                                    | **参数解释：** MDL锁状态。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| lock_mode          | String                                                    | **参数解释：** MDL锁等待模式。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| lock_type          | String                                                    | **参数解释：** MDL锁等待信息。 **取值范围：** - Schema metadata lock：库元数据锁  - Table metadata lock：表元数据锁  - Tablespace lock：表空间锁  - Global read lock：全局锁  - Backup lock：备份锁   |
| lock_duration      | String                                                    | **参数解释：** MDL锁等待持续时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| table_schema       | String                                                    | **参数解释：** 库表schema信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| table_name         | String                                                    | **参数解释：** 表名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| user               | String                                                    | **参数解释：** 用户名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| time               | String                                                    | **参数解释：** MDL锁等待时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| block_number       | Integer                                                   | **参数解释：** MDL锁等待阻塞数量。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| wait_number        | Integer                                                   | **参数解释：** MDL锁等待数量。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| host               | String                                                    | **参数解释：** 主机。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| db_name            | String                                                    | **参数解释：** 数据库名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| command            | String                                                    | **参数解释：** MDL锁等待SQL语句。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| state              | String                                                    | **参数解释：** MDL锁等待状态。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| info               | String                                                    | **参数解释：** MDL锁等待额外信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| sql_limit_rule     | String                                                    | **参数解释：** 关联的SQL限流规则。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| trx_exec_time      | String                                                    | **参数解释：** 事务执行时间。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| block_process_info | Array of [表5] Objects | **参数解释：** 阻塞的事务信息列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| wait_process_info  | Array of [表5] Objects | **参数解释：** 等待的事务信息列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
 表5ProcessInfo 
| 参数           | 参数类型   | 描述                                                                                                                            |
|:---|:---|:---|
| id           | String | **参数解释：** 会话ID。 **取值范围：** 不涉及。       |
| user         | String | **参数解释：** 用户。 **取值范围：** 不涉及。            |
| host         | String | **参数解释：** 连接库的IP和port。 **取值范围：** 不涉及。 |
| db           | String | **参数解释：** 数据库。 **取值范围：** 不涉及。         |
| command      | String | **参数解释：** 当前执行的命令。 **取值范围：** 不涉及。     |
| time         | String | **参数解释：** 会话运行时间。 **取值范围：** 不涉及。     |
| state        | String | **参数解释：** 执行状态。 **取值范围：** 不涉及。           |
| info         | String | **参数解释：** 执行的SQL。 **取值范围：** 不涉及。       |
| trx_duration | String | **参数解释：** 事务持续时间。 **取值范围：** 不涉及。         |
   
#### 请求示例
```
GET https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/connections/179e525e-0e9c-4dcc-9dd7-ee2f36121e23/instance/query-meta-lock
```
#### 响应示例
**状态码： 200**
Success.
```
{
    "infos": [
        {
            "lock_id": "78b7d303-c4ad-40fa-80b4-dd16937d7fdd",
            "thread_id": "30625382",
            "lock_status": "GRANTED",
            "lock_mode": "MDL_SHARED_WRITE",
            "lock_type": "Table metadata lock",
            "lock_duration": "MDL_TRANSACTION",
            "table_schema": "db",
            "table_name": "shopping",
            "user": "root",
            "time": "15",
            "block_number": 1,
            "wait_number": 0,
            "host": "100.xx.xx.xx:50708",
            "db_name": "db",
            "command": "Sleep",
            "state": "",
            "info": "",
            "trx_exec_time": "20",
            "sql_limit_rule": "",
            "block_process_info": [
                {
                    "id": "30625444",
                    "user": "root",
                    "host": "100.xx.xx.xx:34476",
                    "db": "db",
                    "command": "Query",
                    "time": "7",
                    "state": "Waiting for table metadata lock",
                    "info": "ALTER TABLE shopping ADD INDEX idx_name(b)",
                    "trx_duration": ""
                }
            ],
            "wait_process_info": []
        },
        {
            "lock_id": "4120d1c0-d508-4ebf-9be6-124674d870a5",
            "thread_id": "30625444",
            "lock_status": "PENDING",
            "lock_mode": "MDL_EXCLUSIVE",
            "lock_type": "Table metadata lock",
            "lock_duration": "",
            "table_schema": "db",
            "table_name": "shopping",
            "user": "root",
            "time": "7",
            "block_number": 0,
            "wait_number": 1,
            "host": "100.xx.xx.xx:34476",
            "db_name": "db",
            "command": "Query",
            "state": "Waiting for table metadata lock",
            "info": "ALTER TABLE shopping ADD INDEX idx_name(b)",
            "trx_exec_time": "0",
            "sql_limit_rule": "",
            "block_process_info": [],
            "wait_process_info": [
                {
                    "id": "30625382",
                    "user": "root",
                    "host": "100.79.0.247:50708",
                    "db": "db",
                    "command": "Sleep",
                    "time": "15",
                    "state": "",
                    "info": "",
                    "trx_duration": ""
                }
            ]
        }
    ],
    "count": 2,
    "wait_lock_count": 1,
    "hold_lock_count": 1,
    "time_greater_than_count": 0,
    "lock_wait_threshold_second": 2222
}
```
#### 状态码
| 状态码 | 描述            |
|:---|:---|
| 200 | Success.      |
| 400 | Client error. |
| 500 | Server error. |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-das/das_01_0035.html)。
