MySQL内建复制功效来优化可用性[MySQL防范]
本文“MySQL内建复制功效来优化可用性[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
MySQL内建复制功效来优化可用性,在Soundbreak我们每天24小时不中止地播放实况音频和视频,所以关于MySQL的新增的复制特点,我们不能做出很令人信服的测试.通过测试我们发现,可以利用这个特点来与备份数据库服务器保持数据同步,这样当主服务器因为某种缘由处理失效时,可以利用备份机处理全部的查询.关于这样的要求,配置两台服务器并不艰难.我将具体谈论整个处理历程,同时谈论一下当主服务器失效时,若何利用PHP来重定向查询.
MySQL内部复制功效是成立在两个或两个以上服务器之间,通过设定它们之间的主-从关系来实现的.此中一个作为主服务器,别的的作为从服务器.我将具体谈论若何配置两台服务器,将一个设为主服务器,另一个设为从服务器.并且描写一下在它们之间举行切换的处理历程.我是在MySQL的3.23.23版本上举行的配置设置历程,并且也是在这个版本上举行的测试.MySQL开辟人员倡议最好利用最新版本,并且主-从服务器均利用相同的版本.同时MySQL 3.23版本仍旧是beta测试版,并且这个版本大概不能向下兼容.所以因为这个缘由,在实际的网站中,我目前还没有利用这个版本.拥有容错本领具有一个好处是,在不需中止任何查询的情形下,对服务器举行进级.
第一步:配置主服务器
在这篇文章的剩下篇幅中,我将指定两台服务器.A(IP为10.1.1.1)作为主服务器(简称为主机).B(IP为10.1.1.2)作为后备服务器(简称为备机).
MySQL的复制功效的实现历程为:备机(B)与主机(A)衔接,然后读出主机的二进制更新日记,再将发生的改变归并到自已的数据库中.备机需求一个用户帐号来与主机衔接,所以在主机上成立一个帐号,并只给它FILE权限,以下操作: GRANT FILE ON *.* TO replicate@10.1.1.2 IDENTIFIED BY ’password’;
为了备机可以与主机衔接,要在主机上运行’FLUSH PRIVILEGES’,不过不要耽忧,因为我们将在下面的步骤中停掉服务器.
目前我们需求主机数据库的一个快照,并且对主机举行配置,答应生成二进制的更新日记.首先编辑’my.cnf’文件,以便答应二进制更新日记,所以在[mysqld]部份的下面某个地方增添一行:’log-bin’.在下一次服务器启动时,主机将生成二进制更新日记(名为:<主机名>-bin.<增量序号#>).为了让二进制更新日记有效,关闭MySQL服务程序,然后将主机上的全部数据库目录到另一个目录中,接侧重新启动mysqld.
请肯定得到了全部数据库,不然在举行复制时,假如一个表在主机上存在但在备机上不存在,将因为出错而退出.目前你已经得到了数据的快照,和一个从成立快照以来的二进制日记,上面记录着任何对数据库的改正.请注意MySQL数据文件(*.MYD,*.MYI和*.frm)是依靠于文件系统的,所以你不能仅仅举行文件传输,如从Solaris到Linux.假如你处于一个异种的服务器环境,你将不得不利用mysqldump实用程序或别的的定制脚本来得到数据快照.
第二步:配置备机
让我们持续.停掉备机上的MySQL服务程序,并且把从主机上拷贝来的数据库目录移到备机上的data目录下.请确认将目录的拥有者和属组改变成MySQL用户呼应值,并且改正文件情势为660(只对拥有者和属组可读、可写),目录本身为770(只对拥有者和属组可读、可写和可履行).
持续.在备机上启动MySQL服务程序,确认MySQL工作正常.运行几个select查询(不要update或insert查询),看一看在第一步中得到的数据快照能否成功.接着,在测试成功后关掉MySQL服务程序.
在备机上配置需求拜候的主机,以便接纳主机的更改.所以需求编辑务机上的’my.cnf’文件,在[mysqld]部份中增添下面几行: master-host=10.1.1.1
master-user=replicate
master-password=password
在启动备机服务程序后,备机服务程序将查看在’my.cnf’文件中所指定的主机,查看能否有改变,并且将这些改变归并到自已的数据库中.备机保持了主机的更新记录,这些记录是从主机的’master.info’文件中接纳下来的.备机线程的状况可以通过sql号令’SHOW SLAVE-STATUS’看到.在备机上处理二进制日记中假如发生错误,都将招致备机线程的退出,并且在*.err的日记文件中生成一条信息.然后错误可以被改正,接着可以利用sql语句’SLAVE START’来重新启动备机线程.线程将从主机二进制日记处理中止的地方持续处理.
至此,在主机上所发生的数据改变应当已经复制到备机上了,要测试它,你可以在主机上插入或更新一条记录,而在备机上挑选这条记录.
目前我们拥有了从A机到B机的这种主-从关系,这样当A机大概当机的时刻,答应我们将全部的查询重定向到B机上去,但是当A机恢复时,我们没有办法将发生的改变恢复到A机中去.为了办理这个问题,我们成立从B机到A机的主-从关系.
第三步:成立彼此的主从关系
首先在B机上的my.cnf文件中,在[mysqld]部份中加入’log-bin’,接侧重新启动mysqld,然后成立可在
它的上面履行复制功效的用户帐号,利用: GRANT FILE ON *.* TO replicate@10.1.1.1 IDENTIFIED BY ’password’;
在B机上运行’FLUSH PRIVILEGES’号令,以便装入在加入复制用户后的新的受权表,接着回到A机上,在它的’my.cnf’中加入下面几行: master-host=10.1.1.2
master-user=replicate master-password=password
在重启A机的服务程序之后,目前我们一拥有了在A机与B机之间的彼此主-从关系.不管在哪个服务器上 更新一条记录或插入一条记录,都将被复制到另一台服务器上.要注意的是:我不敢肯定一个备机归并二进 制日记改变的速度有多快,所以用这种办法来举行插入或更新语句的负载均衡大概不是一个好办法.
以上是“MySQL内建复制功效来优化可用性[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |