阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL数据库常用架构设计

367次阅读
没有评论

共计 2631 个字符,预计需要花费 7 分钟才能阅读完成。

一、MySQL 引擎

Mysql 三种存储引擎

MySQL 提供了两种存储引擎:MyISAM 和 InnoDB,MySQL4 和 5 使用默认的 MyISAM 存储引擎。从 MySQL5.5 开始,MySQL 已将默认存储引擎从 MyISAM 更改为 InnoDB。

MyISAM 没有提供事务支持,而 InnoDB 提供了事务支持。

二、常用的 MySQL 调优策略

1、硬件层相关优化

修改服务器 BIOS 设置

选择 Performance Per Watt Optimized(DAPC) 模式,发挥 CPU 最大性能。

Memory Frequency(内存频率)选择 Maximum Performance(最佳性能)

内存设置菜单中,启用 Node Interleaving,避免 NUMA 问题

2、磁盘 I / O 相关

使用 SSD 硬盘

如果是磁盘阵列存储,建议阵列卡同时配备 CACHE 及 BBU 模块,可明显提升 IOPS。

raid 级别尽量选择 raid10,而不是 raid5.

3、文件系统层优化

使用 deadline/noop 这两种 I / O 调度器,千万别用 cfq

使用 xfs 文件系统,千万别用 ext3;ext4 勉强可用,但业务量很大的话,则一定要用 xfs;

文件系统 mount 参数中增加:noatime, nodiratime, nobarrier 几个选项(nobarrier 是 xfs 文件系统特有的);

4、内核参数优化

修改 vm.swappiness 参数,降低 swap 使用率。RHEL7/CentOS7 以上则慎重设置为 0,可能发生 OOM

调整 vm.dirty_background_ratio、vm.dirty_ratio 内核参数,以确保能持续将脏数据刷新到磁盘,避免瞬间 I / O 写。产生等待。

调整 net.ipv4.tcp_tw_recycle、net.ipv4.tcp_tw_reuse 都设置为 1,减少 TIME_WAIT,提高 TCP 效率。

5、MySQL 参数优化建议

建议设置 default-storage-engine=InnoDB,强烈建议不要再使用 MyISAM 引擎。

调整 innodb_buffer_pool_size 的大小,如果是单实例且绝大多数是 InnoDB 引擎表的话,可考虑设置为物理内存的 50% -70% 左右。

设置 innodb_file_per_table = 1,使用独立表空间。

调整 innodb_data_file_path = ibdata1:1G:autoextend,不要用默认的 10M, 在高并发场景下,性能会有很大提升。

设置 innodb_log_file_size=256M,设置 innodb_log_files_in_group=2,基本可以满足大多数应用场景。

调整 max_connection(最大连接数)、max_connection_error(最大错误数)设置,根据业务量大小进行设置。

另外,open_files_limit、innodb_open_files、table_open_cache、table_definition_cache 可以设置大约为 max_connection 的 10 倍左右大小。

key_buffer_size 建议调小,32M 左右即可,另外建议关闭 query cache。

mp_table_size 和 max_heap_table_size 设置不要过大,另外 sort_buffer_size、join_buffer_size、read_buffer_size、read_rnd_buffer_size 等设置也不要过大。

三、MySQL 常见的应用架构分享

1、主从复制解决方案

这是 MySQL 自身提供的一种高可用解决方案,数据同步方法采用的是 MySQL replication 技术。MySQL replication 就是从服务器到主服务器拉取二进制日志文件,然后再将日志文件解析成相应的 SQL 在从服务器上重新执行一遍主服务器的操作,通过这种方式保证数据的一致性。

为了达到更高的可用性,在实际的应用环境中,一般都是采用 MySQL replication 技术配合高可用集群软件 keepalived 来实现自动 failover,这种方式可以实现 95.000% 的 SLA。

MySQL 数据库常用架构设计

2、MMM/MHA 高可用解决方案

MMM 提供了 MySQL 主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件。在 MMM 高可用方案中,典型的应用是双主多从架构,通过 MySQL replication 技术可以实现两个服务器互为主从,且在任何时候只有一个节点可以被写入,避免了多点写入的数据冲突。同时,当可写的主节点故障时,MMM 套件可以立刻监控到,然后将服务自动切换到另一个主节点,继续提供服务,从而实现 MySQL 的高可用。

MySQL 数据库常用架构设计

3、Heartbeat/SAN 高可用解决方案

在这个方案中,处理 failover 的方式是高可用集群软件 Heartbeat,它监控和管理各个节点间连接的网络,并监控集群服务,当节点出现故障或者服务不可用时,自动在其他节点启动集群服务。在数据共享方面,通过 SAN(Storage Area Network)存储来共享数据,这种方案可以实现 99.990% 的 SLA。

MySQL 数据库常用架构设计

4、Heartbeat/DRBD 高可用解决方案

此方案处理 failover 的方式上依旧采用 Heartbeat,不同的是,在数据共享方面,采用了基于块级别的数据同步软件 DRBD 来实现。

DRBD 是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。和 SAN 网络不同,它并不共享存储,而是通过服务器之间的网络复制数据。

MySQL 数据库常用架构设计

四、MySQL 经典应用架构

MySQL 数据库常用架构设计

其中:

Dbm157 是 MySQL 主,dbm158 是 MySQL 主的备机,dbs159/160/161 是 MySQL 从。

MySQL 写操作一般采用基于 heartbeat+DRBD+MySQL 搭建高可用集群的方案。通过 heartbeat 实现对 MySQL 主进行状态监测,而 DRBD 实现 dbm157 数据同步到 dbm158。

读操作普遍采用基于 LVS+Keepalived 搭建高可用高扩展集群的方案。前端 AS 应用通过提高的读 VIP 连接 LVS,LVS 有 keepliaved 做成高可用模式,实现互备。

最后,MySQL 主的从节点 dbs159/160/161 通过 MySQL 主从复制功能同步 MySQL 主的数据,通过 lvs 功能提供给前端 AS 应用进行读操作,并实现负载均衡。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-04/142818.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2631字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7804866
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...