MySQL详解(十):企业中MySQL的高可用架构

更新时间:2023-06-24 04:56:04 阅读: 评论:0

MySQL详解(⼗):企业中MySQL的⾼可⽤架构
企业中MySQL的⾼可⽤架构
MySQL数据库作为最流⾏的开源数据库产品,拥有许多成熟的⾼可⽤架构⽅案,其⽅案的可⽤性覆盖率为90%~99.999%,能够适⽤于对可⽤性级别的多种不同的需求。其主要是利⽤复制技术,多个不同数据库主机之间进⾏复制,以保持数据的⼀致性,并通过⼀些第三⽅开源软件来实现负载均衡和统⼀的访问接⼝,既减少应⽤程序开发的复杂性,也降低了企业的运营成本。
本章会MySQL两种常⽤的⾼可⽤架构⽅案进⾏配置指导;
1.MySQL⾼可⽤的简单介绍
在单点访问服务中,客户访问应⽤系统,应⽤系统直接访问数据库,这种系统架构中所有存储数据和读写操作都发⽣在唯⼀的⼀台服务器主机上,数据库数据都存储在⼀台数据库系统中,往往⼀旦数据库系统发⽣故障,应⽤系统没有办法在短时间内恢复正常;
通常使⽤数据库⾼可⽤性的设计,同步读写分离,负载均衡等⼿段达到减少系统的停机时间,提⾼系统服务可靠性。
2.MySQL主从复制
MySQL主从复制是指单台MySQL服务器的数据复制到另⼀台MySQL服务器。这种⽅案不需要复杂的配置,数据可以从单台Master 主机复制到任意数量的Salve主机。复制使⽤异步⽅式,在MySQL 5.5中增加了半同步复制,有效地提⾼了复制的可靠性;
1.MySQL主从架构设计
该架构由单台服务器和多台从服务器构成,主服务器主要是⽤来接受来⾃应⽤程序的写请求,从服务器接受读请求,在从服务器与应⽤层之间可以搭建负载均衡设备。例如:LVS、Haproxy、F5等。该架构可以将读写请求分离到不同的机器上执⾏,但需要应⽤程序实现不同的连接池,将读操作负载均衡到多个从服务器主机上,提⾼系统整体读操作的处理能⼒。但只有单台主服务器可以写数据,所以写操作⽆法负载均衡,也限制了扩展性,并且当主服务器发⽣故障的时候,系统将⽆法写数据,存在单点故障。通常适⽤于对可⽤性要求不⾼的场景,例如:在线备份,将其中⼀台从服务器⽤于备份数据,避免了备份对主服务器产⽣的影响;
在应⽤层和从服务器之间可以添加LVS,便可以实现负载均衡,同时从服务器可以⽔平扩展来提⾼系统的整体读性能;
2.配置环境
主机名IP地址⾓⾊备注
阳台设计效果图大全集
主服务器192.168.1.20主机数据库写
从服务器1192.168.1.21主机数据库读
从服务器2192.168.1.22从机数据库读
LVS192.168.1.23LVS负载均衡
3.服务器的安装配置
⾸先在主服务器,从服务器1,从服务器2三台主机上安装MySQL数据库。把MySQL安装脚本上传到需要安装MySQL的服务器上,然后执⾏脚本操作。脚本有三个参数分别是:软件包、安装⽬录、配置⽂件、需要指定这三个参数才能顺利安装;
配置MySQL
安装MySQL完之后,即可对它们进⾏配置,具体操作步骤如下:
第⼀步:
在主服务器主机上开启binlog⽇志,保持rver-id的唯⼀性,这步最好安装mysql之前就写在配置⽂件
中;
第⼆步:
在主服务器上配置复制所需要的账户,如下所⽰:
mysql > grant replication salve on *.* to repl@% identified by ‘repl_password’;
mysql > flush privileges;
第三步:
接着,在从服务器1和从服务器2上分别配置主服务器信息,如下所⽰:
mysql > change master to master_host=’192.168.1.20’,master_ur=’repl’,master_password=’repl_password’;
mysql > salve start;
mysql > show slave status\G
参数说明:
Master_Host:
被复制的主机地址;
Master_Ur:
在主服务器上创建的⽤户复制的账户;
Master_Port:
主服务器上MySQL运⾏的端⼝;
Slave_IO_Running:
显⽰I/O线程的运⾏状态;
Salve_SQL_Running:
显⽰SQL线程运⾏的状态;
Last_Errot:
当复制中断的时候,此处会显⽰错误原因,并由此来修复复制;
Seconds_Behind_Master:
显⽰从服务器中I/O线程与SQL线程之间的时间差,可以反映出主服务器之间的⽹络快慢;
4.LVS的安装配置
接下来可以配置LVS,⽤来做负载均衡,具体的操作步骤如下:汤姆叔叔的小屋读书笔记
第⼀步:
在LVS主机上安装LVS相关的软件,可以通过Yum的⽅式:
root@LVS# yum install ipvsadm piranha
第⼆步:
安装完毕,开始配置LVS,编辑LVS的配置⽂件:
root@LVS#vi /etc/sysconfig/ha/lvs.cf
在该配置⽂件中需要配置LVS 的主机物理⽹络⼝IP;
Slave-1的主机IP
Slave-2的主机IP
第三步:
分别在从服务器1和从服务器上安装arptables_jf,进⾏arp设置,设置完成之后启动arptable_jf服务,并设置开启⾃动启动;
root@slave-1# yum install arptables_jf
第四步:
启动LVS服务,并设置开启⾃动启动;
root@LVS #rvice pul start
root@LVS# chkconfig -level  2345 pul on
第五步:
启动LVS之后,可以通过ipvsadm命令开查看LVS状态是否正常。
root@LVS# ipvsadm -L -n
到此为⽌,已经配置了⼀个最简单的MySQL⾼可⽤架构,当然这种架构存在单点故障问题,可以为主服务器准备⼀台备份机器来解决。3.MySQL + DRBD + HA架构设计
由于⼀些企业的业务通常会发展的很迅速,对数据库的扩展性、可⽤性和性能的要求会更⾼,上⾯所讲的普通⽅案⽆法满⾜这种业务快速增长的场景对可⽤性、可靠性的需求。越来越⼤的压⼒会使主从之间的复制出现较⼤的延迟,从⽽影响了数据库数据的⼀致性,降低了它的可靠性;
解决该问题的⽅法:使⽤DRDB技术执⾏⽂件级的复制,主机之间能够保持较⾼的⽂件的⼀致性,可靠性可以达到99.99%,此⽅案更多的考虑到了扩展性,能够很好地适应企业业务快速增长给数据库带来的读写压⼒;
1.什么是DRBD
DRDB(Distributed Replicated Block Device)简称分布式复制块设备,是⼀种基于Linux系统的软件组件,它是由内核模块和相关程序⽽组成的,⽤以构建⾼可⽤性的集群。当数据写⼊到本地的DRDB设备上的⽂件的时候,数据会同时被发送到⽹络中的另外⼀台主机之上;
DRBD实现原理:
是通过⽹络来镜像整个设备。DRBD复制接收数据,然后写⼊到本地磁盘,之后会把数据发送给另⼀台主机,另⼀台主机会将数据写⼊到本地磁盘,DRBD通过对故障进⾏切换操作,从⽽实现集群的⾼可⽤性;
2. MySQL + DRBD + HA架构设计
该架构主要由2台机器组成。分别是Active和Standby。它们之间通过Heartbeat进⾏连接,对外共⽤⼀个虚拟IP地址,正常情况Active对外提供服务,当Active出现软硬件单点故障的时候,Heartbeat⾃动将虚拟IP指向Standby,有Standby作为新的Active对外提供服务。当原Active的故障排除之后再将其接⼊系统作为新的Standby存在;
Active和Standby之间通过DRBD技术实现数据的互为主从的复制,以减少故障切换的时间。
3.配置环境
4.安装Heartbeat
安装Heartbeat的具体操作步骤如下:
第⼀步:
分别在两台主机上安装Hearbeat⼼跳软件,可以通过yum的⽅式,如下所⽰:
root@db-01# yum install heartbeat
回家英语第⼆步:
配置hosts ⽂件,把主机名与IP添⼊hosts⽂件。
root@db-01# cat /etc/hosts
第三步:
配置⽹卡IP和⼼跳IP
root@db-01# cat /etc/sysconfig/network-scripts/ifconfig-eth0
提⽰:两台数据库主机的系统时间要保持⼀致,如果内⽹环境中有NTP服务器,可以定期的更新两台数据库服务器的时间;如果没有,那么可以在两台服务器上配置来保持两者的时间同步;
第四步:
以db-01作为NTP服务器为例。⾸先安装ntpd软件包,可以通过yum⽅式,然后配置其选项,如下所⽰:
root@db-01# cat /f
第五步;
启动NTP服务并设置开启⾃动启动,并在db-02上设置定时任务来更新时间。
root@db-01# rvice ntpd start
root@db-01#chkconfig --level 2345 ntpd on
root@db-02#crontab -e
准备⼯作完成之后,就可以开始配置heartbeat,在heartbeat版本中相关的配置⽂件有3个,分别是ha.cf、authkeys、haresources。
第六步:
⾸先配置ha.cf⽂件,这个是heartbeat的核⼼配置⽂件:
root@db-01# cat /etc/ha.d/ha.cf
第七步:
接着配置authkeys⽂件并修改其权限配置,该⽂件主要是设置通信的验证校验机制。
root@db-01# cat/etc/ha.d/authkeys
第⼋步:
配置haresources⽂件,该⽂件主要是设置挂载的⽂件系统类型和路径,以及服务器名和虚拟IP
root@db-01 # cat/etc/ha.d/haresources
这⾥需要注意的是,由于使⽤的是DRDB,因此设备名是/dev/drbd0,服务费名为mysql,这个名称是需要和/etc/init.d/mysql脚本名保持⼀致,否则在发⽣故障的时候将⽆法启动mysql;
heartbeat的配置过程中在两台数据库主机中都需要设置,记住有些地⽅需要改动,例如:主机名;
5.安装配置DRBD
DRBD分为内核模块和管理⼯具两部分,Linux从2.6.33开始就将DRBD的驱动模块合并到了内核中,如果linux内核⼤于2.6.33,就只需要安装DRBD管理⼯具;
第⼀步:
分别在两台机器上安装DRBD,
第⼆步:
安装完成之后开始配置DRBD,需要为DRBD分配⼀个块设备,以/dev/sdb1为例;
生日派对英文第三步:
配置完成之后,就可以开始加载内核模块并进⾏初始化的设置(两台机器都需要操作)
写给老师的一封信怎么写第四步:
开始创建主节点,并格式化⽂件系统,注意此步骤需要在其中的⼀台服务器上操作,这⾥以db-01为例;
第五步:
启动heartbeat服务设置开启⾃动启动;
root@db-01# chkconfig -level  234 drbd on
root@db-01# rvice heartbeat start
4.Lvs+Keepalived+MySQL单点写⼊主主同步⽅案
宝宝出汗多
⽬前在MySQL⾼可⽤⽅案中,Lvs+keepalived经常被⽤到,Lvs和Keepalived为⾼可⽤⽅案提供了负载均衡和故障的转移。通常情况下,MySQL⾼可⽤为了实现数据的⼀致性,会采⽤单点写⼊,本章采⽤keepalived中的sorry_rver来实现写⼊数据库为单点的需求;
英语唯美短句
下⾯采⽤Lvs+keepalived单点写⼊主主同步⽅案,主服务器的后⾯可以添加多个从服务器,并做到负载均衡,事实上该⽅案中并没有是实现数据库的读写分离,只适⽤于只有两台的数据库服务器的情况;
千万别做保育员1.配置环境
⾸先,先准备两台机器,并安装好MySQL服务,然后设置两台服务器主主同步,具体步骤如下:
第⼀步:配置db1
参数说明:

本文发布于:2023-06-24 04:56:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1052308.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:服务器   数据库   配置
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图