MySQL主从复制的常见拓扑、道理说明以及怎样进步服从
对付relay logs 文件的名称的定名法则默认行使的是 host_name-relay-bin.nnnnnn,以我的体系来说,其文件名默以为localhost-relay-bin.000001。对付索引文件的定名法则为host_name-relay-bin.index,同样在我的体系中的名称为localhost-relay-bin.index。这两个名称是可以通过—relay-log 和 –relay-log-index来改变的,其行使方法如下: mysqld_safe –user=mysql –relay-log=文件名 –relay-log-index=新索引文件名 & 在这里假如改变这两个名称的话,也许会引起‘不能打开relay log’文件和‘在初始化relay log 进程中不能发明方针log’等错误。这也算是mysql计划的一个bug,没有什么好的办理步伐,假如我们不想行使默认的文件名称的话,独一的步伐就是我们可以预推测从处事器的主机名称也许在未来会产生改变,在开始初始化从处事器的时辰就行使以上两个选项指定文件名,这样就可以使文件名不再依靠于处事器的主机名。 对付这些relay log文件并不是一向在增进的,当Slave SQL线程执行完一个relay log文件中全部的变乱而且不再必要它的时辰会把改relay log文件删除。因为是Slave SQL线程来做这些工作,以是也没有什么明晰的法则来指定怎样删除relay log文件 以上的全部内容或许描写了主从复制体系中从处事器的首要事变流程。 六、怎样进步Mysql主从复制的服从? MySQL的主从复制,现实上就是Master记录本身的执行日记binlog,然后发送给Slave,Slave理会日记并执行,来实现数据复制。对付复制服从,binlog的巨细长短常重要的身分,由于它涉及了I/O和收集传输 主从复制涉及到了两头:master/slave,看下这两头可以怎样优化 (1)master 端 master端有2个参数可以节制 Binlog_Do_DB : 设定哪些数据库必要记录Binlog Binlog_Ignore_DB : 设定哪些数据库不要记录Binlog 这两项很重要,指定须要数据库,忽略不必要复制的数据库,可以镌汰binlog的巨细,进步了I/O服从,加速收集传输。 但这两项也同样较量伤害,必要审慎行使,由于也许会有主从数据纷歧致和复制堕落的风险。 由于MySQL判定是否需要复制某个Event,不是按照发生该Event的语句地址的数据库,而是按照执行时地址的默认数据库,也就是登录时指定的数据库,或运行“USE DATABASE”中所指定的数据库。 假如执行语句中明晰指定了数据库名称,而这个数据库是被指定不记录Binlog的,那么这个语句在slave中执行时就会堕落。 譬喻 garbage 库是被指定不记录日记的 product 库是指定要记录日记的 执行下面的语句 use product; delete from garbage.junk; delete语句会被发送给slave,但slave中没有garbage库,以是执行时报错,复制失败 (2)slave 端 slave端有6个参数可以节制 Replicate_Do_DB : 设定需要复制的数据库,多个DB用逗号脱离 Replicate_Ignore_DB : 设定可以忽略的数据库 Replicate_Do_Table : 设定需要复制的Table Replicate_Ignore_Table : 设定可以忽略的Table Replicate_Wild_Do_Table : 成果同Replicate_Do_Table,但可以带通配符来举办配置 Replicate_Wild_Ignore_Table : 成果同Replicate_Ig-nore_Table,可带通配符配置 slave端的设置优化结果要明明小于master端的,由于master端日记都写完了,日记也传过来了 但这几个参数可以辅佐我们镌汰日记的应用量,由于配置了过滤,现实写入的sql数目变少了,slave端的复制也就加速了。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |