CREATE NODE
功能描述
创建一个新的集群节点。
注意事项
CREATE NODE是集群管理工具封装的接口,用来实现集群管理。该接口不建议用户直接使用,以免对集群状态造成影响。管理员用户才有权限使用该接口。
语法格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
CREATE NODE nodename WITH ( [ TYPE = nodetype,] [ HOST = hostname,] [ PORT = portnum,] [ HOST1 = 'hostname',] [ PORT1 = portnum,] [ HOSTPRIMARY [ = boolean ],] [ PRIMARY [ = boolean ],] [ PREFERRED [ = boolean ],] [ SCTP_PORT = portnum,] [ CONTROL_PORT = portnum,] [ SCTP_PORT1 = portnum,] [ CONTROL_PORT1 = portnum, ] [ NODEIS_CENTRAL [= boolean], ] [ NODEIS_ACTIVE [= boolean] ] ); |
PORT选项指定的端口号为节点间内部通信绑定的端口号,不同于外部客户端连接节点的端口号,可通过pgxc_node表查询。
参数说明
- nodename
节点名称。
取值范围:字符串,要符合标识符命名规范。
- TYPE = nodetype
指定节点的类型。
取值范围:
- 'coordinator'
- 'datanode'
- HOST = hostname
指定节点对应的主机名称或者IP地址。
- PORT = portnum
指定节点绑定的主机端口号。
- HOST1 = hostname
指定节点对应的备机名称或者IP地址。
- PORT1 = portnum
指定节点绑定的备机端口号。
- HOSTPRIMARY
声明主机名称或者IP地址是否为主。
取值范围:
- true
- false(默认值)
- PRIMARY = boolean
声明该节点是否为主节点。主节点允许做读写操作,否则只允许读操作。
取值范围:
- true
- false(默认值)
- PREFERRED = boolean
声明该节点是否为读操作的首选节点。
取值范围:
- true
- false(默认值)
- SCTP_PORT = portnum
主机TCP代理通信库使用的数据传输通道侦听端口,使用TCP协议侦听连接。
- CONTROL_PORT = portnum
主机TCP代理通信库使用的控制传输通道侦听端口,使用TCP协议侦听连接。
- SCTP_PORT1 = portnum
备机TCP代理通信库使用的数据传输通道侦听端口,使用TCP协议侦听连接。
- CONTROL_PORT 1= portnum
备机TCP代理通信库使用的控制传输通道侦听端口,使用TCP协议侦听连接。
- NODEIS_CENTRAL
表明当前节点是否为中心控制节点,只用于CN,对DN无效。
- true
- false(默认值)
- NODEIS_ACTIVE
表明当前节点是否是正常状态,用于标记CN是否被剔除,对DN无效。
- true
- false(默认值)
多CN环境下,创建集群节点时只会在当前连接的CN下创建,不会同步至其他CN,需要在所有CN上执行,如果删除集群节点只需要连接一个CN即可。如果只在其中一个CN执行创建了集群节点,要删除需要定义当前cnnodename,并在当前CN下执行删除操作。请参见DROP NODE。
示例
--创建集群节点,在所有CN上执行。 gaussdb=# CREATE NODE datanode1 WITH( TYPE = datanode, PREFERRED = false ); gaussdb=# CREATE NODE datanode2 WITH( TYPE = datanode, PREFERRED = false ); --查询集群DN初始状态。 gaussdb=# SELECT node_name, nodeis_preferred FROM pgxc_node WHERE node_type = 'D' ORDER BY 1; node_name | nodeis_preferred -----------+------------------ datanode1 | f datanode2 | f (2 rows) --将datanode1设为preferred DN。 gaussdb=# ALTER NODE datanode1 WITH(preferred = true); --查询集群DN变更后状态。 gaussdb=# SELECT node_name, nodeis_preferred FROM pgxc_node WHERE node_type = 'D' ORDER BY 1; node_name | nodeis_preferred -----------+------------------ datanode1 | t datanode2 | f (2 rows) --删除集群节点,连接一个CN即可。 gaussdb=# DROP NODE datanode1; gaussdb=# DROP NODE datanode2;