
# CLEAN CONNECTION
#### 功能描述
用于清理数据库连接。允许在指定节点上清理指定数据库的指定用户的相关连接。
主要用于处理数据库异常、清理空闲/无效连接以及用于DROP DATABASE之前的连接访问检查，防止操作失败。
#### 注意事项
参数**dbname和** **username**必须至少指定一个。
#### 语法格式
```
CLEAN CONNECTION 
    TO { COORDINATOR ( nodename [, ... ] ) | NODE ( nodename [, ... ] )| ALL [ CHECK ] [ FORCE ] }
    [ FOR DATABASE dbname ] 
    [ TO USER username ];
```
#### 参数说明
表1CLEAN CONNECTION参数说明 
| 参数                                                                         | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 取值范围                    |
|:---|:---|:---|
| CHECK                                                                      | 仅在节点列表为TO ALL时可以指定。 如果指定该参数，会在清理连接之前检查数据库是否被其他会话连接访问。 此参数主要用于DROP DATABASE之前的连接访问检查，如果发现有其他会话连接，则将报错并停止删除数据库。                                                                                                                                                                                                                                                                                                                                                                                                                                                 | -                       |
| FORCE                                                                      | 仅在节点列表为TO ALL时可以指定。 如果指定该参数，所有和指定dbname和username相关的线程都会收到SIGTERM信号，然后被强制关闭。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | -                       |
| COORDINATOR ( nodename \[, ... \] ) \| NODE ( nodename \[, ... \] ) \| ALL | 删除指定节点上的连接。有三种场景： 1. 删除指定CN上的连接。  2. 删除指定DN上的连接。  3. 删除所有节点上的连接，包括CN和DN。   | 可替换其中的nodename为已存在的节点名。 |
| dbname                                                                     | 删除指定数据库上的连接。 如果不指定，则删除所有数据库的连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 有效的数据库名。                |
| username                                                                   | 删除指定用户上的连接。 如果不指定，则删除所有用户的连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 有效的用户名。                 |
   
#### 示例
删除数据库template1在dn1和dn2节点上的连接。
```
CLEAN CONNECTION TO NODE (dn1,dn2) FOR DATABASE template1;
```
删除用户jack在dn1节点上的连接。
```
CLEAN CONNECTION TO NODE (dn1) TO USER jack;
```
删除在数据库gaussdb上的所有连接。
```
CLEAN CONNECTION TO ALL FORCE FOR DATABASE gaussdb;
```
#### 常见问题
[删除数据库失败，提示有session正在连接](https://support.huaweicloud.com/trouble-dws/dws_09_0034.html)
