达梦数据库读写分离集群原理

概述

本文就达梦数据库读写分离原理进行介绍。

达梦读写分离集群特点:

  1. 可以配置8个即时备库或8个实时备库;
  2. 读写操作自动分离、负载均衡;
  3. 提供数据同步;
  4. 备库故障自动处理,故障恢复自动数据同步等功能,也支持自动故障切换和手动故障切换两种守护模式。

读写分离集群不依赖额外的中间件,而是通过数据库接口与数据库之间的密切配合,实现读、写操作自动分离特性。DM 的 JDBC、DPI、DCI、ODBC、Provider 等接口都可以用来部署读写分离集群。

1.读写分离集群搭建请参考

读写分离集群搭建和主备守护集群搭建步骤一致,请参考下面链接:

DM8守护集群(主备)安装部署_weixin_42942173的博客-CSDN博客

2.主备守护和读写分离集群配置文件区别

主备守护集群和读写分离集群搭建步骤一致,主要是区别在dm_svc.conf 配置文件。

dm_svc.conf 是使用达梦数据库时非常重要的配置文件,它包含了达梦各接口和客户端工具所需要配置的一些参数。

2.1主备守护集群配置

配置示例

##以#开头的行表示是注释#
##全局配置区
TIME_ZONE=(480)
LANGUAGE=(cn)
DMHA=(192.168.100.100:5236,192.168.100.101:5236)
##服务配置
[DMHA]
SWITCH_TIMES=(3)
SWITCH_INTERVAL=(100)
LOGIN_MODE=(1)

jdbc连接串

jdbc:dm://DMHA

2.2读写分离集群配置

配置示例

##以#开头的行表示是注释
##全局配置区
TIME_ZONE=(480)
LANGUAGE=(cn)
DMRW=(192.168.100.100:5236,192.168.100.101:5236,192.168.100.102:5236)
##服务配置
[DMRW]
LOGIN_MODE=(1)
RW_SEPARATE=(1)
RW_PERCENT=(30)
SWITCH_TIMES=(60)
SWITCH_INTERVAL=(1000) 

RW_SEPARATE
表示是否启用读写分离。0:不启用;1:启用;2:启用,备库由客户端进行选择,且只会选择服务名中配置的节点。
RW_PERCENT
表示读写分离分发比例,有效值范围 0~100,主库占所有事物数的比例。可以根据主备库的实际压力来设定。

jdbc连接串

jdbc:dm://DMRW

3.读写分离集群原理

3.1读写分离集群数据库连接创建流程

1. 用户发起数据库连接请求。

2. 接口(JDBC、DPI 等)根据服务名配置(在 dm_svc.conf 中进行配置)登录主库。

3. 主库挑选一个有效即时备库或实时备库的 IP/Port 返回给接口。

4. 接口根据返回的备库 IP 和 Port 信息,向备库发起一个连接请求。

5. 备库返回连接成功信息。

6. 接口响应用户数据库连接创建成功。

                                                     3.1读写分离连接创建图

3.2 读写分离集群语句分发流程

1. 接口收到用户的请求。

2. 接口优先将SQL发送到备库执行。

3. 备库执行并返回执行结果。如果接口收到的是备库执行成功消息,则转到第 6 步,

如果接口收到的是备库执行失败消息,则转到第4步。

4. 重新将执行失败的SQL发送到主库执行。只要第3步中的SQL在备库执行失败,

则同一个事务后续的所有操作(包括只读操作)都会直接发送到主库执行。

5. 主库执行并返回执行结果给接口。一旦主库上执行的写事务提交,则下次继续从第

1 步开始执行。

6. 接口响应用户并将执行结果返回给用户。

                                                         

总结

本文介绍了达梦数据库读写分离集群特点,然后介绍了主备守护集群和读写分离集群配置文件区别,最后介绍了读写分析分离集群原理。

关于达梦数据库更多学习内容,欢迎访问达梦社区:
[https://eco.dameng.com](https://eco.dameng.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/86701.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无涯教程-TensorFlow - Keras

Keras易于学习的高级Python库,可在TensorFlow框架上运行,它的重点是理解深度学习技术,如为神经网络创建层,以维护形状和数学细节的概念。框架的创建可以分为以下两种类型- 顺序API功能API 无涯教程将使用Jupyter Notebook执行和…

会计如何使用ChatGPT提高工作效率

文章目录 ChatGPT改变了会计行业微软重新定义了PC交互应对ChatGPT带来的冲击给财务人员的建议总结 ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社…

LInux之例行工作

目录 场景 单一执行例行任务 --- at(一次性) 安装 命令详解 语法格式 参数及作用 时间格式 案例 at命令执行过程分析 循环执行的例行性任务--crontab(周期性) crontd服务安装 linux 任务调度的工分类 crontab工作过程…

js案例:小球碰壁反弹

目录 一.效果预览图​编辑 解析 二.完整代码 代码讲解 html部分 js部分 一.效果预览图 解析 这个效果是为了以后(过段时间会发的一个小游戏)做js小游戏做准备的,基本结构是,定义两个div盒子,小盒子设置成圆球形状…

代码pytorch-adda-master跑通记录

前言 最近在学习迁移学习,ADDA算法,由于嫌自己写麻烦,准备先跑通别人的代码。 代码名称:pytorch-adda-master 博客:https://www.cnblogs.com/BlairGrowing/p/17020378.html github地址:https://github.com…

关于Springboot项目打包的配置问题

一、打包方式的不同致使jar包运行性能及docker部署的效率问题 1.1方式一 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source&…

Flash 空间大小的选择以及8MB和8M bit单位与转换关系

他V hezkz17进数字音频系统研究开发交流答疑群(课题组) log打印 [09:54:27.565] FLASH_SIZE0x800000 这个是 8MB 字节 芯片手册Flash是以字节为单位 注意单位与转换关系 ifeq ($(FLASH_SIZE),0x100000) # 8M bits LOG_DUMP_SECTION_SIZE ? 0x10000 endif 0x1000001MB为 …

C# 观察者模式

一、概述 观察者模式是一种常用的设计模式&#xff0c;它属于行为型模式。在C#中&#xff0c;观察者模式通过定义一种一对多的依赖关系&#xff0c;使得当一个对象的状态发生变化时&#xff0c;所有依赖于它的对象都会得到通知并自动更新。这种模式可以实现松耦合&#xff0c;…

精密图纸被窃,知名手表品牌Seiko遭BlackCat勒索软件攻击

据BleepingComputer消息&#xff0c;日本著名手表制造商Seiko在7月末遭到了网络攻击&#xff0c;8月21日&#xff0c;BlackCat&#xff08;又名ALPHV&#xff09;勒索软件组织在其网站上宣布对这起攻击事件负责。 8 月 10 日&#xff0c;Seiko发布了一份数据泄露通知&#xff0…

机器学习---常见的距离公式(欧氏距离、曼哈顿距离、标准化欧式距离、余弦距离、杰卡德距离、马氏距离、切比雪夫距离、闵可夫斯基距离、K-L散度)

1. 欧氏距离 欧几里得度量&#xff08;euclidean metric&#xff09;&#xff08;也称欧氏距离&#xff09;是一个通常采用的距离定义&#xff0c;指在m维空 间中两个点之间的真实距离&#xff0c;或者向量的自然长度&#xff08;即该点到原点的距离&#xff09;。在二维和三维…

【雷达】接收和去噪L波段雷达接收到的信号研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

单链表的多语言表达:C++、Java、Python、Go、Rust

单链表 是一种链式数据结构&#xff0c;由一个头节点和一些指向下一个节点的指针组成。每个节点包含一个数据元素和指向下一个节点的指针。头节点没有数据&#xff0c;只用于表示链表的开始位置。 单链表的主要操作包括&#xff1a; 添加元素&#xff1a;在链表的头部添加新…

采用typescript编写,实现ofd前端预览、验章

前言 浏览器内核已支持pdf文件的渲染&#xff0c;这极大的方便了pdf文件的阅读和推广。ofd文件作为国产板式标准&#xff0c;急需一套在浏览器中渲染方案。 本人研究ofd多年&#xff0c;分别采用qt、c# 开发了ofd阅读器。本人非前端开发人员&#xff0c;对js、typescript并不熟…

工程管理与工作流

1 统一开发环境/ 协作工具 你知道开发环境指的是什么吗&#xff1f; 开发环境&#xff1a; 工程运行环境、开发工具/ 编辑器 、开发依赖环境、 配置文件 软件环境&#xff1a; “仿真预演”环境 Staging 生产环境前最终验证、 这一环境尽可能的仿真了真实的生产环境 、另一个…

自己实现 SpringMVC 底层机制 系列之-实现任务阶段 6-完成控制器方法获取参数-@RequestParam

&#x1f600;前言 自己实现 SpringMVC 底层机制 系列之-实现任务阶段 6-完成控制器方法获取参数-RequestParam &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希望我的文章可以帮助到大家&#xff0c…

网络编程——网络基础知识

目录 一、网络历史两个重要名词1.1 阿帕网1.2 TCP/IP协议 二、局域网和广域网三、IP地址3.1 基本概念3.2 划分(IPV4)3.3 特殊IP地址3.4 子网掩码3.5 重新组网 四、网络模型4.1 网络的体系结构&#xff1a;4.2 OSI与TCP/IP模型4.2.1 OSI模型4.2.2 TCP/IP模型4.2.3 OSI和TCP/IP模…

CNN之图像识别

什么是图像识别 • 图像识别技术是信息时代的一门重要的技术&#xff0c;其产生目的是为了让计算机代替人类去处理大量的物理信息。随着计算机技术的发展&#xff0c;人类对图像识别技术的认识越来越深刻 • 图像识别技术的定义为利用计算机对图像进行处理、分析和理解&…

Docker(二) Docker容器

在docker中的容器都是由镜像所创建的&#xff0c;一个镜像可以创建多个容器。 一、调试Docker 启动Docker systemctl start docker 查看Docker中有哪些镜像 docker images 下载镜像 docker pull hello-world 运行镜像 docker run hello-world 出现 Hello from Docker! 这…

构建系统自动化-autoreconf

autoreconf简介 autoreconf是一个GNU Autotools工具集中的一个命令&#xff0c;用于自动重新生成构建系统的配置脚本和相关文件。 Autotools是一组用于自动化构建系统的工具&#xff0c;包括Autoconf、Automake和Libtool。它们通常用于跨平台的软件项目&#xff0c;以便在不同…

[C语言]分支与循环

导言&#xff1a; 在人生中我们总会有选择&#xff0c;**如下一顿吃啥&#xff1f;**又或者每天都是在重复&#xff0c;吃饭&#xff01;&#xff01;&#xff01;&#xff01;&#xff0c;当然在C语言中也有选择和重复那就是分支语句与循环语句 文章目录 分支循环循环中的关键…