操作场景
云数据库 SQL Server 支持用户创建一个或多个只读实例组成只读实例 RO 组,适用于读写分离和一主多从应用场景,可显著提高用户数据库的读负载能力。
说明:
RO 组中只有一个只读实例的情况会存在单点风险,且此 RO 组不会计入云数据库 SQL Server 服务的整体可用性计算中,单个只读实例不提供可用性 SLA 保证,建议 RO 组中至少选购2个只读实例,来保证 RO 组的可用性。
前提条件
操作步骤
创建只读实例 RO 组
1. 登录 SQL Server 控制台,在实例列表,单击实例 ID 或操作列的管理,进入详情页。
2. 在实例详情页,单击拓扑图中只读实例区域的“+”,进入购买页。
3. 在购买页,选择只读实例的相应配置,确认无误后,单击立即购买购买只读实例。
说明:
如果指定 RO 组选项配置为新建RO组,则需要在购买界面中填写新建的 RO 组的以下基本信息。
设置 RO 组名称:RO 组名称不要求唯一。支持长度小于60的中文、英文、数字、
-
、_
、.
。延时超限剔除:是否启动剔除策略。被剔除的实例权重自动设置为0。若只读实例延迟超过阈值将被剔除,且实例状态为停服同步中、权重为0,当只读实例延迟时间小于阈值时会重新加入到 RO 组。同时,不管实例是否启用延时超限剔除功能,当只读实例故障被剔除后,待实例修复也会重新加入到 RO 组。
延迟阈值:为只读实例设置延迟超限阈值,超过阈值的只读实例会被剔除 RO 组。
最少保留实例数:组内需要保证的实例下限数,若现有只读实例数小于等于此下限且延迟时间超过阈值,现有只读实例均不被剔除。
指定 RO 组 | 说明 |
系统自动分配(不指定) | 若一次购买多个实例,将为每个实例分配一个独立的 RO 组。权重分配方式默认为系统自动分配。 |
新建 RO 组 | 新建一个 RO 组,若一次购买多个实例,将都分配至这个 RO 组。权重分配方式默认为系统自动分配。 |
已有 RO 组 | 指定一个已有 RO 组,若一次购买多个实例,将都分配至这个 RO 组。权重分配方式与 RO 组设置相同:如果 RO 组设置为系统自动分配,则根据购买规格自动添加 RO 组;如果为自定义分配,则默认权重为零。由于同一 RO 组内网地址相同,因此若是 VPC 网络将共享同一个安全组设置。若指定 RO 组,则在购买时无法再自定义安全组。 |
4. 返回实例列表,实例状态为发货中,待实例状态切换成运行中,则表示只读实例创建成功。
配置只读实例 RO 组
在只读实例 RO 组的配置界面,可以配置只读实例 RO 组的名称、延时超限策略、延时阈值、最少保留实例、读权重等基本信息。
说明:
RO 组内只读实例可使用不同规格,读流量权重可设置。
同一 RO 组内只读实例可以支持不同到期时间和计费方式。
1. 在 实例列表,选择需要设置只读实例 RO 组的主实例,单击实例 ID 或操作列的管理,进入实例管理页面。
2. 在实例管理页面,选择只读实例页,单击配置,进入只读实例 RO 组配置页。
3. 在弹出的对话框,可以对只读实例 RO 组进行详细配置。
RO 组名称:RO 组名称不要求唯一。支持中文、英文、数字、
-
、_
、.
。实例延时超限剔除:是否启动剔除策略。被剔除的实例权重自动设置为0。
延迟阈值:为只读实例设置延迟超限阈值,超过阈值的只读实例会被剔除 RO 组。
最少保留实例数:组内需要保证的实例下限数,若现有只读实例数小于等于此下限且延迟时间超过阈值,现有只读实例均不被剔除。
读权重分配:RO 组支持系统自动分配权重和自定义权重两种权重设置方式,备节点只读地址不参与权重分配。权重输入范围为0 - 100,且必须是整数。系统自动设置 SQL Server 实例的读权重值列表:
实例规格 | 权重 |
内存2000MB | 1 |
内存4000MB | 2 |
内存8000MB | 2 |
内存12000MB | 4 |
内存16000MB | 4 |
内存24000MB | 8 |
内存32000MB | 8 |
内存48000MB | 10 |
内存64000MB | 12 |
内存96000MB | 14 |
内存128000MB | 16 |
内存244000MB | 26 |
内存488000MB | 50 |
重新负载均衡:
关闭重新负载均衡时,修改权重时仅对新增负载生效,不改变原长连接所访问的只读实例,不会引起数据库闪断。
开启重新负载均衡时,数据库会有秒级闪断来断开所有连接,新增连接将按照设置的权重均衡负载。
开启/关闭只读组外网地址
1. 登录 SQL Server 控制台。
2. 选择地域,在实例列表找到需要开启只读组外网地址的主实例,单击其实例 ID 或操作列的管理。
3. 在实例详情页选择只读实例页,然后在 RO 组下的外网地址后单击开启或关闭。
4. 在开启或关闭外网设置窗口下阅读提示,单击确定,更详细的操作请参见 开启或关闭外网地址。
销毁和删除只读实例 RO 组
RO 组不提供手动删除功能。
RO 组随着组内最后一个只读实例被彻底销毁而自动删除。
不支持保留空 RO 组。
相关 API
API | 描述 |
接口(CreateReadOnlyDBInstances)用于添加只读副本实例。 | |
接口(CreateCloudReadOnlyDBInstances)用于添加只读副本实例(云服务器版本)。 | |
接口(DescribeReadOnlyGroupDetails)用于查询只读组详情。 | |
接口(DescribeReadOnlyGroupList)用于查询只读组列表。 | |
接口(DescribeReadOnlyGroupByReadOnlyInstance)用于通过只读副本实例 ID 查询其所在的只读组。 | |
接口(ModifyReadOnlyGroupDetails)用于修改只读组详情。 | |
接口(DescribeReadOnlyGroupAutoWeight)用于查询只读组的自动权重分配结果,在(BalanceReadOnlyGroup)接口中按照自动权重分配结果进行路由权重分配。 | |
接口(BalanceReadOnlyGroup)用于根据预定义的权重平衡每个只读实例的路由权重。 | |
接口(RecycleReadOnlyGroup)立即回收只读组的资源,只读组占用的 vip 等资源将立即释放且不可找回。 |