一、概述
目前暂不支持统一读写分离地址,即自动分离读请求与写请求。只读实例需要通过单独的 IP、PORT 来访问。
注意:说明:
二、基本概念
·RO 组:带有负载均衡功能的只读实例组。若 RO 组内有多个只读实例,可将用户读请求量均匀分配到组内的每个只读实例上。且 RO 组会对外提供 IP、PORT 供访问数据库。
·只读实例:可以支持读请求的单节点(无从机)实例。只读实例无法单独存在,每个只读实例都属于某个 RO 组。
三、基础架构
只读实例将主实例(源数据库)的更改同步到所有只读实例中。只读实例均采用单节点(不含备机)架构,若只读实例宕机,我们将不断的尝试恢复,若需要更高的可用性,你可以选择 RO 组。
云数据库 SQL Server 的版本不同,只读实例后台架构和技术略有不同:
·2017 Enterprise 以下的版本采用发布订阅方式构建只读实例。
注意:在该模式下将无法同步主实例上无主键的表,用户可通过以下代码查询主实例上是否存在无主键的表:
use dbnameselect 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 版实例暂不支持只读实例。
·暂不支持金融区实例扩展只读实例,如有需要扩展,请参见 发布与订阅。
·只读实例不支持备份以及回档功能。
·不支持数据迁移至只读实例。
·只读实例不支持创建/删除数据库,如有需要请在主实例上操作。
·只读实例不支持创建/删除账号,不支持为账号授权以及修改账号及密码,如有需要请在主实例上操作。