更新时间:2024-11-12 GMT+08:00
分享

ALTER NODE GROUP

功能描述

修改一个集群节点组的信息。

注意事项

  • 只有系统管理员或者被授予了NODE GROUP的ALTER权限的用户可以修改NODE GROUP信息。
  • 修改NODE GROUP操作都是系统内部操作,除了SET DEFAULT语法之外,其他操作都需要在维护模式下(调用SET xc_maintenance_mode=on;)。
  • ALTER NODE GROUP语法仅仅应该在数据库内部使用,使用者不应该手动调用这些SQL语句,否则会导致数据库系统数据不一致。

语法格式

1
2
3
4
5
6
7
8
9
ALTER NODE GROUP groupname
{ SET DEFAULT
    | RENAME TO new_group_name
    | SET TABLE GROUP new_group_name
    | COPY BUCKETS FROM src_group_name
    | ADD NODE ( nodename [, ... ] )
    | DELETE NODE ( nodename [, ... ] )
    | RESIZE TO dest_group_name
};

参数说明

  • groupname

    需要修改的NODE GROUP名称。

    取值范围:字符串,要符合标识符命名规范

  • SET DEFAULT

    将系统中除了groupname指定的NODE GROUP之外的其他NODE GROUP对象的in_redistribution字段设置为'y'。考虑到兼容以前版本,该语法仍然保留,且不需要设置维护模式。

  • RENAME TO new_group_name

    将groupname指定的NODE GROUP的名称修改为new_group_name。

  • SET TABLE GROUP new_group_name

    将所有CN节点的pgxc_class表中pgroup字段是group_name的记录修改为new_group_name。

  • COPY BUCKETS FROM src_group_name

    从src_group_name表示的NODE GROUP中,将group_members字段和group_buckets字段的内容复制到groupname所表示的NODE GROUP中。

  • ADD NODE ( nodename [, ... ] )

    从groupname指定的NODE GROUP中增加指定的节点,这些新增节点在PGXC_NODE系统表中存在。该语句仅仅修改系统表,不会进行实际的节点添加和数据重分布,用户不应该直接调用该SQL语句。可以在PGXC_GROUP系统表中观察该语句的影响。

  • DELETE NODE ( nodename [, ... ] )

    从groupname指定的NODE GROUP中,将指定的节点移除,这些被移除的节点仍然存在于PGXC_NODE系统表中。该语句仅仅修改系统表,不会进行实际的节点移除和数据重分布,用户不应该直接调用该SQL语句。可以在PGXC_GROUP系统表中观察该语句的影响。

  • RESIZE TO dest_group_name

    设置集群resize操作标志,将groupname所表示的NODE GROUP设置为重分布的源NODE GROUP,并取消is_installation标志;同时将desst_group_name设置为重分布的目的NODE GROUP,并设置is_installation标志。

示例

--查询集群DN初始状态。
gaussdb=# SELECT node_name, nodeis_preferred FROM pgxc_node WHERE node_type = 'D' ORDER BY 1;
 node_name | nodeis_preferred
-----------+------------------
 dn_6001_6002_6003 | f
 dn_6004_6005_6006 | f
 dn_6007_6008_6009 | f
(3 rows)

--创建NODE GROUP,用上一步中查询到的真实节点名称替换dn_6001_6002_6003。
gaussdb=# CREATE NODE GROUP test_group WITH ( dn_6001_6002_6003 );

--修改创建出的NODE GROUP名称为test_group_new。需要在维护模式下(调用SET xc_maintenance_mode=on;)。
gaussdb=# SET xc_maintenance_mode=on;
gaussdb=# ALTER NODE GROUP test_group RENAME TO test_group_new;

--查询NODE GROUP。
gaussdb=# SELECT group_name, group_members FROM pgxc_group;
   group_name   |   group_members   
----------------+-------------------
 group_version1 | 16384 16388 16394
 test_group_new | 16384
(2 rows)

--删除NODE GROUP,且关闭维护模式。
gaussdb=# DROP NODE GROUP test_group_new;
gaussdb=# SET xc_maintenance_mode=off;

相关文档