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

概述

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

达梦读写分离集群特点:

  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. 接口响应用户数据库连接创建成功。

达梦数据库读写分离集群原理_第1张图片

                                                     3.1读写分离连接创建图

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

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

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

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

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

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

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

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

1 步开始执行。

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

达梦数据库读写分离集群原理_第2张图片

                                                         

总结

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

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

你可能感兴趣的:(数据库,服务器,运维)