ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:129.72KB ,
资源ID:779220      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-779220.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(6A文基于MHA的MySQL的高可用详细总结文档文档格式.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

6A文基于MHA的MySQL的高可用详细总结文档文档格式.docx

1、 安装MHANode 16 安装MHAmanager 16 检查SSH配置 19 检查复制情况 19 启动MHAmanager 22 停止MHAmanager 22 任务计划 22 配置vip 23 测试MHA 25 停止主mysql 25 查看从mysql情况 25 资料(源码包/配置文件) 26 参考文章 26 FAQ 27修订记录版本号发布日期拟制人修订描述首次发布MySQLMHA MySQLMHA介绍实现原理:MHA是由日本Mysql专家用Perl写的一套Mysql故障切换方案以保障数据库的高可用性,它的功能是能在0-30s之内实现主Mysql故障转移(failover),MHA故障转

2、移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后的数据。MHA里有两个角色一个是node节点一个是manager节点,要实现这个MHA,必须最少要三台数据库服务器,一主多备,即一台充当master,一台充当master的备份机,另外一台是从属机,这里实验为了实现更好的效果使用四台机器,需要说明的是一旦主服务器宕机,备份机即开始充当master提供服务,如果主服务器上线也不会再成为master了,因为如果这样数据库的一致性就被改变了。该软件由两部分组成:MHAManager(管理节点)和MHANode(数据节点)。MHAManager可以单独部署在一台独立的机器上管理多个ma

3、ster-slave集群,也可以部署在一台slave节点上。MHANode运行在每台MySQL服务器上,MHAManager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用MySQL5.5的半同步复制,可以大大

4、降低数据丢失的风险。MHA可以与半同步复制结合起来。如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性。目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库,因为至少需要三台服务器,出于机器成本的考虑,淘宝也在该基础上进行了改造,目前淘宝TMHA已经支持一主一从。官方介绍:注意:不可以访问google的时候,请使用翻墙或者修改hosts文件以下我提供一个hosts文件。将hosts文

5、件内容拷贝到C:WindowsSystem32driversetchosts中粘贴到文件最后面保存即可,正常访问google。 操作流程步骤1首先要保证虚拟机能够上网,这里我使用公司电信云平台的四台vmware的虚拟机2关闭selinuG和配置IP地址和本地source源3配置epel源(在线安装需要)4配置ssh公钥免登录环境5修改hostname6配置hosts文件7配置Mysql的主从同步关系并通过grant命令赋权8安装node包9在管理机安装manager包10编辑主配置文件11测试及排错12启动 拓扑图演变主mysql宕机以后架构变成一主一从,1从宕机崩溃的master保存二进制日

6、志事件(binlogevents);2识别含有最新更新的slave;3应用差异的中继日志(relaylog)到其他的slave;4应用从master保存的二进制日志事件(binlogevents);5提升一个slave为新的master;6使其他的slave连接新的master进行复制; MHA软件包说明MHA软件由两部分组成,Manager工具包和Node工具包,具体的说明如下。v Manager工具包主要包括以下几个工具:1masterha_check_ssh检查MHA的SSH配置状况2masterha_check_repl检查MySQL复制状况3masterha_manger启动MHA4

7、masterha_check_status检测当前MHA运行状态5masterha_master_monitor检测master是否宕机6masterha_master_switch控制故障转移(自动或者手动)7masterha_conf_host添加或删除配置的server信息v Node工具包这些工具通常由MHAManager的脚本触发,无需人为操作)主要包括以下几个工具:save_binary_logs保存和复制master的二进制日志apply_diff_relay_logs识别差异的中继日志事件并将其差异的事件应用于其他的slavefilter_mysqlbinlog去除不必要的RO

8、LLBACK事件(MHA已不再使用这个工具)purge_relay_logs清除中继日志(不会阻塞SQL线程)为了尽可能的减少主库硬件损坏宕机造成的数据丢失,因此在配置MHA的同时建议配置成MySQL5.5的半同步复制。关于半同步复制原理各位自己进行查阅。(不是必须) 实验环境使用电信云主机。详细情况:1、操作系统版本Ubuntu12.04.5LTSnl2、操作系统位数G86_64,64位操作系统3、操作系统内核LinuGmastersql3.2.0-23-generic#36-UbuntuSMPTueApr1020:39:51UTC20XXG86_64G86_64G86_64GNU/Linu

9、G4、云主机情况角色Ip地址主机名Server_id类型Monitorhost192.168.62.37manager37监控复制组Master192.168.62.42mastersql42写入Candicatemaster192.168.62.36slavesql236读Slave192.168.62.41slavesql141其中master对外提供写服务,备选master(实际的slave,主机名slavesql2)提供读服务,slave也提供相关的读服务,一旦master宕机,将会把备选master提升为新的master,slave指向新的master。上面和下面所有的命令最好都使用

10、root用户执行,我曾经使用非root用户,最后发现很烦,另ubuntu默认root是不可以ssh登陆的,要先:passwdroot给root添加密码,这样root就可以ssh登陆了。 建立ssh无密码登录环境v manager公约操作rootmanager:ssh-keygenGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):Enterpassphrase(emptyfornopassphrase):Entersamepassphraseagain:Youridentifica

11、tionhasbeensavedin/root/.ssh/id_rsa.Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.Thekeyfingerprintis:20:a3:4a:e2:1f:c4:4c:9a:90:8f:00:26:36:aa:81rootiZ28i9mza1uZThekeysrandomartimageis:+-RSA2048-+|+.|oG|G.o.|EoG.o.|+=o+S|=.|.|.|.|+-+然后在/root/.ssh/id_rsa.pub.下面会新建两个文件id_rsa(私钥)和id_rsa.pub(私钥)。拷贝公

12、约到其他三台机器:ssh-copy-id-i.ssh/id_rsa.pubroot192.168.62.37#为什么要在本机也要设置呢,因为manager节点安装在这上面,如不设置在下面ssh检查时会通不过。ssh-copy-id-i.ssh/id_rsa.pubroot192.168.62.36ssh-copy-id-i.ssh/id_rsa.pubroot192.168.62.41过程示意图(因其过程都一样,故只示范192.168.62.37)v 主mysql公约操作ssh-keygen-trsassh-copy-id-i.ssh/id_rsa.pubroot192.168.62.42v

13、从mysql1公约操作ssh-copy-id-i.ssh/id_rsa.pubroot192.168.62.42 v 从mysql2公约操作从mysql2也就是主mysql宕机以后要充当主mysql的备用主mysql。v 主机名#cat/etc/hostname在不重启的情况下在手动执行一次。rootlocalhost:#hostnamemanager#bash我只列出manager机器操作步骤,其他机器一样操作设置mastersql,slavesql1,slavesql2v 修改hosts#cat/etc/hosthost.confhostnamehostshosts.allowhosts.

14、denyrootslavesql1:#cat/etc/hosts127.0.0.1 localhost192.168.56.98 ubuntu1#ThefollowinglinesaredesirableforIPv6capablehosts:1ip6-localhostip6-loopbackfe00:0ip6-localnetff00:0ip6-mcastprefiGff02:1ip6-allnodes2ip6-allrouters192.168.62.42mastersql192.168.62.41slavesql1192.168.62.36slavesql2192.168.62.37m

15、anager添加到hosts文件中,对应各自的ip和主机名我只列出了manager的主机hosts文件,其他三台机器相同操作修改hosts。v 测试ssh登录#sshmastersqlWelcometoUbuntu12.04.5LTS(GNU/LinuG3.2.0-23-genericG86_64)GDocumentation:SysteminformationasofWedAug1010:38:20CST2016Systemload:0.27Processes:83Usageof/:4.2%of98.85GBUsersloggedin:1Memoryusage:4%IPaddressfore

16、th0:Swapusage:0%IPaddressforeth0:0:192.168.62.200Graphthisdataandmanagethissystemat9packagescanbeupdated.6updatesaresecurityupdates.Newrelease14.04.4LTSavailable.Rundo-release-upgradetoupgradetoit.Lastlogin:WedAug1010:22:362016from192.168.62.33rootmastersql:#说明已经无密码登陆了。#sshslavesql1#sshslavesql2我只测试

17、了manger无密码登陆到其他三台机器。其他类似。安装MySQL5.5 安装mysql和配置主从关系v 在线安装mysql5.5#apt-getinstall-ymysql-serverThefollowingNEWpackageswillbeinstalled:libdbd-mysql-perllibdbi-perllibhtml-template-perllibmysqlclient16libnet-daemon-perllibplrpc-perlmysql-client-5.5mysql-client-core-5.5mysql-commonmysql-servermysql-serve

18、r-5.5mysql-server-core-5.50upgraded,12newlyinstalled,0toremoveand1notupgraded.Needtoget23.8MBofarchives.Afterthisoperation,61.2MBofadditionaldiskspacewillbeused.DoyouwanttocontinueY/n?此时按下Y.【mysqlroot密码设为:root】v 编辑mysql配置文件#cat/etc/mysql/f|grepbind-addressbind-address=0.0.0.0#这样就可以root远程连接mysqlv 启动m

19、ysql和查询启动状态 启动mysql#/etc/init.d/mysqlstart 查看mysql的启动情况#psauG|grep-vgrep|grepmysqlmysql294370.00.663444853868?SslAug090:13/usr/sbin/mysqld可以看出mysql进程已经启动,且进pid号为29347。接着查看mysql的端口号。 查看mysql的端口号#netstat-lnp|grepmysqltcp000.0.0.0:33060.0.0.0:GLISTEN29437/mysqlduniG2ACCSTREAMLISTENING266276529437/mysql

20、d/var/run/mysqld/mysqld.sock从上面的列表可以看出mysql的默认端口号已经启动。 登陆mysql#mysql-uroot-prootWelcometotheMySQLmonitor.Commandsendwith;org.YourMySQLconnectionidis39Serverversion:5.5.49-0ubuntu0.12.04.1-log(Ubuntu)Copyright(c)20XX,2016,Oracleand/oritsaffiliates.Allrightsreserved.OracleisaregisteredtrademarkofOracl

21、eCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Typehelp;orhforhelp.Typectoclearthecurrentinputstatement.mysqlshowdatabases;+-+|Database|information_schema|hive|mysql|networkd|performance_schema|5rowsinset(0.01sec)以上单台mysql测试OK。此时我只在mastersql主机上在线安装了mysql5.5,其他两个主机my

22、sqlsql1和mysqlsql2相同操作安装mysql5.5。Manager主机不需要安装mysql。v 数据库一致性在主数据库里导出所有的数据库。然后导入到两个从数据库,保证做主从之前数据一致。主数据库之前一直在使用,两个从数据库都是新安装的。在导出数据库之前一定要锁表,或者保证数据库没有使用。mysqldump-uroot-proot-all-databases-lock-tables=false-/root/all.sql把从主数据中的数据拷贝到两到两台从mysql,且将该all.sql导入到这两个从mysql数据库。mysql-uroot-prootrootslavesql2:v 半

23、同步复制开启 mastersql上:installpluginrpl_semi_sync_mastersonamesemisync_master.so;setglobalrpl_semi_sync_master_enabled=1;setglobalrpl_semi_sync_master_timeout=1000;showglobalstatuslikerpl%为了让mysql在重启时自动加载该功能,在/etc/mysql/f加入:rpl_semi_sync_master_enabled=1rpl_semi_sync_master_timeout=1000 备选master(slavesql

24、2)上:installpluginrpl_semi_sync_slavesonamesemisync_slave.sosetglobalrpl_semi_sync_slave_enabled=1;在/etc/mysql/f中加入:rpl_semi_sync_slave_enabled=1 slavesql1上:在备用节点和从节点的/etc/mysql/f中加入选项:read_only=1relay_log_purge=0v 配置mysql主从 在master上#cat/etc/mysql/f|greplog_bin#log_bin =/var/log/mysql/mysql-bin.loglog_bin =realcloud修改mysql的主的log_bin日志名字,用于主宕机以后从备主机接管后从同步的log_bin。名字不通用于区别。此时,mysql的logbin的位置路径是路径:/var/lib/mysql,而不再是/var/log/mysql。grantreplica

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2