
# ALTER COORDINATOR
#### 功能描述
修改pgxc_node系统表中指定节点的nodeis_active字段值，可以在集群任意一个正常的CN上执行，并且指定在哪些节点上修改系统表。
#### 注意事项
- *ALTER COORDINATOR*是修改系统表的语句，限制只有管理员用户和内部维护模式（例如CM集群管理）可以执行。这个语句是CN剔除特性专用，要配合其他操作，不要单独使用，不建议用户自己执行。
  
- 该语句执行完成后，需要调用select reload_active_coordinator()更新发生系统表修改的节点连接池信息。
 
#### 语法格式
```
ALTER COORDINATOR nodename SET status
      WITH (nodename1[, nodename2, nodename3 ...]);
```
#### 参数说明
- **nodename**
  节点名，对应在pgxc_node系统表的一行记录，指定后将修改记录中的nodeis_active字段值。
  取值范围：字符串，只支持CN，并且要保证该节点名在pgxc_node系统表中有对应的记录。
  
- **status**
  pgxc_node系统表中nodeis_active字段的更新值。
  取值范围：
  - FALSE
  - TRUE
  
- **nodename1\[, nodename2, nodename3 ...\]**
  该SQL执行的节点范围，ALTER COORDINATOR执行时会自动下发到范围内的所有节点，需要包含当前执行节点。
  取值范围：字符串，只支持CN，要保证该节点名在pgxc_node系统表中有对应的记录，并且节点状态正常，否则SQL执行失败。
  
 
#### 示例
集群有3个CN，cn_5001、cn_5002、cn_5003，均处于正常工作状态。
cn_5001发生故障且满足剔除时间要求后，需要将cn_5001从集群中剔除，执行SQL在cn_5002和cn_5003节点上刷新pgxc_node系统表中cn_5001对应记录的nodeis_active为false：
```
ALTER COORDINATOR cn_5001 SET False WITH (cn_5002,cn_5003);
```
cn_5001故障解除后，为了在集群中加回cn_5001，执行SQL在cn_5002和cn_5003节点上刷新pgxc_node系统表中cn_5001对应记录的nodeis_active为true：
```
ALTER COORDINATOR cn_5001 SET True WITH (cn_5002,cn_5003);
```
