Oushu DB 管理指南之虚拟集群(下)

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

image.png

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与虚拟集群属性对照表
image.png

设置虚拟集群属性

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中看到此信息,此时需要按需手动将其加入到某个虚拟集群中使用。

目录
相关文章
|
存储 NoSQL 数据库
无主复制系统(1)-节点故障时写DB概述
单、多主复制的思路都是:客户端向某主节点发写请求,而DB系统负责将写请求复制到其他副本。
69 0
|
SQL
Oushu DB 管理指南之虚拟集群(上)
OushuDB从4.4.0.0版本开始支持虚拟集群来管理节点及其队列。虚拟集群可以使用户的资源使用限定在若干节点上,从而达到合理分配资源并隔绝错误。目前所有关于虚拟集群的元数据信息记录在系统表pg_vcluster中。
140 0
Oushu DB 管理指南之虚拟集群(上)
Oushu DB 管理指南之资源管理(上)
在任意时刻,OushuDB中可能有很多个并发的查询在运行。这些查询属于不同的用户。用户的优先级可能有高有低。我们需要一种方式 来合理的给各个用户分配其可以使用的系统资源,包括CPU和内存等。
115 0
Oushu DB  管理指南之资源管理(上)
|
运维 容灾 关系型数据库
【DB吐槽大会】第79期 - PG standby不支持配置多个上游节点
大家好,这里是DB吐槽大会,第79期 - PG standby不支持配置多个上游节点
|
SQL 资源调度 并行计算
【DB吐槽大会】第54期 - PG 资源隔离、管理手段较少
大家好,这里是DB吐槽大会,第54期 - PG 资源隔离、管理手段较少
|
存储 关系型数据库 Serverless
【DB吐槽大会】第68期 - PG server less场景下的quota控制灵活性较弱
大家好,这里是DB吐槽大会,第68期 - PG server less场景下的quota控制灵活性较弱
|
关系型数据库 数据库 PostgreSQL
【DB吐槽大会】第38期 - PG 不能自动创建(扩展)分区
大家好,这里是DB吐槽大会,第38期 - PG 不能自动创建(扩展)分区
|
SQL 关系型数据库 数据库