数据库高性能读写分离集群操作说明
1.系统概述
在一个高并发的事务型系统中,当写事务占的比例相对读事务相对较小时,可以借助DM7的主备系统备机可读的特点,将读事务转移到备机执行,减少单节点的并发压力,通过增加备机节点资源,提高系统的并发能力,增强系统性能。
DM7提供一种独具创新的主备方案,即时归档主备系统,该系统可通过客户端来实现读写事务的自动分离,读事务在备机执行,写事务在主机执行,减轻主机的负载。备机可以配置多个,备机配置的越多,更能分担主机的压力,系统整体并发效率越高。
2.读写分离流程
DM7使用JDBC驱动与服务器结合的方式实现读写分离,大致流程如下:
1) 用户登录后,客户端首先连接到主机,主机根据即时归档的配置,获取一个有效的备机信息,并返回给客户端。
2) 客户端根据主机返回的备机IP和端口,建立与该备机的连接。
3) 客户端执行语句时先在备机上执行,如果是只读事务,则只在备机上执行。
4) 如果系统收到客户端试图在备机模式下修改数据等错误,则说明该事务是写事务,则转移到主机上执行。
5) 一旦主机上执行的写事务提交,则下次继续从备机开始执行。
6) 为了实现负载均衡,防止出现读事务过多占用备机资源、主机空闲的情况,客户端采用一定的算法进行均衡,主机上也会执行一部分读事务。
▲图1 读写分离流程
3.即时归档
DM7支持多种归档类型,本地归档、实时归档、同步归档、异步归档等类型。为了实现读写分离,新增一种即时归档(Timely archive)类型,以区别实时归档。
实时归档是实时发送日志到备机,备机收到日志不会等待日志APPLY完成,立即响应给主机,主机收到响应后才刷本地日志。
即时归档是一种比实时归档更加严格的远程归档方式,先刷本地日志,然后发送到备机,并且等待备机APPLY完成,之所以要这么做,原因有2个:
首先,即时归档主备系统不会发生主备切换,在主机发送完日志到备机后刷日志前主机崩溃的情况下,不能让备机多一段日志,确保主机数据是完整且最新的。
其次,需要保证主备机的数据一致性,避免从备机读的数据到主机进行更新时数据已经不一致了。
在某些不需要保证严格一致性的情况下,可以通过dmarch.ini中的ARCH_WAIT_APPLY配置项,来配置不需要等待备机重做完日志的主备系统,类似于实时归档,可以进一步提高系统性能。
4.事务一致性
若事务全为读操作,则全部在备机上执行。
若事务全为写操作,则全部在主机上执行。
若事务既有读又有写,备机会将写操作返回给主机执行,该事务中从写操作开始以后所有操作均在主机上执行,保证事务一致性。
5.数据同步
配置读写分离集群之前,必须先同步主备机数据,确保两者保持完全一致;主数据库可以是新初始化的数据,也可以是正在生产、使用中的数据。DM7提供了两种方式初始化同步主备机数据,数据文件拷贝以及备份还原方式。
不能使用分别初始化库的方法,原因如下:
1) 每个库都有一个永久魔数(permenant_magic),主备机传送日志时会判断这个值是否一样,确保来自同一个库,不同的库传送不了日志
2) 由于dminit初始化数据库时,会生成随机密钥用于加密,每次生成的密钥都不相同,备机无法解析采用主机密钥加密的数据
1. 数据文件拷贝
如果搭建系统之前,数据库系统已经上线运行了,可通过拷贝数据文件的方式实现主备数据库的同步。具体步骤包括:
1) 正常关闭数据库。
2) 严格按照数据文件在主机上的分布,拷贝数据文件到备机的对应目录。
3) 如果数据文件统一存放在一个目录下,则直接拷贝整个目录即可。
2. 备份还原方式
用户也可以通过脱机备份、脱机还原的方式同步主备机数据,更详细的说明可以参考备份恢复相关文档。具体步骤包括:
1) 正常关闭数据库
2) 进行脱机备份
/dmbackup TYPE=FULL INI_PATH=/dm7data/DM1/DAMENG/dm.ini NAME=BACKUP_FILE
3) 拷贝备份文件到备机
4) 执行脱机数据库恢复
/dmrestoreINI_PATH=/dm7data/DM1/DAMENG/dm.ini FILE=/dm7data/DM1/DB_DAMENG_20120910180136000741.bak
六、 读写分离效果
搭建1主2备系统,最优情况可提升吞吐量250%。
▲图2 读写分离测试效果
数据库高性能读写分离集群操作说明相关推荐
- 金仓数据库KingbaseES主备和读写分离集群使用手册(日常运维管理)
对应10小节作的整改,包括但不限于一键启动的检查项目.对属于一键启动的检查项作个说明即可,比如 本检查属于一键启动默认检查项. 目录 7.1. 集群启停 ¶ 7.1.1. 一键启停方式 ¶ 7.1.2 ...
- Windows 2012 always on 读写分离集群搭建配置
Windows 2012 always on 读写分离集群搭建配置. Always on简介 AlwaysOn 可用性组 (SQL Server) AlwaysOn 可用性组功能是一个提供替代数据库镜 ...
- Maxscale读写分离集群过渡PXC集群
一.实验环境 第一次写博客,欢迎大家交流指正!!! 不喜勿喷!!! 操作系统 : Centos7.5虚拟机 数据库软件 : mysql-5.7.17 主机名 ip地址 角色 web33 192.168 ...
- Maxscale Keepalived MySQL实现高可用读写分离集群
图片是模拟两个从节点down是否正常提供服务 访问http://ip:8989端口,登录名admin,密码mariadb 环境说明: IP地址 数据库服务 读写分离代理服务 负载均衡服务 虚拟IP 1 ...
- 达梦-主备与读写分离集群
DM8-主备与读写分离集群 文章目录 DM8-主备与读写分离集群 1. 基本概念 1.1 DM集群 1.2 DM归档类型 2. 数据守护集群 2.1 概念 2.2 数据守护集群架构及原理 2.3 守护 ...
- MySQL8读写分离集群
文章目录 前言 MySQL读写分离原理 搭建MySQL读写分离集群 MySQL8.0之前 MySQL8.0之后 后记 前言 上一期介绍并实现了MySQL的主从复制,由于主从复制架构仅仅能解决数据冗余备 ...
- 分布式.数据库架构(Mysql 就这么点东西,分库分表读写分离集群演化)
缘起 讲个创业故事,某一天老总想做一个HR的Saas系统,其中员工信息表,但不同员工信息表有一部分是相同的,也有一部分不同的.我们就把不同的放在一个json字段(Mysql 8.0以后支持)中,Dao ...
- 三、kylin读写分离集群部署
1.部署图 注意: 1.在kylin服务机器上hbase shell 作为存储Hbase集群的客户端,配置需要存储集群的客户端配置,cdh 的hbase配置路径在/etc/hbase/conf下,hb ...
- DM数据守护读写分离集群
1 安装环境 操作系统:CentOS Linux release 7.9.2009 x64 硬盘空间:20G 软件版本:DM8企业版 1.1 服务器信息 IP地址 节点类型 操作系统 备注 192.1 ...
最新文章
- idea中配置xml不自动提示解决方案
- 全栈工程师?并没有什么卵用。每个人都应该去创业,不为别的,就为了健全你的人格(转)...
- 深度学习如何验证自己的想法
- php基础教程 第十一步 面向对象
- JS 停留几秒后返回上一页
- 基于JAVA+SpringBoot+Mybatis+MYSQL的在线论坛管理系统
- eclipse adt开发android ndk没有NDK选项问题的解决方案
- C#中如何生成矢量图
- 使用CSS实现透明边框的效果——兼容当前各种主流浏览器[xyytIT]
- hello语音为什连接不上服务器,Hello语音交友怎么玩_Hello语音交友打不开
- SLE12 Server 在线安装MySQL Server
- 目前常见的web网络安全漏洞
- JS 转换数字/日期大全
- 传小米要在A股港股同时上市;车好多完成8亿美元融资;三星市值蒸发近600亿美元丨价值早报
- 布衣联盟XP SP2之国兴奥运版
- Allegro Layout常用功能
- 2022人才市场洞察及薪酬指南
- JAVA的学习心路历程之JDK基础入门(上)
- 问题 D: 清点人数
- PlatoFarm推出正式版游戏经济模型的特点分析
热门文章
- TI-DM8127:MCFW、ISS中对sensor的驱动和控制
- 东北师大计算机考研报名人数,东北师范大学考研难吗?一般要什么水平才可以进入?...
- 华为鸿蒙手机官网价格表,曝下半年华为将推出两款鸿蒙手机:国内独享,价格良心...
- 迪杰斯特拉算法c++_《算法图解》学习记录7--迪杰斯特拉算法
- Java项目:人力管理系统(java+Gui+文档)
- 一台支持vlan管理的交换机_关于交换机的VLAN技术你了解多少?
- 【java】第一阶段基础知识整理
- Spark的安装和使用
- Hbase的过滤器查询
- 2021梧州一中高考成绩查询,2021年广西高考成绩查询网站查分网址:https://www.gxeea.cn/...