MYSQL网页设计keepalived构建高可用MySQL-HA
如果表有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是怎样完成的,情况拓扑以下
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设置文件段中加上log-bin=MySQL-bin选项
两台MySQL的server-ID不克不及一样,默许情形下两台MySQL的serverID都是1,需将个中一台修正为2便可
2、将192.168.1.201设为192.168.1.202的主服务器
在192.168.1.201上新建受权用户
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设为本人的主服务器
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上新建受权用户
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设为本人的主服务器
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学习教程配置和维护这个数据库所必不可少的一些功能。 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 所以你总能得到相应的升级版本,来满足你的需求。 Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。 我个人认为就是孜孜不懈的学习 记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。 光写几个SQL实在叫无知。 也可谈一下你是怎么优化存储过程的? 对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
页:
[1]