仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 961|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL编程:MySQL手册版本 5.0.20-MySQL同步(三)

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:38:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
DBaaS会导致单一客户利润率的下降,因为云服务一般是依靠MySQL学习教程数来抵消较低的利润率。mysql<pstyle="TEXT-INDENT:2em">6.5分歧MySQL版本之间的同步兼容性<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">最早的二进制格局是在MySQL3.23中开辟出来的。在MySQL4.0中改善了,MySQL5.0又改善了。在设置同步时必要晋级服务器的话,它们之间的因果干系在"6.6UpgradingaReplicationSetup"中形貌了。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">假如只体贴同步,任何MySQL4.1.x版本和MySQL4.0.x是一样的,由于它们都利用不异格局的二进制日记。以是,这些版本是相互兼容的,它们之间能够无缝地运转同步。一个破例的情形是,MySQL4.0.0到4.0.2因为开辟的较早,没法和厥后的版本相互兼容,以是不要利用它们(它们是4.0版本的alpha系列。它们之间的兼容性在公布包的手册中均有相干文档)。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">下表展现了分歧版本的MySQL之间的master/slave同步兼容性。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">MasterMasterMaster3.23.33andup4.0.3anduporany4.1.x5.0.0Slave3.23.33andupyesnonoSlave4.0.3andupyesyesnoSlave5.0.0yesyesyes<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">一个一般的划定规矩是,我们倡议利用比来的MySQL版本,由于同步兼容性一向在改良。我们也倡议master和slave都利用统一个版本。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">6.6晋级同步<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">假如晋级服务器时触及到设置同步,晋级设置的步骤跟以后版本和晋级后的版本分歧而异。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">6.6.1晋级同步到4.0或4.1<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">本节合用于从MySQL3.23晋级到4.0大概4.1的情形。4.0的服务器必需是4.0.3大概更高,"6.5ReplicationCompatibilityBetweenMySQLVersions"中提到了。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">把master从MySQL3.23晋级到4.0或4.1时,起首要确认这个master的一切slave都已是4.0或4.1了,不然的话,要先晋级slave:挨个封闭,晋级,重启,重启同步等。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">经由过程以下步骤能够完成平安地晋级,假定master要晋级到3.23,而slave已是4.0或4.1了。注重,master晋级后,不要重启利用任何旧的二进制日记的同步,由于它会搅扰到4.0或4.1slave的同步。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">在master上实行FLUSHTABLESWITHREADLOCK语句,制止一切的更新。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">比及一切的slave都跟上了master的数据更新。在master上实行SHOWMASTERSTATUS语句获得二进制日记和偏移地位。然后,再slave用这些值实行SELECTMASTER_POS_WAIT()语句,它会制止slave上的同步且前往它已同步的偏移地位。然后在slave上实行STOPSLAVE语句。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">封闭master,将它晋级到MySQL4.0或4.1。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">重启master,记下它的新的二进制文件名。能够在master上实行SHOWMASTERSTATUS语句来获得这些信息。然后在每一个slave上都实行以下语句:<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">mysql>CHANGEMASTERTOMASTER_LOG_FILE=binary_log_name,<pstyle="TEXT-INDENT:2em">->MASTER_LOG_POS=4;<pstyle="TEXT-INDENT:2em">mysql>STARTSLAVE;<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">6.6.2晋级同步到5.0<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">本节合用于从MySQL3.23,4.0或4.1晋级到5.0的情形。4.0的服务器必需是4.0.3大概更高,"6.5ReplicationCompatibilityBetweenMySQLVersions"中提到了。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">起首,注重到MySQL5.0仍是alpha公布系列。它在各方面都比旧版本好(更简单晋级一些同步中主要的会话变量,比方sql_mode;概况请看"C.1.3Changesinrelease5.0.0(22Dec2003:Alpha")。不外,它还没经由普遍测试。因为是alpha版本,我们不倡议用于任何临盆情况(如今已能够用于临盆了,译者注)。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">把master从MySQL3.23,4.0或4.1晋级到5.0.0时,起首要确认这个master的一切slave都已是5.0.0了,不然的话,要先晋级slave:挨个封闭,晋级,重启,重启同步等。5.0.0的slave能够读取晋级前写进的实行语句的中继日记。晋级完后的slave创立的中继日记就是5.0格局了。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">当一切的slave都晋级完了,封闭master,晋级到5.0.0,然后重启。5.0.0的master也能够读取旧格局的二进制日记。slave能辨认旧的格局而且公道处置它们。master上新建的二进制日记都是5.0.0格局的。slave也能辨认这格局。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">换言之,在晋级到5.0.0时无需特别的划定,除非在晋级master到5.0.0之前slave必需利用旧版本的。注重,把5.0.0升级到旧版本中不克不及主动地做了:必需确保一切的5.0.0格局二进制日记和中继日记都已处置完了,然后才干把它们删除完成升级。人们常说“成功孕育成功”,这种说法明显非常适合MySQL的情况。MySQL学习教程这个开源数据库号称在全世界有超过110万份的完全安装。
若天明 该用户已被删除
沙发
发表于 2015-1-19 19:45:23 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-28 10:05:27 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
精灵巫婆 该用户已被删除
地板
发表于 2015-2-5 20:29:27 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
爱飞 该用户已被删除
5#
发表于 2015-2-13 13:13:44 | 只看该作者
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
再现理想 该用户已被删除
6#
发表于 2015-3-3 21:46:24 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
若相依 该用户已被删除
7#
发表于 2015-3-11 14:03:37 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
分手快乐 该用户已被删除
8#
发表于 2015-3-18 22:08:52 | 只看该作者
连做梦都在想页面结构是怎么样的,绝非虚言
活着的死人 该用户已被删除
9#
发表于 2015-3-26 19:40:02 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表