【GBase 8a V95 中VC信息的存储和实现】

GBase8aMPPClusterV95的虚拟集群VC信息由管理集群(coordinator)存储,包括数据分布、用户权限等。每个VC包含最多2个distribution,用户数据按选定的分布规则存储。权限信息存储在gbase库的相关表中。VC操作如创建表、权限授予与回收等涉及多个组件和系统表。rebalance操作仅限当前VC,而failover处理则区分不同VC。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GBase 8a V95 中VC信息的存储和实现

前言

GBase 8a MPP Cluster V95一套物理集群由一组管理集群(coordinator)管理多个虚拟集群VC,每个虚拟集群VC是一组独立的gnode节点。GBase 8a MPP Cluster V95的VC信息保存在哪里?前端的哪些操作涉及到VC?本文总结了GBase 8a V95中VC信息的存储和实现,以及涉及到VC的操作。适合对GBase 8a架构有一定了解的朋友作为工具来检索使用。

GBase 8a MPP Cluster V95一套物理集群由一组管理集群(coordinator)管理多个虚拟集群VC,每个虚拟集群VC是一组独立的gnode节点,多个虚拟集群VC共同由一组管理集群进行统一管理。
GBase 8a MPP Cluster V95 VC架构
VC信息的存储和区分主要由管理集群(coordinator)负责。用户的数据在VC内各个节点上分布存储,Distribution是数据在VC中节点的分布方式,不同的distribution ID标识不同的分布规则,用户表需要选择一个distributionID,表数据根据选定的distributionID分布规则进行分布。

  1. GBase 8a MPP Cluster每个coordinate(gcluster+gcware)节点都存储了所有VC的元数据、所有的user以及权限信息。
  2. 表属于某个distribution,distribution属于某个VC。Gcluster中表元数据有:VC id,表的类型(分布表or复制表),distribution id。这些信息可以在gbase.table_distribution系统表中查看到。
  3. gcware中元数据有:coordinate cluster信息、free node信息、VC信息、VC与distribution对应关系、所有节点(coordinator和gnode)状态等。
  4. 每个user有一个默认VC(也可以没有默认VC),集群根据username自动选取此用户的默认VC为当前VC,没有默认VC的user可以登录集群但不能操作。
  5. Coordinate(gcluster+gcware)的配置参数不区分VC,所有VC共用。
  6. Coordinate(gcluster+gcware)的log不区分VC,所有VC的log系统也沿用一套。
  7. 每个VC内最多2个distribution,gcware存储VC、distribution、VC与distribution的对应关系。
  8. VC.DB在这个VC的所有节点上都有,与distribution无关,DB中的表可以指定在这个VC的其中某一个distribution上,如:
    gcadmin showdistribution
    执行下面语句时,gccli需带-c参数使hint有效。
    create table /+ distribution(1)/ tt as select * from t1;
    select data_distribution_id from gbase.table_distribution where index_name=‘test_hint.tt’;
  9. 系统库gbase、information_schema、performance_schema、gctmpdb是所有VC共享;
    gclusterdb每个VC各自独立;gclusterdb.rebalancing_status表每个VC一个;
    gclusterdb.nodedatamap与gbase.nodedatamap内容一致。
  10. 权限信息在系统库gbase库的下列表中:
    user、db 、tables_priv、columns_priv、procs_priv、vcs_priv
    create user 在所有coordinate节点上创建用户
    set default_vc for user=vc_name 在vc上创建用户,用户拥有usage权限
    grant all on . to user;
    grant all on procedure db.func to user
    grant all on function db.proc to user
    grant all on vc.. to user
    grant all on procedure vc.db.func to user
    grant all on function vc.db.proc to user
    在vc的所有data节点上创建usage权限用户,同时更新授权涉及的权限表
    revoke 语法相同
    如果用户不再拥有一个VC的任何访问权限时,将删除该VC所有data节点上的该用户,如:
    revoke all on VC.. FROM USER
    DROP USER U 删除gcluster和相关data节点上用户
    RENAME USER oldu to newu修改权限表中user记录
  11. 一个VC可以有两个distribution 受gcChangeInfo.xml p d pattern 影响
  12. 支持调整gbase.nodedatamap来调整数据分布
  13. 所有VC的nodedatamap都存于gbase.nodedatamap
  14. rebalance只能操作当前VC下的库表,不支持操作其他VC下库表,不支持指定VC限定符。
  15. rebalance调度线程需要调度所有VC的rebalance任务,所有VC共享rebalance所有运行参数,注意不同VC需要分别使用gcluster_rebalancing_concurrent_count限制。
    每个VC有自己独立的gclusterdb.rebalancing_status,访问需加VC信息。
  16. failover区分不同VC分别处理,failover结构中包含vcid信息
  17. show datacopymap vc.db.table
    dp_state
    0正常
    2数据异常
    4进程异常,如gbased异常
    16元数据异常
    18数据和元数据全异常
  18. VC之间的操作,DDL\DML\SELECT内部转换为多distribution操作,相对dblink省了在本地生成dblink表数据的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值