在MySQL数据库中, 支持单项、异步复制。在复制过程当中,一个服务器充当主服务器,而另一台服务器充当从服务器。以下图所示。此时主服务器会将更 新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志能够记录并发送到从服务器的更新中去。当一台从服务器链接到主服 务器时,从服务器会通知主服器从服务器的日志文件中读取最后一次成功更新的位置。而后从服务器会接收从那个时刻起发生的任何更新,而后锁住并等到主服务器 通知新的更新。
这就是MySQL服务器数据库复制原理的基本说明。做为数据库管理员,对于这个原理只要有几个基本的了解便可。 html
实惠一:实现服务器负载均衡
经过服务器复制功能,能够在主服务器和从服务器之间实现负载均衡。便可以经过在主服务器和从服务器之间切分处理客户查询的负荷,从而获得更好的客户相应时间。一般状况下,数据库管理员会有两种思路。
一是在主服务器上只实现数据的更新操做。包括数据记录的更新、删除、新建等等做业。而不关心数据的查询做业。数据库管理员将数据的查询请求所有转发到 从服务器中。这在某些应用中会比较有用。如某些应用,像基金净值预测的网站。其数据的更新都是有管理员更新的,即更新的用户比较少。而查询的用户数量会非 常的多。此时就能够设置一台主服务器,专门用来数据的更新。同时设置多台从服务器,用来负责用户信息的查询。将数据更新与查询分别放在不一样的服务器上进 行,便可以提升数据的安全性,同时也缩短应用程序的响应时间、提升系统的性能。
二是在主服务器上与从服务器切分查询的做业。在这种思路下,主服务器不仅仅要完成数据的更新、删除、插入等做业,同时也须要负担一部分查询做业。而从 服务器的话,只负责数据的查询。当主服务器比较忙时,部分查询请求会自动发送到从服务器重,以下降主服务器的工做负荷。固然,像修改数据、插入数据、删除 数据等语句仍然会发送到主服务器中,以便主服务器和从服务器数据的同步。
要在数据库之间实现负载的均衡,其关键点就是数据同步的时间。若是主服务器与从服务器之间数据的更新时间比较长,此时从主服务器中查询获得的数据就会 同从从服务器中获得的数据有差别。而若是同步的时间比较短,如实现同步复制,对网络带宽、服务器设备等就有比较高的要求。
可见这个同步的时间选择直接关系到其应用的效果。那么这个同步的时间应该选择多少呢?这没有一个固定的答案。主要是看用户的须要。如用户对数据的及时 性要求并非很高,或者数据更新的频率不是很高,那么这个同步的时间能够稍微长一点。可是若是这个数据的及时性要求很高,如股票的价格等等,此时就须要能 够实现同步更新。因此具体要看企业实际的应用才可以决定采用什么样的同步时间。
在采起这个应用时,须要注意MySQL数据库的复制是单向的。即只可以将数据从主服务器复制到从服务器,而不可以将数据从从服务器发生到主服务器。这 也就是说,数据库管理员不可以在从服务器上更新数据,不然的话,就可能会与主服务器上的数据产生冲突。默认状况下,系统会自动利用主服务器上的数据来更新 从服务器上的数据。即在从服务器上所作的任何更改,到时候都会失效。若是是用户的请求,通常不用担忧。系统会自动判断用户的请求是查询请求仍是数据更新请 求。并自动根据请求的类型转发到不一样的服务器上。主要是数据库管理员,不要手痒痒,手动去更新从服务器上的数据。不然的话,就会致使从服务器与主服务器之 间数据的冲突。 数据库