Updated on 2024-05-07 GMT+08:00

ALTER COORDINATOR

Function

ALTER COORDINATOR changes the value of nodeis_active on a specified node in the pgxc_node system catalog. This operation can be performed on any normal CN in the cluster and also specifies the node on which the system catalog is to be modified.

Precautions

  • ALTER COORDINATOR is a statement used to modify the system catalog. Only the administrator and users in internal maintenance mode (for example, CM) can execute this statement. This statement is dedicated for the CN removal feature and must be used together with other operations. You are advised not to run it by yourself.

  • After this statement is executed, select reload_active_coordinator() needs to be called to update the connection pool information of the node on which the system catalog is modified.

Syntax

1
2
ALTER COORDINATOR nodename SET status
      WITH (nodename1[, nodename2, nodename3 ...]);

Parameter Description

  • nodename

    Specifies the node name corresponding to a row of records in the pgxc_node system catalog. After the node name is specified, the value of nodeis_active in the record is changed.

    Value range: a string. Only CNs are supported. Ensure that the node name has a corresponding record in the pgxc_node system catalog.

  • status

    Specifies the updated value of nodeis_acitve in the pgxc_node system catalog.

    Value range:

    - FALSE

    - TRUE

  • nodename1[, nodename2, nodename3 ...]

    Specifies the range of nodes on which the SQL statement is executed. When ALTER COORDINATOR is executed, the SQL statement is automatically delivered to all nodes in the range. The current execution node must be included.

    Value range: a string. Only CNs are supported. Ensure that the node name has a corresponding record in the pgxc_node system catalog and the node state is normal. Otherwise, the SQL statement fails to be executed.

Examples

The cluster has three CNs, namely, cn_5001, cn_5002, and cn_5003, which are running properly.

If cn_5001 is faulty and needs to be removed from the cluster within the specified time, run the following SQL statement on cn_5002 and cn_5003 to change the value of nodeis_active corresponding to cn_5001 in the pgxc_node system catalog to false:

ALTER COORDINATOR cn_5001 SET False WITH (cn_5002,cn_5003);

After cn_5001 is recovered, run the following SQL statement on cn_5002 and cn_5003 to change the value of nodeis_active corresponding to cn_5001 in the pgxc_node system catalog to true:

ALTER COORDINATOR cn_5001 SET True WITH (cn_5002,cn_5003);