只读实例主要用于分担主实例的读取压力。在数据库存在大量的读请求,主实例无法同时满足大量读和写的请求压力时,您可以为主实例创建只读实例,从而降低主实例的读取压力,提高系统的整体处理能力。本文介绍只读实例的应用场景、注意事项和主实例之间的区别对比等信息。
只读实例的计费方式、生命周期等和主实例的计费保持一致。关于计费的详细信息,请参见产品计费。
只读实例常用于高并发、大数据量的读取场景,例如:
大数据分析
面对复杂的查询和报告场景时,通常需要大量的计算资源,可能会影响主实例数据库的性能。
高并发读取
面对读取请求非常频繁的应用时,可以使用只读实例分担主实例的读取压力,提高系统的吞吐能力。
负载均衡
在有多个只读实例的情况下,可以通过负载均衡技术将读取请求分发到不同的只读实例,进一步提高系统的处理能力。
报表生成
报表生成通常需要对数据库进行大量的读取操作,使用只读实例可以减少影响主实例的性能。
一个实例最多可创建 5 个只读实例,主实例下的多个只读实例属于相互独立的关系,互不影响。
创建只读实例的时间和主实例的数据量和 I/O 成正比关系,因此在创建只读实例之前,您需要评估和优化主实例的数据量和 I/O 性能,从而减少创建只读实例时影响主实例性能的时间。
只读实例变更中或变更中的主实例不支持创建新的只读实例。只读实例变更中的主实例不支持修改主实例的配置。
只支持在集群版的主实例上创建只读实例,且不支持将主实例切换为只读实例。
只读实例的数据是主实例的数据复制同步过来的,不支持过滤某些数据。
功能相关注意事项:
备份恢复管理:因主实例已有备份,不支持给只读实例进行备份设置和备份恢复操作。
日志管理:不支持开启只读实例的慢日志。
只读实例和主实例是数据库的两种不同类型的实例。主实例用于处理读写操作,负责数据的写入和读取;只读实例用于读取数据,提高数据库的读取性能,并且可以作为主实例的备份和容灾方案。它们之间的主要区别如下表所示。
模块 | 只读实例 | 主实例 |
---|---|---|
功能 |
|
|
数据同步 | 只读实例是通过主实例的数据复制功能实现数据同步的,因此可能会存在一定的延迟。 | 主实例负责将数据同步到所有的只读实例上,保证数据的一致性。 |
访问负载 | 只读实例可以分担主实例的读取请求,提高数据库的读取性能。 | 主实例负责处理所有的读写请求,承担了主要的访问负载。 |
连接管理 | 云数据库 SQL Server 提供两种连接地址访问管理只读实例:
| 系统为主实例提供一个连接地址,用于访问管理 SQL Server 实例。 |
可用性 | 主实例和只读实例可以分别部署在不同的可用区,提高数据库的可用性和容灾能力。 |
创建只读实例时:如果主实例内的库表量较大时,在创建只读实例的阶段可能会影响主实例的 CPU、内存和 I/O 资源。
只读实例运行时:只读实例的数据同步会影响主实例的性能,但通常影响比较小。由于主实例在进行数据写入操作时,会将数据的变更记录到二进制日志中,然后发送给只读实例,只读实例通过读取该日志来同步数据。这个过程会对主实例的 CPU、内存和 I/O 资源的消耗相对较小。
通常情况下,只读实例的数据同步对主实例的性能影响比较小,但是当主实例的写入操作非常频繁或只读实例的数量非常多,那么数据同步可能会对主实例的性能产生较大影响。因此,在使用只读实例时,需根据实际的业务需求和系统环境合理配置只读实例的数量,从而达到最优的性能和成本效果。
确定需要配置多少只读实例以保证系统最优性能,主要取决于以下几个因素:
读取负载
当您的应用有大量的读取操作,而且主实例无法满足这些读取请求的处理能力时,则需要配置多个只读实例来分担读取负载。
性能监控
您可以通过对主实例的性能监控,了解主实例的 CPU、内存和 I/O 资源的使用情况。如果主实例的资源使用率持续高位,则需要配置只读实例来分担负载。
业务需求
根据业务需求来确定只读实例的数量。例如,当您需要进行大数据分析或报表生成等操作时,则需要配置多个只读实例来提供足够的计算资源。
成本考虑
配置多个只读实例的同时成本也会增加,因此只读实例的数量则需要根据您的预算来决定。
创建多少个只读实例需要根据读取负载、性能监控、业务需求和成本考虑等多个因素来综合决定。如果不确定需要创建几个只读实例,您可以先创建少量的只读实例,然后根据实际的性能和负载情况逐步调整。
是否需要增加主实例的配置,需要根据实际的负载情况、资源使用情况和业务需求来决定。通常在以下情况下需要增加主实例配置而不是只增加只读实例:
写入负载高
只读实例主要用于处理读取请求,当您的应用有大量的写入请求时,如果只增加只读实例的数量可能无法显著提高系统性能。在这种情况下,则需要增加主实例的配置,例如增加 CPU、内存或存储空间,以提高写入性能。
主实例资源不足
如果主实例的 CPU、内存或 I/O 资源使用率持续高位,则需要增加主实例的配置,以提供更多的资源来处理请求。
数据同步延迟
如果只读实例的数据同步延迟较大,可能会影响到读取请求的准确性。在这种情况下,增加主实例的配置有助于提高数据同步的速度,从而减小数据同步延迟的情况。
业务需求
根据具体的业务需求,按需增加主实例的配置。例如,当您需要进行大数据处理或实时分析等操作时,则需要更强大的主实例来提供足够的计算资源。