首页 > 数据库 >腾讯云数据库SQL Server只读实例

腾讯云数据库SQL Server只读实例

时间:2023-03-19 18:01:23浏览次数:36  
标签:只读 数据库 Server 实例 SQL RO

概述

在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至对业务产生影响。为实现云数据库 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 支持跨可用区和地域添加只读实例,为业务就近访问提供了低延迟、高效率、稳定的一站式解决方案。

自动剔除

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

功能限制

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

FAQ

云数据库 SQL Server 支持读写分离吗?

云数据库 SQL Server 目前暂不支持统一读写分离地址,即自动分离读请求与写请求。只读实例当前需要通过单独的 IP、PORT 来访问,创建只读实例后,您需要在应用程序中分别配置主实例和每个只读实例的连接地址,才能实现将写请求发往主实例而将读请求发往只读实例。


云数据库 SQL Server 如何创建只读实例 RO 组?

云数据库 SQL Server 支持用户创建一个或多个只读实例组成只读实例 RO 组,适用于读写分离和一主多从应用场景,可显著提高用户数据库的读负载能力。


云数据库 SQL Server 主库到只读的同步延迟多少?

2017版本以下采用复制同步,延迟在3秒 - 5秒。如果采用2017/2019版本的 Always On 副本只读,同步延迟在1秒 - 2秒。

不同版本的只读实例是否具有差异性?如果业务需要用到只读,该如何选择云数据库 SQL Server 的版本?

不同版本的只读实例具有差异性,如果业务需要用到只读,建议采用2017版本以上的数据库实例,原因如下:

  • 2017以下版本采用的是发布订阅方式构建只读实例,为对象级同步,同步延迟在3秒 - 5秒,如若使用只读实例,为保证数据同步的高效稳定,建议您先将主实例升级为2017版本以上,再使用只读实例功能。
  • 2017 Enterprise 双节点(原高可用版/集群版)及以上版本采用 Always on 方式构建只读实例,同步延迟在1秒 - 2秒,数据同步更高效更稳定。

标签:只读,数据库,Server,实例,SQL,RO
From: https://blog.51cto.com/lihuansong/6131302

相关文章

  • 【Android】使用 ContentObserver 监控统状态信息
    1前言使用ContentProvider实现跨进程通讯中介绍了自定义ContentProvider,为外界提供操作SQLite的接口。但是大多数情况下,服务端的ContentProvider不需要用户编......
  • 看看这份2023年MySQL终级面试题,提升你的内力,给你面试助力
    1、MySQL中有哪几种锁?(1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。(2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低......
  • svn E230001 Server SSL certificate verification failed certificate issued for a
    title:ServerSSLcertificateverificationfailedcertificateissuedforadifferenthostname,issuerisnottrusteddate:2023-03-1914:58:00categories:踩......
  • CentOs7 安装 Sqlserver
    title:CentOs7安装Sqlserver2019date:2023-03-1914:47:00categories:安装教程tags:SqlserverCentOs7安装Sqlserver2019特别鸣谢哔哩哔哩博主:程序员小......
  • SQL server分页的三种方法
    一、EntityFramework的Linq语句的分页写法:vardatacount=test.OrderBy(t=>t.testID).Skip(pageSize*(pageIndex-1))......
  • sqli-labs安装
    前期所需的准备:sqli-labs安装包sqli-labs下载地址php5.4.45的环境(环境太高可能会导致有些函数无法运行)安装将下载好的zip文件解压到PHPstudy的www目录下打开ph......
  • SQL Server交叉表应用示例
    说明一、建立表主要有三列列:FeeDeptID(科室编号),ItemiD(项目编号),金额FeeDeptID,ItemiD关联其他表二、创建存储过程CreatePROCEDURE存储过程1@fromDatedate, @ToDate......
  • sql join on和不用join区别_图解 SQL 各种 JOIN,太有用了!
    原文地址:https://blog.csdn.net/weixin_39965283/article/details/111390490  前言在各种问答社区里谈及SQL里的各种JOIN之间的区别时,最被广为引用的是CodeProj......
  • 力扣586(MySQL)-订单最多的客户(简单)
    题目:编写一个SQL查询,为下了最多订单的客户查找customer_number。测试用例生成后,恰好有一个客户比任何其他客户下了更多的订单。查询结果格式如下所示。 进阶......
  • 力扣584(MySQL)-寻找用户推荐人(简单)
    题目:给定表 customer ,里面保存了所有客户信息和他们的推荐人。写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。对于上面的示例数据,结果为: ......