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

2016-01-29 13:50 2 1 收藏

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

【 tulaoshi.com - PHP 】

6.5 不同MySQL版本之间的同步兼容性

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

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

最早的二进制格式是在MySQL 3.23中开发出来的。在MySQL 4.0中改进了,MySQL 5.0又改进了。在配置同步时需要升级服务器的话,它们之间的因果关系在"6.6 Upgrading a Replication Setup"中描述了。

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

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

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

如果只关心同步,任何MySQL 4.1.x版本和MySQL 4.0.x是一样的,因为它们都使用相同格式的二进制日志。所以,这些版本是互相兼容的,它们之间可以无缝地运行同步。一个例外的情况是,MySQL 4.0.0到4.0.2由于开发的较早,无法和后来的版本互相兼容,所以不要使用它们(它们是4.0版本的alpha系列。它们之间的兼容性在发布包的手册中均有相关文档)。

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

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

下表展示了不同版本的MySQL之间的master/slave同步兼容性。

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



Master Master Master

3.23.33 and up 4.0.3 and up or any 4.1.x 5.0.0Slave 3.23.33 and up yes no noSlave 4.0.3 and up yes yes noSlave 5.0.0 yes yes yes

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

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

一个通常的规则是,我们建议使用最近的MySQL版本,因为同步兼容性一直在改善。我们也建议master和slave都使用同一个版本。

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

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

6.6 升级同步

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

如果升级服务器时涉及到配置同步,升级设置的步骤跟当前版本以及升级后的版本不同而异。

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

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

6.6.1 升级同步到 4.0 或 4.1

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

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

本节适用于从MySQL 3.23升级到4.0或者4.1的情况。4.0的服务器必须是4.0.3或者更高,"6.5 Replication Compatibility Between MySQL Versions"中提到了。

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

把master从MySQL 3.23升级到4.0或4.1时,首先要确认这个master的所有slave都已经是4.0或4.1了,否则的话,要先升级slave:挨个关闭,升级,重启,重启同步等。

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

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

通过以下步骤可以实现安全地升级,假定master要升级到3.23,而slave已经是4.0或4.1了。注意,master升级后,不要重启使用任何旧的二进制日志的同步,因为它会干扰到4.0或4.1 slave的同步。

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

在master上执行 FLUSH TABLES WITH READ LOCK 语句,阻止所有的更新。

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

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

等到所有的slave都跟上了master的数据更新。在master上执行 SHOW MASTER STATUS 语句取得二进制日志以及偏移位置。然后,再slave用这些值执行 SELECT MASTER_POS_WAIT() 语句,它会阻止slave上的同步且返回它已经同步的偏移位置。然后在slave上执行 STOP SLAVE 语句。

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

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

关闭master,将它升级到MySQL 4.0或4.1。

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

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

重启master,记下它的新的二进制文件名。可以在master上执行 SHOW MASTER STATUS 语句来取得这些信息。然后在每个slave上都执行如下语句:

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

mysql CHANGE MASTER TO MASTER_LOG_FILE='binary_log_name',

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

- MASTER_LOG_PO

来源:https://www.tulaoshi.com/n/20160129/1491726.html

延伸阅读
标签: PHP
连接类型跟 ALL 一样,不同的是它只扫描索引树。它通常会比 ALL 快点,因为索引文件通常比数据文件小。MySQL在查询的字段知识单独的索引的一部分的情况下使用这种连接类型。 ALL 将对该表做全部扫描以和从前一个表中取得的记录作联合。这时候如果第一个表没有被标识为 const 的话就不大好了,在其他情况下通常...
标签: PHP
想要提高 ORDER BY 的速度,首先要看MySQL能否使用索引而非额外的排序过程。如果不能使用索引,可以试着遵循以下策略: 增加 sort_buffer_size 的值。 增加 read_rnd_buffer_size 的值。 修改 tmpdir,让它指向一个有很多剩余空间的专用文件系统。如果使用MySQL 4.1或更新,这个选项允许有多个路径用循环的格...
标签: PHP
通常地,应该保存所有的冗余数据(在数据库原理中叫做"第三范式")。然而,为了能取得更高的效率复制一些信息或者创建摘要表也是划算的。 存储过程或者 UDFs(用户定义函数) 的方式在执行一些任务时可能性能更高。尽管如此,当数据库不支持这些特性时,还是有其他的替代方法可以达到目的,即使它们有点慢。 可...
标签: PHP
7.2.12 加速 INSERT 插入一条记录花费的时间由以下几个因素决定,后面的数字大致表示影响的比例: 连接:(3) 发送查询给服务器:(2) 解析查询:(2) 插入记录:(1 x 记录大小) 插入索引:(1 x 索引数量) 关闭:(1) 这里并没有考虑初始化时打开数据表的开销,因为每次运行查询只会做这么一次...
mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。 数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(一般是my.cnf),在unix环境下在/etc/mysql/my.cnf 或者在mysql用户的home目录下的my.cnf。 window环境中,如果c:根目录下有my.cnf文件则...

经验教程

824

收藏

76
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部