您可以通过创建只读实例满足大量的数据库读取需求,增加应用的吞吐量。RDS SQL Server基于源生AlwaysOn技术,通过物理复制方式复制主实例生成只读实例,数据与主实例一致,主实例的数据更新也会自动同步到所有只读实例。

关于只读实例的更多介绍,请参见SQL Server只读实例简介

前提条件

您已创建SQL Server主实例,且主实例满足以下条件:
  • 实例版本:2017、2019企业集群版
  • 实例系列:集群版
  • 实例存储类型:ESSD云盘
说明 创建SQL Server只读实例前,请在基本信息页面确认主实例版本或系列等。如果主实例为基础版或高可用版,且需要创建只读实例时,您可选择将原实例升级为企业集群版后再创建只读实例。具体操作,请参见升级实例版本

注意事项

  • 只能在主实例内创建只读实例,不能将已有实例切换为只读实例。
  • 由于创建只读实例时是从备实例复制数据,因此不会影响主实例。
  • 最多创建7个只读实例。
  • 因主实例已有备份,只读实例暂不支持备份设置以及手动发起备份。
  • 不支持通过备份文件或任意时间点创建临时实例,不支持通过备份集覆盖实例。
  • 创建只读实例后,主实例将不支持通过备份集直接覆盖实例来恢复数据。
  • 不支持将数据迁移至只读实例。
  • 不支持创建和删除数据库。
  • 不支持创建和删除账号,不支持为账号授权以及修改账号密码功能。
  • 只读实例创建时间与主实例数据量以及主实例IO性能正相关。
  • 只读实例存储空间不能低于主实例。只读实例存储空间范围详情,请参见RDS SQL Server只读实例规格列表

费用说明

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

创建只读实例

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 实例分布区域的只读实例右侧单击添加
    说明 旧版控制台请在右侧单击添加只读实例
    添加只读实例
  3. 设置以下参数,单击下一步:实例配置
    类别 说明
    存储类型
    • SSD云盘:基于分布式存储架构的弹性块存储设备。将数据存储于SSD云盘,即实现了计算与存储分离。
    • ESSD云盘:增强型(Enhanced)SSD云盘,是阿里云全新推出的超高性能云盘产品。ESSD云盘基于新一代分布式块存储架构,结合25GE网络和RDMA技术,为您提供单盘高达100万的随机读写能力和更低的单路时延。ESSD云盘分为如下三类:
      • ESSD PL1云盘:PL1性能级别的ESSD云盘。
      • ESSD PL2云盘:相比PL1,PL2性能级别的ESSD云盘大约可提升2倍IOPS和吞吐量。
      • ESSD PL3云盘:相比PL1,PL3性能级别的ESSD云盘最高可提升20倍IOPS、11倍吞吐量,适合对极限并发I/O性能要求极高、读写时延极稳定的业务场景。

    更多信息,请参见存储类型

    可用区 可用区是地域中的一个独立物理区域。
    实例规格
    • 通用规格(入门级):共享/通用型的实例规格,独享被分配的内存和I/O资源,与同一服务器上的其他通用型实例共享CPU和存储资源。
    • 独享规格(企业级):独享或独占型的实例规格。独享型指独享被分配的CPU、内存、存储和I/O资源。独占型是独享型的顶配,独占整台服务器的CPU、内存、存储和I/O资源。
    说明
    • 每种规格都有对应的CPU核数、内存、最大连接数和最大IOPS。详情请参见主实例规格列表
    • 为保证数据同步有足够的I/O性能支撑,建议只读实例的规格(内存)不小于主实例。
    存储空间 存储空间包括数据空间、系统文件空间、Binlog文件空间和事务文件空间。调整存储空间时最小单位为5GB。
    说明
    • 只读实例存储空间不能低于主实例。
    • 本地SSD盘的独享套餐等规格由于资源独享的原因,存储空间大小和实例规格绑定。详情请参见主实例规格列表
  4. 设置以下参数。
    类别 说明
    网络类型
    • 经典网络:传统的网络类型。
    • 专有网络:也称为VPC(Virtual Private Cloud)。VPC是一种隔离的网络环境,安全性和性能均高于传统的经典网络。选择专有网络时您需要选择对应的VPC主节点交换机
    说明 与主实例网络类型一致,如果是专有网络,请确保只读实例的VPC与主实例的VPC一致。
    资源组 选择默认或自定义的资源组,方便实例管理。
  5. 单击下一步:确认订单,确认参数配置,选择购买量,勾选服务协议,单击去支付完成支付。

几分钟后,该只读实例即创建成功。

查看只读实例

  • 在实例列表中查看只读实例
    1. 登录RDS管理控制台,在左侧单击实例列表,然后在上方选择地域。
    2. 在实例列表中找到只读实例,单击该只读实例的ID。
  • 在主实例的基本信息页面查看只读实例
    1. 登录RDS管理控制台,在左侧单击实例列表,然后在上方选择地域。
    2. 在实例列表中找到主实例,单击该主实例的ID。
    3. 在主实例的基本信息页面,把鼠标悬停于只读实例的数量上,单击只读实例的ID。查看只读实例

在集群管理页面查看只读实例

前提条件

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

操作步骤

  1. 登录RDS管理控制台
  2. 在实例列表中找到主实例,单击该主实例的ID。
  3. 在左侧导航栏中,单击集群管理
  4. 找到只读实例,单击该只读实例的ID。

相关API

API 描述
创建只读实例 创建RDS只读实例

常见问题

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

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

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

    A:不支持。

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

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

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

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

  • Q:事务日志的清除机制是怎样的?
    A:RDS SQL Server事务日志分为两个阶段:
    • 日志截断:通常每次的日志备份会自动做日志截断。但如果出现长事务、同步等待或内核相关问题时,截断会无法生效。
    • 日志收缩:每日的常规备份包括日志收缩,您也可以通过控制台进行日志收缩,具体操作,请参见收缩事务日志
  • Q:如何理解只读实例的复制原理?若出现复制延迟,一般出现原因以及解决方法是什么?如何查看复制延迟?

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

    通常出现复制延迟原因如下:
    • 原因:主实例规格大,只读实例规格过小,导致主备延迟过大。只读实例规格过小,大主库拖小只读,导致主备延迟过大。

      解决方法:升级只读实例规格,更多信息,请参见变更配置

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

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

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

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

    您可通过SQL Server CloudDBA进行诊断查看或通过如下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