mysql高可用集群配置方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在进入到备机的mysql,查看log表里面的数据一共有5001条,正截止到我们在 断开主机执行到的数字5000。
[root@tl3 ha.d]# mysql --socket=/tmp/mysql.sock -e "select count(*) from cm.log"; +----------+ | count(*) | +----------+ | 5000 | +----------+
mysql + replication
优点:
易实施、成本低、经济实惠、后期维护方便,且由于整套系统架构简 单,不涉及到存储及双机软件,方便做到读写分离。
缺点:
在主机出现问题后不能自动切换到备份机,需要人工干涉更改IP地址。
Mysql cluster
概述:
MySQL集群是一种分布式设计,目标是要达到没有任何单点故障点。因此,任何 组成部分都应该拥有自己的内存和磁盘。任何共享存储方案如网络共享,网络文 件系统和SAN设备是不推荐或不支持的。通过这种冗余设计,MySQL声称数据的 可用度可以达到99。999%。
mysql+heartbeat+共享存储
优点:
安全性、稳定性高,出现故障系统将自动切换,从而保证服务的连续 性。
缺点:
相对mysql replication成本提高,需要有共享存储设备。
mysql+heartbeat+共享存储
环境说明: 实验服务器:IBM 3850 实验san存储: IBM DS3400 主机-tl2:192.168.218.137 操作系统:CentOS release 5.3 (x86_64) 备机-tl3:192.168.218.138 操作系统:CentOS release 5.3 (x86_64) 浮动ip:192.168.218.140 共享磁盘:/dev/sdb1 (指定到挂载目录/dbdata) 对mysql设定: 将mysql数据目录指定到/dbdata/mysql datadir=/dbdata/mysql 在heartbeat对资源的设定 [root@tl2 ha.d]# vi haresources
mysql+heartbeat+共享存储
概述:
本方案采用高可靠性的HA双机热备 软件来保证服务的高稳定性及连续 性。默认情况下两台mysql机器只 有一台机器在工作,当工作机 mysql主机出现问题后,系统将自 动切换到mysql备机上继续提供服 务,而整个过程只需要30秒的时间, 当mysql主机故障维修完毕后,服 务将自动切换回mysql主机上继续 提供服务。
此方案除了一般常用的双机工具 heartbeat外,主要用了DRBD这 个工具,DRBD是一种块设备,可 以被用于高可用(HA)之中.它类似 于一个网络RAID-1功能.当你将 数据写入本地文件系统时,数据还 将会被发送到网络中另一台主机 上.以相同的形式记录在一个文件 系统中. 本地(主节点)与远程主机(备节点) 的数据可以保证实时同步.当本地 系统出现故障时,远程主机上还会 保留有一份相同的数据,可以继续 使用.
此时测试主机资源回切,将主机的网卡起来,等待约30秒的检测,主机开始取 回资源,以下是主机mysql起来的日志记录
100727 16:21:12 mysqld started 100727 16:21:12 InnoDB: Started; log sequence number 0 43655 100727 16:21:12 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.0.45' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
mysql+heartbeat+drbd
优点:
安全性、稳定性高,出现故障系统将自动切换,从而保证服务的连续 性,相对mysql+heartbeat+存储来说对大优点是节约了存储这个硬件 设备。
缺点:
mysql主机宕机,切换到备机,备机接管服务,待主机修复完配置 failback机制的话会发生脑裂情况,需要手工执行命令进行主机接管。
Mysql数据库高可用方案
演ห้องสมุดไป่ตู้人:陈明
2010.10
实现功能
通过技术手段将因软件、硬件或者是人为 造成的故障对业务的影响降低到最小程度, 从而使数据库对外不间断的提供服务。
实现方式
mysql + replication mysql cluster mysql + heartbeat + drbd mysql + heartbeat + 共享存储
[root@tl1 ~]# more test.sh #!/bin/bash i=0 while [ $i -lt 1000000 ] do mysql -h192.168.218.140 -uroot -pklcadmin -e "insert into share.log val ues ("$i")"; let i=i+1 echo "add $i to table log" done
tl2.klccl.local IPaddr::192.168.218.140/24/eth0 Filesystem::/dev/sdb1::/dbdata::ext3 mysqld
mysql+heartbeat+共享存储
测试 通过导入klccl.0721.sql这个文件,利用脚本将数据库的数据增长到6.0G,并且在 测试机tl上面添加测试脚本,脚本意思通过建立log表,不断往里面的插数据,数 据的顺序依次是0、1、2……100000。
Mysql cluster
优点:
安全性、稳定性高,可以在线增加节点,官方声称可用度可达到 99.999%。
缺点:
至少三个节点,对主机的数量有要求,无形增加方案成本、对于数据 节点要求内存一致、对于引擎只能使用ndb、不支持外键功能、管理 复杂 。
mysql+heartbeat+drbd
概述:
mysql + replication
概述:
Mysql的复制(Replication)是一 个异步的复制,首先必须打开 Master端的binary log(bin-log) 功能,否则无法实现。因为整个 复制过程实际上就是Slave从 Master端获取该日志然后再在自 己身上完全顺序的执行日志中所 记录的各种操作。
此时在测试机上面执行这个脚本,如下所示开始往数据库的log表里面插入数据了
[root@tl1 ~]# ./test.sh add 1 to table log add 2 to table log add 3 to table log add 4 to table log add 5 to table log add 6 to table log …… add 5000 to table log
到了插入到第5000的时候,断开主机的网卡。
查看备机mysql的log日志,看到备机的mysql的会有一个inndb检查修复的操作, 虽然数据量增长到6G,但备机也很快的把mysql服务就起来了。
[root@tl3 ha.d]#tail –f /var/log/mysql.log 100727 16:17:24 mysqld started 100727 16:17:24 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... 100727 16:17:24 InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 732590454. InnoDB: Doing recovery: scanned up to log sequence number 0 732590454 100727 16:17:24 InnoDB: Started; log sequence number 0 732590454 100727 16:17:24 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.0.45' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution