仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1011|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页设计keepalived构建高可用MySQL-HA

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:14:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。  关于MySQL-HA,今朝有多种办理计划,好比heartbeat、drbd、mmm、共享存储,可是它们各有优弱点。heartbeat、drbd设置较为庞大,必要本人写剧本才干完成MySQL主动切换,关于不会剧本言语的人来讲,这无疑是一种脑裂成绩;关于mmm,临盆情况中很少有人用,且mmm办理端必要独自运转一台服务器上,如果想完成高可用,就得对mmm办理端做HA,如许无疑又增添了硬件开支;关于共享存储,团体以为MySQL数据仍是放在当地较为平安,存储设备究竟存在单点隐患。利用MySQL双master+keepalived是一种十分好的办理计划,在MySQL-HA情况中,MySQL互为主从干系,如许就包管了两台MySQL数据的分歧性,然后用keepalived完成假造IP,经由过程keepalived自带的服务监控功效来完成MySQL妨碍时主动切换。
  上面,我把行将上线的一个临盆情况中的架构与人人分享一下,看一下这个架构中,MySQL-HA是怎样完成的,情况拓扑以下
  1. MySQL-VIP:192.168.1.200MySQL-master1:192.168.1.201MySQL-master2:192.168.1.202OS版本:CentOS5.4MySQL版本:5.0.89Keepalived版本:1.1.20
复制代码
  1、MySQLmaster-master设置
  1、修正MySQL设置文件
  两台MySQL均如要开启binlog日记功效,开启办法:在MySQL设置文件[MySQLd]段中加上log-bin=MySQL-bin选项
  两台MySQL的server-ID不克不及一样,默许情形下两台MySQL的serverID都是1,需将个中一台修正为2便可
  2、将192.168.1.201设为192.168.1.202的主服务器
  在192.168.1.201上新建受权用户
  1. MySQL>grantreplicationslaveon*.*toreplication@%identifiedbyreplication;QueryOK,0rowsaffected(0.00sec)MySQL>showmasterstatus;+------------------+----------+--------------+------------------+FilePositionBinlog_Do_DBBinlog_Ignore_DB+------------------+----------+--------------+------------------+MySQL-bin.000003374+------------------+----------+--------------+------------------+1rowinset(0.00sec)
复制代码
  在192.168.1.202大将192.168.1.201设为本人的主服务器
  1. MySQL>changemastertomaster_host=192.168.1.201,master_user=replication,master_password=replication,master_log_file=MySQL-bin.000003,master_log_pos=374;QueryOK,0rowsaffected(0.05sec)MySQL>startslave;QueryOK,0rowsaffected(0.00sec)MySQL>showslavestatusG***************************1.row***************************Slave_IO_State:WaitingformastertosendeventMaster_Host:192.168.1.201Master_User:replicationMaster_Port:3306Connect_Retry:60Master_Log_File:MySQL-bin.000003Read_Master_Log_Pos:374Relay_Log_File:MySQL-master2-relay-bin.000002Relay_Log_Pos:235Relay_Master_Log_File:MySQL-bin.000003Slave_IO_Running:YesSlave_SQL_Running:YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno:0Last_Error:Skip_Counter:0Exec_Master_Log_Pos:374Relay_Log_Space:235Until_Condition:NoneUntil_Log_File:Until_Log_Pos:0Master_SSL_Allowed:NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master:01rowinset(0.00sec)
复制代码
  3、将192.168.1.202设为192.168.1.201的主服务器
  在192.168.1.202上新建受权用户
  1. MySQL>grantreplicationslaveon*.*toreplication@%identifiedbyreplication;QueryOK,0rowsaffected(0.00sec)MySQL>showmasterstatus;+------------------+----------+--------------+------------------+FilePositionBinlog_Do_DBBinlog_Ignore_DB+------------------+----------+--------------+------------------+MySQL-bin.000003374+------------------+----------+--------------+------------------+1rowinset(0.00sec)
复制代码
  在192.168.1.201上,将192.168.1.202设为本人的主服务器
  1. MySQL>changemastertomaster_host=192.168.1.202,master_user=replication,master_password=replication,master_log_file=MySQL-bin.000003,master_log_pos=374;QueryOK,0rowsaffected(0.05sec)MySQL>startslave;QueryOK,0rowsaffected(0.00sec)MySQL>showslavestatusG***************************1.row***************************Slave_IO_State:WaitingformastertosendeventMaster_Host:192.168.1.202Master_User:replicationMaster_Port:3306Connect_Retry:60Master_Log_File:MySQL-bin.000003Read_Master_Log_Pos:374Relay_Log_File:MySQL-master1-relay-bin.000002Relay_Log_Pos:235Relay_Master_Log_File:MySQL-bin.000003Slave_IO_Running:YesSlave_SQL_Running:YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno:0Last_Error:Skip_Counter:0Exec_Master_Log_Pos:374Relay_Log_Space:235Until_Condition:NoneUntil_Log_File:Until_Log_Pos:0Master_SSL_Allowed:NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master:01rowinset(0.00sec)
复制代码
  4、MySQL同步测试
  如上述均准确设置,如今任何一台MySQL上更新数据城市同步到另外一台MySQL,MySQL同步在此不再演示
<p><Pstyle="TEXT-INDENT:2em">
MySQL的支持者们却认为,MySQL所保留的功能都是精华,并且是你部署、MySQL学习教程配置和维护这个数据库所必不可少的一些功能。
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-19 05:52:12 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
海妖 该用户已被删除
板凳
发表于 2015-1-24 12:30:18 来自手机 | 只看该作者
所以你总能得到相应的升级版本,来满足你的需求。
谁可相欹 该用户已被删除
地板
发表于 2015-2-1 12:08:29 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
兰色精灵 该用户已被删除
5#
发表于 2015-2-7 05:05:15 | 只看该作者
我个人认为就是孜孜不懈的学习
分手快乐 该用户已被删除
6#
发表于 2015-2-20 14:28:14 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
透明 该用户已被删除
7#
发表于 2015-3-6 18:25:00 | 只看该作者
光写几个SQL实在叫无知。
简单生活 该用户已被删除
8#
发表于 2015-3-13 05:10:44 | 只看该作者
也可谈一下你是怎么优化存储过程的?
爱飞 该用户已被删除
9#
发表于 2015-3-20 13:52:05 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-12 10:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表