You need to enable JavaScript to run this app.
导航

只读实例简介

最近更新时间2024.01.04 14:01:32

首次发布时间2024.01.03 21:45:53

只读实例主要用于分担主实例的读取压力。在数据库存在大量的读请求,主实例无法同时满足大量读和写的请求压力时,您可以为主实例创建只读实例,从而降低主实例的读取压力,提高系统的整体处理能力。本文介绍只读实例的应用场景、注意事项和主实例之间的区别对比等信息。

计费

只读实例的计费方式、生命周期等和主实例的计费保持一致。关于计费的详细信息,请参见产品计费

应用场景

只读实例常用于高并发、大数据量的读取场景,例如:

  • 大数据分析

    面对复杂的查询和报告场景时,通常需要大量的计算资源,可能会影响主实例数据库的性能。

  • 高并发读取

    面对读取请求非常频繁的应用时,可以使用只读实例分担主实例的读取压力,提高系统的吞吐能力。

  • 负载均衡

    在有多个只读实例的情况下,可以通过负载均衡技术将读取请求分发到不同的只读实例,进一步提高系统的处理能力。

  • 报表生成

    报表生成通常需要对数据库进行大量的读取操作,使用只读实例可以减少影响主实例的性能。

注意事项

  • 一个实例最多可创建 5 个只读实例,主实例下的多个只读实例属于相互独立的关系,互不影响。

  • 创建只读实例的时间和主实例的数据量和 I/O 成正比关系,因此在创建只读实例之前,您需要评估和优化主实例的数据量和 I/O 性能,从而减少创建只读实例时影响主实例性能的时间。

  • 只读实例变更中或变更中的主实例不支持创建新的只读实例。只读实例变更中的主实例不支持修改主实例的配置。

  • 只支持在集群版的主实例上创建只读实例,且不支持将主实例切换为只读实例。

  • 只读实例的数据是主实例的数据复制同步过来的,不支持过滤某些数据。

  • 功能相关注意事项:

    • 备份恢复管理:因主实例已有备份,不支持给只读实例进行备份设置和备份恢复操作。

    • 日志管理:不支持开启只读实例的慢日志。

只读实例和主实例的区别

只读实例和主实例是数据库的两种不同类型的实例。主实例用于处理读写操作,负责数据的写入和读取;只读实例用于读取数据,提高数据库的读取性能,并且可以作为主实例的备份和容灾方案。它们之间的主要区别如下表所示。

模块只读实例主实例

功能

  • 只读实例是主实例的一个副本,只能用于读取数据,不支持写入操作。

  • 删除只读实例时,将不进行备份。

  • 主实例主要处理读写操作的主要数据库实例,可以进行数据的增删改查操作。

  • 删除主实例时,将保留一个最终备份。

数据同步只读实例是通过主实例的数据复制功能实现数据同步的,因此可能会存在一定的延迟。主实例负责将数据同步到所有的只读实例上,保证数据的一致性。
访问负载只读实例可以分担主实例的读取请求,提高数据库的读取性能。主实例负责处理所有的读写请求,承担了主要的访问负载。

连接管理

云数据库 SQL Server 提供两种连接地址访问管理只读实例:

  • 系统默认为多个只读实例提供一个统一只读集群连接地址。

  • 系统单独为每个只读实例提供一个只读节点连接地址。

系统为主实例提供一个连接地址,用于访问管理 SQL Server 实例。

可用性主实例和只读实例可以分别部署在不同的可用区,提高数据库的可用性和容灾能力。

FAQ

只读实例的数据同步是否会影响主实例的性能?

  • 创建只读实例时:如果主实例内的库表量较大时,在创建只读实例的阶段可能会影响主实例的 CPU、内存和 I/O 资源。

  • 只读实例运行时:只读实例的数据同步会影响主实例的性能,但通常影响比较小。由于主实例在进行数据写入操作时,会将数据的变更记录到二进制日志中,然后发送给只读实例,只读实例通过读取该日志来同步数据。这个过程会对主实例的 CPU、内存和 I/O 资源的消耗相对较小。

通常情况下,只读实例的数据同步对主实例的性能影响比较小,但是当主实例的写入操作非常频繁或只读实例的数量非常多,那么数据同步可能会对主实例的性能产生较大影响。因此,在使用只读实例时,需根据实际的业务需求和系统环境合理配置只读实例的数量,从而达到最优的性能和成本效果。

如何判断需要创建几个只读实例保证系统的最优性能?

确定需要配置多少只读实例以保证系统最优性能,主要取决于以下几个因素:

  • 读取负载

    当您的应用有大量的读取操作,而且主实例无法满足这些读取请求的处理能力时,则需要配置多个只读实例来分担读取负载。

  • 性能监控

    您可以通过对主实例的性能监控,了解主实例的 CPU、内存和 I/O 资源的使用情况。如果主实例的资源使用率持续高位,则需要配置只读实例来分担负载。

  • 业务需求

    根据业务需求来确定只读实例的数量。例如,当您需要进行大数据分析或报表生成等操作时,则需要配置多个只读实例来提供足够的计算资源。

  • 成本考虑

    配置多个只读实例的同时成本也会增加,因此只读实例的数量则需要根据您的预算来决定。

创建多少个只读实例需要根据读取负载、性能监控、业务需求和成本考虑等多个因素来综合决定。如果不确定需要创建几个只读实例,您可以先创建少量的只读实例,然后根据实际的性能和负载情况逐步调整。

什么情况下需要增加主实例的配置,而不是只增加只读实例?

是否需要增加主实例的配置,需要根据实际的负载情况、资源使用情况和业务需求来决定。通常在以下情况下需要增加主实例配置而不是只增加只读实例:

  • 写入负载高

    只读实例主要用于处理读取请求,当您的应用有大量的写入请求时,如果只增加只读实例的数量可能无法显著提高系统性能。在这种情况下,则需要增加主实例的配置,例如增加 CPU、内存或存储空间,以提高写入性能。

  • 主实例资源不足

    如果主实例的 CPU、内存或 I/O 资源使用率持续高位,则需要增加主实例的配置,以提供更多的资源来处理请求。

  • 数据同步延迟

    如果只读实例的数据同步延迟较大,可能会影响到读取请求的准确性。在这种情况下,增加主实例的配置有助于提高数据同步的速度,从而减小数据同步延迟的情况。

  • 业务需求

    根据具体的业务需求,按需增加主实例的配置。例如,当您需要进行大数据处理或实时分析等操作时,则需要更强大的主实例来提供足够的计算资源。