创建SQL Server只读实例

更新时间:2025-04-28 02:11:50

当您面临数据库读取压力大幅增加时,可以通过创建一个或多个只读实例来扩展读取能力,提高应用的整体吞吐量。RDS SQL Server基于源生AlwaysOn技术,通过物理复制方式复制主实例生成只读实例,只读实例数据与主实例保持一致,并且主实例的数据更新也会自动同步到所有只读实例中。

说明

前提条件

SQL Server只读实例需要在主实例中创建,且主实例必须满足以下条件:

  • 实例版本:2017 企业集群版、2019 企业集群版、2022 企业集群版

  • 实例系列:集群系列

  • 实例存储类型:ESSD云盘、高性能云盘

  • 计费方式:包年包月或按量付费(不支持Serverless实例

说明
  • 创建SQL Server只读实例前,请在基本信息页面确认主实例版本或系列等。如果还没有主实例,请先根据以上要求创建主实例

  • 如果主实例为基础系列或高可用系列,且需要创建只读实例时,您可选择将原实例升级为企业集群系列后再创建只读实例。

注意事项

  • 只能在主实例内创建只读实例,不支持将已有主实例切换为只读实例。

  • 由于创建只读实例实际上是从备实例复制数据,因此不会影响主实例。

  • 只读实例数量:一个主实例下最多可创建7个只读实例。

  • 实例备份:因主实例已有备份,只读实例暂不支持备份设置以及手动发起备份;不支持通过备份文件或任意时间点创建临时实例;不支持通过备份集覆盖实例;创建只读实例后,主实例将不支持通过备份集直接覆盖实例来恢复数据。

  • 数据迁移:不支持将数据迁移至只读实例。

  • 数据库管理:不支持创建和删除数据库。

  • 账号管理:不支持创建和删除账号,不支持为账号授权以及修改账号密码功能。

  • 实例创建时间:创建只读实例所需的时间与主实例的数据量和IO性能成正相关。因此,在创建只读实例前,建议对主实例的数据量和IO性能进行评估和优化,以减少创建时间。

  • 存储空间:只读实例存储空间不能低于主实例。

费用说明

创建只读实例会产生费用,支持包年包月和按量付费两种方式计费。更多详情,请参见只读实例价格

说明

实例为Serverless计费方式时,不支持创建只读实例。

创建只读实例

您可以通过RDS控制台或API(CreateReadOnlyDBInstance)创建只读实例。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 实例分布区域的只读实例右侧单击添加

    image.png

  3. 配置基础资源,包含计费方式、存储类型、可用区等,单击下一步:实例配置

    1. 选择计费方式

      计费方式

      建议

      优点

      计费方式

      建议

      优点

      包年包月

      长期使用RDS实例,请选择包年包月(一次性付费),并在页面左下角选择购买时长

      包年包月比按量付费更实惠,且购买时长越长,折扣越多。

      按量付费

      短期使用RDS实例,请选择按量付费(按小时付费)。

      您可以先创建按量付费实例,确认实例符合要求后转包年包月

      可随时释放实例,停止计费。

    2. 选择数据库存储类型

      支持的存储类型详情,请参见存储类型

    3. 选择实例所在的可用区

      说明
      • 可用区是地域中的一个独立物理区域,同一地域不同可用区没有实质性区别。

      • ECS访问同可用区RDS的性能比访问同地域其它可用区RDS更好,但差别较小。

    4. 选择实例规格

      选择分类(独享或通用)和具体规格(CPU核数、内存、最大连接数等)。

      分类

      说明

      特点

      分类

      说明

      特点

      通用规格

      独享:内存和I/O

      共享:CPU和存储

      价格低,性价比高。

      独享规格

      独享:CPU、内存、存储和I/O

      说明

      独占型是独享型的顶配,独占整台服务器的CPU、内存、存储和I/O。

      性能更好更稳定。

      说明
    5. 选择存储空间

      存储空间包括数据空间、系统文件空间、日志文件空间和事务文件空间。存储空间范围(最小值和最大值)与前面选择的实例规格和存储类型有关。您可以调整存储空间,最少增减5 GB。

      说明
  4. 配置实例资源,包含网络类型、交换机、资源组等,单击下一步:确认订单

    1. 网络类型固定配置为专有网络

    2. 选择VPC主节点交换机

      建议选择与ECS实例相同的VPC。ECS实例与RDS实例位于不同VPC时,无法内网互通。

      说明

      VPC相同,交换机不同,ECS实例与RDS实例也可以内网互通。

    3. 设置更多自定义参数。如无特殊需求,可保留默认值

      参数

      说明

      参数

      说明

      实例释放保护

      计费方式按量付费时,您可以为实例开启实例释放保护,防止实例被意外释放。

      资源组

      选择默认或自定义的资源组,方便实例管理。

      实例描述

      自定义,长度为2~255个字符,以大小字母或中文开头,可包含数字,下划线(_)或短划线(-)。

      系统字符集排序规则

      默认为主实例的系统字符集排序规则。

      标签

      您可以为实例绑定标签,对实例进行分类管理。

  5. 确认参数配置购买量购买时长(仅包年包月实例),勾选服务协议,单击去支付,并完成支付。

    说明
    • 对于包年包月实例,建议选中到期自动续费,避免因忘记续费而导致业务中断。

    • 实例创建需要约1~10分钟。请刷新页面查看。

查看只读实例

您可以在实例列表页面、目标实例的集群管理页面、目标实例的基本信息页面查看只读实例具体信息。

实例列表页面查看
基本信息页面查看
集群管理页面查看
  1. 登录RDS管理控制台,在左侧单击实例列表,然后在上方选择地域。

  2. 在实例列表中找到只读实例,单击该只读实例的ID。

您可以在主实例的基本信息页面查看只读实例。

  1. 登录RDS管理控制台,在左侧单击实例列表,然后在上方选择地域。

  2. 在实例列表中找到主实例,单击该主实例的ID。

  3. 在主实例的基本信息页面,把鼠标悬停于只读实例的数量上,单击只读实例的ID。

    image.png

前提条件

已在集群管理页面开通读写分离

操作步骤

  1. 登录RDS管理控制台

  2. 在实例列表中找到主实例,单击该主实例的ID。

  3. 在左侧导航栏中,单击集群管理

  4. 找到只读实例,单击该只读实例的ID。

下一步

只读实例创建完成后,需要开通读写分离连接并配置只读地址的权重比,系统将根据已配置的权重比例处理读请求。

常见问题

只读实例的计费方式可以转化吗?

可以。具体操作,请参见按量付费转包年包月包年包月转按量付费

变更只读实例的配置、释放只读实例、转化只读实例计费方式会影响主实例吗?

不会。

主实例上创建的账号在只读实例上可以用吗?

主实例创建的账号会同步到只读实例,只读实例无法管理账号。账号在只读实例上只能进行读操作,不能进行写操作。

如果主实例出现故障,是否支持把只读实例转变为常规实例?

不支持。

只读实例上的数据支持手动备份或自动备份吗?

由于备份在主实例中进行,只读实例暂不支持备份设置以及手动发起备份。

只读实例是否支持并行复制?

支持,RDS SQL Server默认为并行复制。

事务日志的清除机制是怎样的?

RDS SQL Server事务日志分为两个阶段:

  • 日志截断:通常每次的日志备份会自动做日志截断。但如果出现长事务、同步等待或内核相关问题时,截断会无法生效。

  • 日志收缩:每日的常规备份包括日志收缩,您也可以通过控制台进行日志收缩

如何理解只读实例的复制原理?若主实例和只读实例间出现复制延迟,一般出现原因以及解决方法是什么?如何查看复制延迟?

创建只读实例时会从备实例复制数据,数据与主实例一致,主实例的数据更新也会自动同步到所有只读实例。

通常出现复制延迟原因如下:

  • 原因:主实例规格大,只读实例规格过小,导致主备延迟过大。只读实例规格过小,大主库拖小只读,导致主备延迟过大。

    解决方法:升级只读实例规格

  • 原因:存在并发的大事务导致延迟。

    解决方法:检查处理存在的大事务,一般存在大事务原因可能包括锁问题、慢SQL问题以及临时查询未提交问题等。

  • 原因:内核Bug导致的复制异常。

    解决方法:建议升级实例大版本内核小版本解决。

您可通过SQL Server 自治服务进行诊断查看或通过如下SQL查看:

SELECT
    ag.name AS [availability_group_name]
    , d.name AS [database_name]
    , ar.replica_server_name AS [replica_instance_name]
    , drs.truncation_lsn
    , drs.log_send_queue_size
    , drs.redo_queue_size
FROM
    sys.availability_groups ag
    INNER JOIN sys.availability_replicas ar
        ON ar.group_id = ag.group_id
    INNER JOIN sys.dm_hadr_database_replica_states drs
        ON drs.replica_id = ar.replica_id
    INNER JOIN sys.databases d
        ON d.database_id = drs.database_id
WHERE drs.is_local=0
ORDER BY
    ag.name ASC, d.name ASC, drs.truncation_lsn ASC, ar.replica_server_name ASC

创建RDS SQL Server企业集群版实例时没找到只读节点的选项?

只读实例需要在主实例中单独添加,请先创建符合以下条件的主实例,然后再参见本文操作步骤,在主实例中添加只读实例。

  • 主实例版本:2017企业集群版、2019企业集群版、2022企业集群版

  • 主实例系列:集群系列

  • 主实例存储类型:ESSD云盘、高性能云盘

  • 主实例计费方式:包年包月或按量付费(不支持Serverless实例

  • 本页导读 (1)
  • 前提条件
  • 注意事项
  • 费用说明
  • 创建只读实例
  • 查看只读实例
  • 下一步
  • 常见问题