# 教程：设置只读计算组并绑定用户
#### 场景介绍
如果在不同时段内业务流量差异非常大，3节点集群又无法满足高峰期的吞吐量要求，但扩容至6节点又存在资源浪费或费用较高问题。用户可通过本章教程再结合[弹性增删DWS计算组（存算分离集群）](https://support.huaweicloud.com/mgtg-dws/dws_01_7250.html)功能，实现类似于"晚上低峰期3节点，白天6节点，高峰期9节点"的弹性扩展功能。
本章演示了一组新扩容计算组（无业务数据）配置为只读，并将部分用户切换到此只读计算组上，实现用户创建的表都仍然在其原始的计算组上，但计算逻辑都切到只读计算组上执行效果。
#### 前提条件
参见[创建DWS存算分离集群](https://support.huaweicloud.com/mgtg-dws/dws_01_0219.html)章节创建6个节点的集群，并已划分为两个计算组v3_logical和lc1，其中lc1暂无业务数据。
#### 配置只读计算组，并将用户切换到只读计算组上
1. 以系统管理员dbadmin连接数据库，执行以下SQL语句查看计算组创建成功。 
   ```
   SELECT group_name FROM PGXC_GROUP;
   ```
   
   
2. 设置计算组lc1为只读。 
   ```
   SET xc_maintenance_mode=on;
   ALTER NODE GROUP lc1 SET READ ONLY;
   SET xc_maintenance_mode=off;
   ```
   
   
3. 创建用户。 
   ```
   create user testuser password 'testuser12#$%';
   ```
   
   
4. 绑定用户到计算组lc1，如下语句中的testuser、lc1等变量需结合实际情况替换。 
   首先我们需要找到用户的NodeGroup，如果能查到记录，将其设置到该用户的default_storage_nodegroup上，以便该用户创建的表都仍然在其原始的NodeGroup上。
   ```
   SELECT nodegroup FROM pg_user WHERE usename='testuser';
   ALTER USER testuser SET default_storage_nodegroup='nodegroup'; //这里nodegroup需替换为上述SQL查到的NodeGroup名
   ```
   若查不到记录，直接进行以下语句将用户绑定到新的只读计算组上，这样该用户的计算逻辑都会切到只读计算组上执行。
   ```
   ALTER USER testuser NODE GROUP lc1;
   ALTER USER testuser SET enable_cudesc_streaming=ON;
   ```
   
   
 
