MySQL手册版本 5.0.20-MySQL同步

Angel2life

Angel2life

2016-01-29 13:51

MySQL手册版本 5.0.20-MySQL同步,MySQL手册版本 5.0.20-MySQL同步

6 MySQL 同步

同步功能在MySQL 3.23.15就开始引进了,它可以把一个MySQL服务器上的数据复制到另一个服务器上去。本章描述了MySQL的各种复制特性。介绍了同步的概念,如何设置同步服务器,以及可用服务器的参照。还提供了一系列的常见问题及其答案,疑难解答。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

"14.6 Replication Statements"中介绍了同步相关的SQL语句语法。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

我们建议经常访问"http://www.mysql.com"经常阅读本章的最新内容。同步功能一直在改进,我们经常把这部分的手册更新到当前的最新内容。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

6.1 同步介绍

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

MySQL 3.23.15及更高的版本支持单向同步。一个服务器作为master(主服务器),一个或者多个服务器作为slave(从服务器)。master服务器把更新的内容写到二进制日志(binary log或binlog)中,并且维护了一个索引文件来记录日志循环的情况。这些日志中的更新部分会被发送到slave服务器。一个slave连接到master之后,它通知master最后一次成功增量更新的日志位置。slave会找出所有从那个时刻开始的更新操作,然后阻塞并等待master发送新的更新操作。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

如果想要做一个同步服务器链的话,slave同时也可以作为master。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

注意,启用同步后,所有要同步的更新操作都必须在master上执行。否则,必须注意不要造成用户在master上的更新和在slave上的更新引起冲突。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

单向同步的好处是稳健,高速,系统易管理:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

有了master/slave机制后,就更稳健了。当master上发生问题时,可以把slave作为备用切换过去。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

可以在slave和master之间分担一些查询,这就能加速响应时间。SELECT 查询就可以在slave上执行以减少master的负载。更新数据的语句则要放在mater上执行以保持master和slave的同步。当非更新操作占多数时,负载均衡就很有效了,不过这只是普通情况而言。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

另一个好处是可以在slave上备份数据,无需干扰master。备份数据时master照样继续运作。详情请看"5.7.1 Database Backups"。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

6.2 同步机制实现概述

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

MySQL同步机制基于master把所有对数据库的更新、删除 等)都记录在二进制日志里。因此,想要启用同步机制,在master就必须启用二进制日志。详情请看"5.9.4 The Binary Log"。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

每个slave接受来自master上在二进制日志中记录的更新操作,因此在slave上执行了这个操作的一个拷贝。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

应该非常重要地意识到,二进制日志只是从启用二进制日志开始的时刻才记录更新操作的。所有的slave必须在启用二进制日志时把master上已经存在的数据拷贝过来。如果运行同步时slave上的数据和master上启用二进制日志时的数据不一致的话,那么slave同步就会失败。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

把master上的数据拷贝过来的方法之一实在slave上执行 LOAD DATA FROM MASTER 语句。不过要注意,LOAD DATA FROM MASTER 是从MySQL 4.0.0之后才开始可以用的,而且只支持master上的 MyISAM 类型表。同样地,这个操作需要一个全局的读锁,这样的话传送日志到slave的时候在master上就不会有更新操作了。当实现了自由锁表热备份时(在MySQL 5.0中),全局读锁就没必要了。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/php/)

由于有这些限制,因此我们建议只在master上相关数据比较小的时候才执行 LOAD DATA FROM MASTER 语句,或者在master上允许一个长时间的读锁。由于每个系统之间 LOAD DATA FROM MASTER 的速度各不一样,一个比较好的衡量规则是每秒能拷贝1MB数据。这只是的粗略的估计,不过master和slave都是奔腾700MHz的机器且用100MB

展开更多 50%)
分享

猜你喜欢

MySQL手册版本 5.0.20-MySQL同步

PHP
MySQL手册版本 5.0.20-MySQL同步

MySQL手册版本 5.0.20-MySQL同步(三)

PHP
MySQL手册版本 5.0.20-MySQL同步(三)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

MySQL手册版本 5.0.20-MySQL同步(二)

PHP
MySQL手册版本 5.0.20-MySQL同步(二)

MySQL手册版本 5.0.20-MySQL优化(六)

MySQL mysql数据库
MySQL手册版本 5.0.20-MySQL优化(六)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MySQL手册版本 5.0.20-MySQL优化(一)

MySQL mysql数据库
MySQL手册版本 5.0.20-MySQL优化(一)

MySQL手册版本 5.0.20-MySQL优化(二) (1)

PHP
MySQL手册版本 5.0.20-MySQL优化(二)  (1)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

且看微软的.Net和Sun公司的J2EE如何对垒

且看微软的.Net和Sun公司的J2EE如何对垒

.Net将如何影响我们?(二)

.Net将如何影响我们?(二)
下拉加载更多内容 ↓