首页 > 数据库 >hhdb数据库介绍(9-9)

hhdb数据库介绍(9-9)

时间:2024-11-27 10:21:54浏览次数:5  
标签:dn 02 01 读写 数据库 介绍 hhdb 从库 节点

高可用服务

读写分离

计算节点支持读写分离功能,并且支持配置读写分离权重

读写分离功能说明

要使用读写分离功能,需在数据节点中配置主备存储节点。

读写分离功能默认设置为关闭。开启读写分离功能,可在计算节点的配置文件server.xml中,将strategyForRWSplit属性设置为大于0的值。例如:

<property name="strategyForRWSplit">1</property>

strategyForRWSplit允许设置的值为0,1,2,3。

  • 当设置为0时,读写操作都在主存储节点,也即关闭读写分离。

  • 当设置为1时,代表可分离的读请求发往所有可用存储节点(包含主存储节点),写操作与不可分离的读请求在主存储节点上进行。

  • 当设置为2时,代表可分离的读请求发往可用的备存储节点,写操作与不可分离的读请求在主存储节点上进行。当设置为3时,代表事务(非XA模式)中发生写前的读请求与自动提交的读请求发往可用的备存储节点。其余请求在主存储节点上进行。

server.xml中可以配置读写分离中可读从库最大延迟时间,参数名:maxLatencyForRWSplit,单位ms,默认配置的延迟时间为1秒。当存储节点数据同步延迟大于设置的延迟时间或者出现故障时计算节点会摘除该存储节点并阻止参与读操作,此时由其他正常存储节点承担可分离的读任务,直至延迟重新追上才将摘除的存储节点加回读集群。

当开启读写分离时,即使心跳未开启,也会强制进行延迟检测。延迟检测周期可在server.xml中通过参数latencyCheckPeriod配置。

计算节点读写分离对应用研发者和数据库管理员完全透明,不要求研发者在SQL执行时添加HINT或某些注解;当然,也支持使用HINT的方式显式指定读取主机或从机。

指定SQL语句在主存储节点上执行:

/*!hotdb:rw=master*/select * from customer;

指定SQL语句在从库存储节点上执行:

/*!hotdb:rw=slave*/select * from customer;

读写分离权重配置

计算节点支持读写分离的同时,可以通过server.xml中配置参数控制主从读的比例。进入计算节点的安装目录的conf目录下,并编辑server.xml,修改如下相关设置:

<property name="strategyForRWSplit">0</property><!-- 不开启读写分离:0;可分离的读请求发往所有可用数据源:1;可分离的读请求发往可用备数据源:2;事务中发生写前的读请求发往可用备数据源:3-->
<property name="weightForSlaveRWSplit">50</property><!-- 从机读比例,默认50(百分比),为0时代表该参数无效-->
  • 读写分离策略strategyForRWSplit参数为0时读写操作都在主存储节点,也即关闭读写分离。

  • 读写分离策略strategyForRWSplit参数为1时,代表可分离的读请求发往所有可用存储节点(包含主存储节点),写操作与不可分离的读请求在主存储节点上进行。strategyForRWSplit参数为1时可设置主备存储节点的读比例,设置备存储节点读比例后数据节点下的所有备存储节点均分该比例的读任务。例如:设置weightForSlaveRWSplit值为60%,假设节点为一主两从架构,则可分离的读中,主机读40%,剩余两从机各读30%;

  • 读写分离策略strategyForRWSplit参数为2时,代表可分离的读请求发往可用的备存储节点,写操作与不可分离的读请求在主存储节点上进行。strategyForRWSplit参数为2时数据节点上的所有可分离的读任务会自动均分至该数据节点下的所有备存储节点上,若无备存储节点则由主存储节点全部承担。

  • 读写分离策略strategyForRWSplit参数为3时,代表事务(非XA模式)中发生写前的读请求与自动提交的读请求发往可用的备存储节点。其余请求在主存储节点上进行。

注意
在未使用HINT做读写分离的情况下,
"可分离的读请求"主要指:自动提交的读请求与显式只读事务中的读请求。其余读请求均为"不可分离的读请求"。例如非自动提交事务中的读请求。

用户级别的读写分离

可通过管理平台创建数据库用户页面添加用户或编辑用户开启用户级别的读写分离。

使用用户级别的读写分离功能,需确保计算节点连接用户开启了用户
image.png
从库复制延迟不大于配置值

异常处理策略选择任意项,用户根据从机读取优先级设置的值读所有数据节点对应优先级的从库

如:自动分片表rw_b_yds分布于以下节点:

dn_01 dn_02
主库:192.168.210.136:3311 主库:192.168.210.136:3310
从库1:192.168.210.137:3311 双主备库:192.168.210.137:3310
从库2:192.168.210.137:3312
从库3:192.168.210.137:3313
从库优先级:从库1>从库2>从库3

从机读取优先级设置的值为1,执行SQL:

root@192.168.210.136:hotdb 5.7.25 10:08:24> select * from rw_b_yds;
+----+------+-----------+
| id | cid  | a         |
+----+------+-----------+
|  4 |    4 | chongqing |
|  5 |    5 | nanjing   |
|  6 |    6 | zhengzhou |
|  1 |    1 | shanghai  |
|  2 |    2 | beijign   |
|  3 |    3 | tianjin   |
+----+------+-----------+
6 rows in set (0.00 sec)

则读dn_01的从库1和dn_02的双主备库,dn_01从库1和dn_02备库的general.log如下:


从库不可用

从机读取优先级的值为1时,当从库不可用时,会根据异常处理策略设置的值匹配对应结果,以上述自动分片表rw_b_yds为例:

1.异常处理策略配置为拒绝访问:
dn_01的从库1或dn_02的备库有一个不可用或都不可用均会拒绝访问

yds@192.168.210.136:hotdb 5.7.25 02:16:07> select * from rw_c_yds;
ERROR 10254 (HY000): No matched readable datasource in node:1 for current user

2.异常处理策略配置为读当前主机:

只有dn_01从库1不可用 读dn_01主库,dn_02备库
只有dn_02备库不可用 读dn_01从库1,dn_02主库
dn_01从库1和dn_02的备库都不可用 读dn_01和dn_02主库

3.异常处理策略配置为读其他可用从机,其次读当前主机:

只有dn_01从库1不可用 读dn_01从库2,dn_02备库
只有dn_02备库不可用 读dn_01从库1,dn_02主库
dn_01的从库1和从库2都不可用 读dn_01从库3,dn_02备库
dn_01所有从库和dn_02的备库都不可用 读dn_01和dn_02主库

4.异常处理策略配置为读其他可用从机,从机不可用时拒绝访问:

只有dn_02备库不可用 拒绝访问
dn_01下所有从库均不可用 拒绝访问
dn_01的从库1和从库2都不可用 读dn_01从库3,dn_02备库

从库复制延迟大于配置值
从库复制延迟大于配置时,跟上述中从库不可用的匹配结果一致,此处不再赘述

从库数量小于从机读取优先级的值

根据异常处理策略设置的值输出对应结果,以上述自动分片表rw_b_yds为例,假设从机读取优先级设置为10:

  • 异常处理策略配置为拒绝访问时:拒绝访问

  • 异常处理策略配置为读当前主机:读所有节点主库

  • 异常处理策略配置为读其他可用从机,其次读当前主机:读dn_01优先级最高的可用从库和dn_02备库,若dn_01和dn_02下都没有可用从库,则读dn_01和dn_02主库

  • 异常处理策略配置为读其他可用从机,从机不可用时拒绝访问:读dn_01优先级最高的可用从库和dn_02备库,若dn_01下没有可用从库或dn_02下备库不可用或dn_01、dn_02都没有可用从库/备库,拒绝访问

注意事项

  • 用户级别的读写分离参数配置完成后,需要reload并重建session连接

  • 从机读取优先级设置为0时,默认均读当前主库

  • 从机读取优先级设置的值小于等于当前实际从库数量,读对应优先级的从库,对应优先级的从库不可用或复制延迟超出设置的值时,按异常处理策略选择项处理

  • 从机读取优先级设置的值大于当前实际从库数量,按异常处理策略选择项处理

  • 用户读写分离优先级高于全局的读写分离优先级。即用户开启读写分离的同时计算节点strategyForRWSplit参数也为开启状态,则以用户级的读写分离策略为准

  • 多个从库优先级一致时,dsid最小的优先级最高

  • 事务内写之前的读可正常分离,写之后的读全部发往主库

  • 开启XA后的XA事务全部读主库,非XA事务可正常分离

  • 单库开启用户级别的读写分离,按照从库全部不可用处理,即按异常处理策略选择项处理

标签:dn,02,01,读写,数据库,介绍,hhdb,从库,节点
From: https://www.cnblogs.com/henghuixinda/p/18571724

相关文章

  • #渗透测试#SRC漏洞挖掘#红蓝攻防#黑客工具之Burp Suite介绍01-中英双语对比
    免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。                    ......
  • 介绍程序、进程与线程和计算机网络体系结构和计算机硬件组成以及计算机网络分类
    程序、进程与线程程序:程序是一组有序的指令,它定义了计算机执行特定任务的步骤。程序通常以源代码的形式存在,需要编译或解释成机器语言,计算机才能执行。程序是静态的,它只是指令和数据的集合,没有执行的概念。进程:进程是程序的执行实例。当程序被加载到内存并开始运行时,它就变......
  • 数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log
    数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undolog、redolog、binlog作用、MySQL和Redis的区别说一下索引失效的场景?什么是慢查询?原因是什么?可以怎么优化?undolog、redolog、binlog有什么用MySQL和Redis的区别是什么说一下索引失效的场景......
  • 【原创】linux实时操作系统xenomai看门狗(watchdog)机制及作用介绍
    版权声明:本文为本文为博主原创文章,转载请注明出处https://www.cnblogs.com/wsg1100。如有错误,欢迎指正。目录一、前言PREEMPT-RT(RTThrottling)一、xenomaiwatchdog介绍二、xenomaiwatchdog工作原理三、使用场景本文介绍xenomaiwatchdog,有什么用?它是如何工作的?一、前言介绍......
  • 操作系统三种处理机调度算法介绍
    以下是对先来先服务(FCFS)、短作业优先(SJF)、高响应比优先(HRRN)详细介绍:先来先服务(FCFS)算法•算法原理:按照作业或进程到达系统的先后顺序进行调度,先到达的先被服务,就如同日常生活中排队办事一样,先来的人先得到处理。•计算步骤:1.记录每个作业(或进程)的到达时间和服务时间(即执......
  • MySQL:操作数据库和表指令
    专栏说明:本专栏用于MySQL学习,如对你学习有所帮助,可以点赞收藏关注,感谢三连。博客主页:DuckBro博客主页系列专栏:MySQL数据库关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞......
  • CyclicBarrier的介绍
    CyclicBarrier的介绍  概要  CyclicBarrier(循环栅栏/循环屏障)是java.util.concurrent工具类里的一个工具,它是Java提供的一种特定场景下的多线程之间进行交互的使用方法。  CyclicBarrier作用是让一组线程相互等待,当达到一个共同点时,所有之前等待的线程再继续执行,且......
  • SSM机床智能制造预警管理x12n4(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义机床作为制造业的核心设备,其智能化水平直接影响生产效率和产品质量。然而,机床运行中常因多种因素出现故障,影响生产进度和设备寿......
  • SSM花店订花管理系统3xuon(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、背景与意义随着生活素质的提高,鲜花作为一种美丽的象征,越来越受到人们的关注。传统的花店经营方式存在诸多不便,如信息更新不及时、订单处理繁琐......
  • SSM个性化旅游线路推荐系统20qf8程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、题目个性化旅游线路推荐系统设计与实现二、研究目的与意义随着旅游业的快速发展,个性化旅游需求日益增长。本研究旨在设计与实现一个基于用户......