天天看点

Oushu DB 管理指南之虚拟集群(下)1. 删除虚拟集群2. 虚拟集群缩容扩容3. 虚拟集群属性4. FAQ

Oushu DB 管理指南之虚拟集群(下)1. 删除虚拟集群2. 虚拟集群缩容扩容3. 虚拟集群属性4. FAQ

1. 删除虚拟集群

DROP VCLUSTER [IF EXISTS] <name>           

一个繁忙的(简易理解:有资源请求)虚拟集群无法被删除。

2. 虚拟集群缩容扩容

ALTER VCLUSTER <name> WITH (SEGMENTS='<hostnames>' | SEGMENTFILE='<hostfile>')

ALTER VCLUSTER <name> WITHOUT (SEGMENTS='<hostnames>' | SEGMENTFILE='<hostfile>')           

WITH用来扩容,WITHOUT用来缩容,此DDL同样支持扩展匹配。

同一时刻一个节点(域名或IP)只能归属一个虚拟集群。

若缩容节点有资源被使用,则缩容会提示失败。

3. 虚拟集群属性

随着虚拟集群的引入,有些GUC不再是全局范围的定义而是从属于虚拟集群的属性,我们将这些GUC移入pg_vcluster中,将其作为虚拟集群的属性。

GUC与虚拟集群属性对照表

Oushu DB 管理指南之虚拟集群(下)1. 删除虚拟集群2. 虚拟集群缩容扩容3. 虚拟集群属性4. FAQ

设置虚拟集群属性

ALTER VCLUSTER <name> WITH (<VCPROPERTY>=<value> [, <VCPROPERTY>=<value>]) [IN SESSION]

ALTER VCLUSTER <name> WITHOUT (<VCPROPERTY> [, <VCPROPERTY>]) [IN SESSION]           

设置使用WITH,取消使用WITHOUT(不要设值)。 持久话不要加IN SESSION,临时设置请使用IN SESSION。

显示虚拟集群属性

SHOW VCPROPERTY <name>           

虚拟集群属性的使用/显示按照以下优先级:SESSION>CATALOG>DEFAULT。

4. FAQ

4.1. 资源队列和ROLE

● 使用vcname.rsqname来表示资源队列,以前的pg_root/pg_default可以对应成vc_default.pg_root/pg_default。

● 修改用户的资源队列同样请使用vcname.rsqname来表示。

● 创建用户不指定资源队列会自动使用vc_default.pg_default。

● 没有了none资源队列,如果需要请用vc_default.pg_default。

● 查看用户绑定的资源队列

select * from pg_resqueue_status
  where rsqname = (select rsqname from pg_resqueue
    where oid=(select rolresqueue from pg_authid
      where rolname=(select current_user)));           

● 查看用户绑定的虚拟集群

select * from pg_vcluster
  where oid = (select vcid from pg_resqueue
    where oid=(select rolresqueue from pg_authid
      where rolname=(select current_user)));           

4.2. RM拒绝资源申请请求

Deferred the resource request because the resource queues have no valid resource capacities yet.

出现这种情况意味着当前用户绑定的资源队列没有可用资源,可以进行以下步骤进行检查:

  1. 检查用户绑定的资源队列,理论上报了此错误,则segcore为-1,segsize为0
  2. 检查对应虚拟集群,vcseg列是否有节点:

    ■ 若没有节点,需要向vc加入节点后使用。

    ■ 若有节点,则进一步排查。

  3. 检查节点健康状况,观察vcseg中的节点在gp_segment_configuration是否健康:

    ■ 若节点显示

    d

    则需要排查节点状况,令其可用。

    ■ 若vcseg中的节点没在gp_segment_configuration中出现,或一个是IP一个是域名,则意味着域名解析错误,需要检查/etc/hosts,确认域名与IP对应一致。

4.3. 如何正确扩容

4.4.0.0版本以前,在对应节点上开启OushuDB的segment进程即可。4.4.0.0版本以后,开启segment进程只会将其识别为isolated节点,可以在gp_segment_configuration中看到此信息,此时需要按需手动将其加入到某个虚拟集群中使用。