只读实例概述

最近更新时间:2024-08-23 16:27:01

我的收藏

概述

在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至对业务产生影响。为实现云数据库 SQL Server 读能力的弹性扩展,分担数据库读压力,您可以创建一个或多个只读实例,利用只读实例满足大量的数据库读取需求。
目前暂不支持统一读写分离地址,即自动分离读请求与写请求。只读实例需要通过单独的 IP、PORT 来访问。
说明:
单节点(云盘)实例不支持添加只读实例。

基本概念

RO 组:带有负载均衡功能的只读实例组。若 RO 组内有多个只读实例,可将用户读请求量均匀分配到组内的每个只读实例上。且 RO 组会对外提供 IP、PORT 供访问数据库。
只读实例:可以支持读请求的单节点(无从机)实例。只读实例无法单独存在,每个只读实例都属于某个 RO 组。

基础架构

只读实例将主实例(源数据库)的更改同步到所有只读实例中。只读实例均采用单节点(不含备机)架构,若只读实例宕机,我们将不断的尝试恢复,若需要更高的可用性,您可以选择 RO 组。
云数据库 SQL Server 的版本不同,只读实例后台架构和技术略有不同:
2017 Enterprise 以下的版本采用发布订阅方式构建只读实例。


注意:
在该模式下将无法同步主实例上无主键的表,用户可通过以下代码查询主实例上是否存在无主键的表:
use dbname
select name from sys.sysobjects where xtype='U' and id not in(select parent_obj from sys.sysobjects where xtype='PK')
如需实现无主键表的只读扩展,建议使用双节点 2017 Enterprise 版。
双节点 2017 Enterprise 及以上版本采用 Always on 方式构建只读实例,保证数据同步的高效和稳定。



功能优势

RO 组模式

连接 RO 组的 VIP 即可对只读实例进行读操作,可降低维护成本。同时,您可以在同一 RO 组内添加只读实例的个数,即可不断扩展系统的处理能力,同时确保只读实例具备高可用,应用程序无需做任何修改。

跨可用区和地域扩展

云数据库 SQL Server 支持跨可用区和地域添加只读实例,为业务就近访问提供了低延迟、高效率、稳定的一站式解决方案。

自动剔除

集群管理模块将自动对只读实例进行检查,当发现某个只读实例出现宕机或者延迟超过阈值时,将不再分配读请求给该实例,读请求在剩余的健康实例间进行分配。以此确保单个只读实例发生故障时,不会影响应用的正常访问。当实例被修复后,会自动将该实例纳回请求分配体系内。

功能限制

一个主实例最多可以创建5个只读实例。
Standard 版实例暂不支持只读实例。
暂不支持金融区实例扩展只读实例,如有需要扩展,请参见 发布与订阅
只读实例不支持备份以及回档功能。
不支持数据迁移至只读实例。
只读实例不支持创建/删除数据库,如有需要请在主实例上操作。
只读实例不支持创建/删除账号,不支持为账号授权以及修改账号及密码,如有需要请在主实例上操作。