详细讲解MySQL复制
同MongoDB,Redis这样的NoSQL数据库的复制相比,MySQL复制显得相当复杂! 概述 首先主服务器把数据变化记录到主日志,然后从服务器通过I/O线程读取主服务器上的主日志,并且把它写入到从服务器的中继日志中,接着SQL线程读取中继日志,并且在从服务器上重放,从而实现MySQL复制。具体如下图所示: MySQL复制 整个过程反映到从服务器上,对应三套日志信息,可在从服务器上用如下命令查看:
Master_Log_File & Read_Master_Log_Pos:下一个传输的主日志信息。 Relay_Master_Log_File & Exec_Master_Log_Pos:下一个执行的主日志信息。 Relay_Log_File & Relay_Log_Pos:下一个执行的中继日志信息。 理解这些日志信息的含义对于解决故障至关重要,后文会详细阐述。 安装 先在主服务器上创建复制账号:
注:出于安全性和灵活性的考虑,不要把root等具有SUPER权限用户作为复制账号。 然后设置主服务器配置文件(缺省:/etc/my.cnf):
注:一定要保证主从服务器各自的server_id唯一,避免冲突。 注:如果没有指定log_bin的话,缺省会使用主机名作为名字,如此一来一旦主机名发生改变,就会出问题,所以推荐指定log_bin(从服务器的relay_log存在一样的问题)。 注:sync_binlog,innodb_flush_log_at_trx_commit,innodb_support_xa三个选项都是出于安全目的设置的,不是复制的必须选项。 接着设置从服务器配置文件(缺省:/etc/my.cnf):
|
||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |