云服务器内容精选

  • 背景信息 逻辑集群支持手动添加增删计划和自动弹性增删能力。支持在计划时间段内,动态创建、删除计算逻辑集群,实现计算资源动态伸缩。 通过手动添加定时增删计划创建的逻辑集群主要用于提供计算能力,关联用户后该用户的查询都会切换到该逻辑集群上,同时建表语句仍在原始的逻辑集群上。 一个用户仅支持绑定到一个计算逻辑集群上。 若删除逻辑集群时,该逻辑集群关联的用户有业务运行,可能会出现报错。 通过打开自动弹性开关创建的逻辑集群主要用于提供并发扩展能力,关联主逻辑集群后,主逻辑集群的部分查询路由到该逻辑集群上,同时建表语句仍在原始的逻辑集群上。 开启并使用并发扩展功能,当系统面临高并发作业,主集群因为内存等资源不足出现排队时,DWS会自动增加额外的集群容量来处理增多的读取和写入语句,减少语句排队时间。不管语句在主集群上运行还是在并发扩展集群上运行,用户都将看到最新的数据,且性能相当。您可以通过配置资源池来管理将哪些语句发送到并发扩展集群。开启并发扩展后,符合条件的语句将发送到并发扩展集群,而不是排队等待。并发扩展功能限制如下: 仅支持V3表和foreign外表。如果为复制表,仅支持SELECT。 仅支持SELECT、INSERT、UPDATE、DELETE语句。 不支持COPY导入。 不支持UPSERT语句。 不支持事务块。 不支持存储过程。 不支持带RETURNING子句和WITH RECURSIVE递归语句。 不支持轻量级更新。 不支持INSERT单个VALUES或者类似generate_series生成的语句。 手动增删计划支持存算分离集群,历史版本需要联系技术支持人员升级使用。 自动弹性增删仅支持存算分离集群和E CS 规格的集群,且仅9.1.0.200及以上集群版本支持。 存算分离集群包年/包月集群在定时增加逻辑集群时自动扩容节点,节点按需计费。
  • 创建逻辑集群关联用户并跨逻辑集群查询数据 以系统管理员dbadmin连接数据库,执行以下SQL语句查看逻辑集群创建成功。 1 SELECT group_name FROM PGXC_GROUP; 创建两个用户u1和u2,分别关联逻辑集群lc1和逻辑集群lc2。 1 2 CREATE USER u1 NODE GROUP "lc1" password '{password}'; CREATE USER u2 NODE GROUP "lc2" password '{password}'; 切换到用户u1,创建表t1,并插入数据。 1 2 3 SET ROLE u1 PASSWORD '{password}'; CREATE TABLE u1.t1 (id int); INSERT INTO u1.t1 VALUES (1),(2); 切换到用户u2,创建表t2,并插入数据。 1 2 3 SET ROLE u2 PASSWORD '{password}'; CREATE TABLE u2.t2 (id int); INSERT INTO u2.t2 VALUES (1),(2); 同时使用u2查询u1.t1表。返回结果提示没有权限。 1 SELECT * FROM u1.t1; 切换回系统管理员dbadmin,查询表u1.t1和u2.t2分别创建到了集群lc1和lc2中,分别对应企业的两块业务,实现了基于逻辑集群的数据隔离。 1 2 3 SET ROLE dbadmin PASSWORD '{password}'; SELECT p.oid,relname,pgroup,nodeoids FROM pg_class p LEFT JOIN pgxc_class pg ON p.oid = pg.pcrelid WHERE p.relname = 't1'; SELECT p.oid,relname,pgroup,nodeoids FROM pg_class p LEFT JOIN pgxc_class pg ON p.oid = pg.pcrelid WHERE p.relname = 't2'; 将逻辑集群lc1的访问权限授予用户u2,同时将SCHEMA u1访问权限、表u1.t1访问权限授予用户u2。 1 2 3 GRANT usage ON NODE GROUP lc1 TO u2; GRANT usage ON SCHEMA u1 TO u2; GRANT select ON TABLE u1.t1 TO u2; 划分逻辑集群后,相当于在原来物理集群的基础上,再增加一层逻辑集群(NODE GROUP)的权限隔离。所以跨逻辑集群访问数据,首先要授权用户有逻辑集群(NODE GROUP层)权限,其次是SCHEMA权限,最后是单张表TABLE权限。如果没有授予逻辑集群的权限,会提示类似permission denied for node group xx的错误信息。 再次切换到u2用户,查询u1.t1表,查询成功,逻辑集群既实现了数据隔离,又可以在用户授权后进行跨逻辑集群访问。 1 2 SET ROLE u2 PASSWORD '{password}'; SELECT * FROM u1.t1;