23.1、mysql高可用业务需求:

23.2、mysql高可用架构图(单主热备模式):

23.6、部署drbd、heartbeat、mysql的主从同步:

1、部署heartbeat:参考"21、部署herartbeat"文档;

2、部署drbd:参考"22、部署drbd"文档;

3、heartbeat和drbd整合:参考"22.17、heartbeat和drbd整合"文档;

3、部署mysql同步:参考"14、mysql主从复制实战"、"3、mysql的多实例配置"文档;

23.7、配置细节说明:

停止主和从的heartbeat和drbd服务;

1、heartbeat:

(1)修改maste-db和slave-db的/etc/ha.d/haresource配置文件:

(2)master-db IPaddr::172.16.1.26/24/eth1 drbddisk::data Filesystem::/dev/drbd0::/master-db::ext4 mysql

2、drbd:

(1)启动master-db和slave-db上的drbd服务;

(2)使用'drbdadm primary data'将master-db端的drdb服务置主;

(3)手动挂载master-db端的'/dev/drbd0'设备到'/master-db/'目录上;

3、mysql:

(1)在master-db和slave-db相同的路径下安装mysql软件;

(2)master-db端在/master-db/目录下面初始化mysql并指定data目录为/master-db/,为mysql创建登录密码,启动mysql测试;

此时在master-db的操作都同步到了slave-db端的/dev/drbd0管理的/dev/sdb1系统分区下面;slave-db端只要保证有/master-db/目录即可;

[root@master-db ~]#tree /master-db/

/master-db/

├── 3306

│   ├── my.cnf

│   └── mysql

│ └── data

└── lost+found

2 directories, 3 files

(3)在master-db端和slave-db端将mysql脚本拷贝到/etc/ha.d/resource.d/目录下面,方便heartbeat管理mysql,要加执行的权限;

(4)为了方便测试在slave-db端安装端口为3307的mysql多实例进行测;

23.8、测试:

停止master-db和slave-db上的mysql、heartbeat、drbd服务;

1、启动顺序:

(1)master-db:

1)drbdadm up data

2)/etc/init.d/heartbeat start

(2)slave-db:

1)drbdadm up data

2)/etc/init.d/heartbeat start

3)/data/3307/mysql start

2、结果:

(1)master-db:

1)df -h

Filesystem Size Used Avail Use% Mounted on

/dev/drbd0 4.5G 1.4G 2.9G 33% /master-db

2)cat /proc/drbd

0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----

ns:12 nr:0 dw:4 dr:817 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

3)ip addr

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:5c:f0:d0 brd ff:ff:ff:ff:ff:ff

inet 172.16.1.16/24 brd 172.16.1.255 scope global eth1

inet 172.16.1.26/24 brd 172.16.1.255 scope global secondary eth1

inet6 fe80::20c:29ff:fe5c:f0d0/64 scope link

valid_lft forever preferred_lft forever

4)ss -tunlp | grep 3306

tcp LISTEN 0 600 *:3306 *:* user

(2)slave-db:

1)ip addr、df -h、ss -tunlp | grep 3306无结果:

2)cat /proc/drbd

0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----

ns:12 nr:0 dw:4 dr:817 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

3)查看3307主从同步结果:

show slave status\G;

3、master-db和slave-db进行切换:

(1)在master-db上执行'/usr/share/heartbeat/hb_standy'命令将资源交给slave-db端,

此时结果和上面的结果想法;此时会发现slave-db端的3307 mysql实例在show slave status\G;状态时

会出现正在尝试连接主端,等待60s就可以了,在等待的60s期间由于vip已经漂移到了salve-db端,磁盘

已经挂载(drbd此端为主,对端为从),mysql启动,所以用户还是可以往数据库中写数据的;

(2)在主端执行'/usr/share/heartbeat/hb_takeover local'master-db从slave-db接管回资源;

4、关闭顺序:

(1)slave-db:

/data/3307/mysql stop

/etc/init.d/heartbeat stop

drbdadm down data

(2)master-db:

/etc/init.d/heartbeat stop

drbdadm down data

23、mysql高可用实践的更多相关文章

  1. (5.15)mysql高可用系列——MHA实践

    关键词:MHA,mysql mha [1]需求 采用mysql技术,实现MHA高可用主从环境,预计未来数据量几百G MHA概念参考:MYSQL高可用技术概述 [2]环境技术架构 [2.1]MHA简介 ...

  2. MySQL高可用方案MHA自动Failover与手动Failover的实践及原理

    集群信息 角色                             IP地址                 ServerID      类型 Master                     ...

  3. MySQL高可用复制管理工具 —— Orchestrator使用

    背景 在上一篇「MySQL高可用复制管理工具 —— Orchestrator介绍」中大致介绍了Orchestrator的功能.配置和部署,当然最详细的说明可以查阅官方文档.本文开始对Orchestra ...

  4. MySQL高可用之MHA的搭建 转

     http://www.cnblogs.com/muhu/p/4045780.html http://www.cnblogs.com/gomysql/p/3675429.html http://www ...

  5. mysql高可用方案MHA介绍

    mysql高可用方案MHA介绍 概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10-30秒内),完成故障切换,部署MHA, ...

  6. Heartbeat+DRBD+MySQL高可用方案【转】

    转自Heartbeat+DRBD+MySQL高可用方案 - yayun - 博客园 http://www.cnblogs.com/gomysql/p/3674030.html 1.方案简介 本方案采用 ...

  7. MySQL高可用方案MHA的部署和原理

    MHA(Master High Availability)是一套相对成熟的MySQL高可用方案,能做到在0~30s内自动完成数据库的故障切换操作,在master服务器不宕机的情况下,基本能保证数据的一 ...

  8. MySQL高可用之MHA的搭建

    MySQL MHA架构介绍: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Face ...

  9. mysql高可用架构之MHA,haproxy实现读写分离详解

    MySQL高可用架构之MHA 一.运维人员需要掌握的MySQL技术: 1.基本SQL语句 2.基本的管理[库表数据的管理    权限的管理] 3.容灾       保证数据不丢失. 二.工作中MySQ ...

随机推荐

  1. [Qt] 事件机制(一)

    事件主要分为两种: 在与用户交互时发生.比如按下鼠标(mousePressEvent),敲击键盘(keyPressEvent)等 系统自动发生,比如计时器事件(timerEvent)等 每种事件对应一 ...

  2. 马哥Linux SysAdmin学习笔记(一)

    Linux入门 Linux系统管理: 磁盘管理,文件系统管理 RAID基础原理,LVM2 网络管理:TCP/IP协议,Linux网络属性配置 程序包管理:rpm,yum 进程管理:htop,glanc ...

  3. 攻防世界(十二)upload1

    攻防世界系列 :upload1 1.打开题目,文件上传. 2.立即上传shell 1.php <?php @eval($_POST[root]); ?> 提示只能上传图片 3.burp改报 ...

  4. 关于Ajax 的 cache 属性 (Day_34)

    最近做项目,在某些页面显示,ajax刷新总是拿不到新内容,时常需要清除缓存,才能到达想要的效果. 经过再次查看文档,最后加了一行属性:cache:false 即可解决问题 我们先看下文档的说明: 可以 ...

  5. urllib2连接超时设置

    #urllib2设置超时 #获取网页的源码 def getHtml(url,i): if i > 2: return try: req = urllib2.Request(url) time.s ...

  6. SSTI漏洞-fastapi

    0x00 原理   SSTI漏洞全称服务器模板注入漏洞,服务器模板接收了用户输入的恶意代码,未经过滤便在服务端执行并通过渲染模板返回给用户,使得用户可以通过构造恶意代码在服务端执行命令. 0x01 c ...

  7. 限流&熔断的考量

    限流的原则,是尽量在流量源头限,并且是需要依据现有团队所掌握的技能来. 如上最左侧便是主要流量的来源入口,首先就要限制的地方就是slb节点的income流量 slb节点的流量特点是啥?加限流怎么加?限 ...

  8. Go语言web开发---Beego的session

    一.简介 Session是一段保存在服务器上的信息,当客户端第一次访问服务器时创建Session,同时也会创建一个名为beegosessionID,值为创建的Session的id的Cookie. 这个 ...

  9. 《MySQL面试小抄》索引考点一面总结

    <MySQL面试小抄>索引考点一面总结 我是肥哥,一名不专业的面试官! 我是囧囧,一名积极找工作的小菜鸟 囧囧表示:面试最怕的就是面试官问的知识点太笼统,自己无法快速定位到关键问题点!!! ...

  10. Python 应用领域以及版本之间的区别

    Python 应用领域以及版本之间的区别 一.Python应用领域 1. Python+人工智能,给你更多研究方向选择! 2. 企业级综合实战项目,集六大前沿技术为一体 二. Python 2与Pyt ...