最新公告
  • 新注册用户请前往个人中心绑定邮箱以便接收相关凭证邮件!!!点击前往个人中心
  • 数据库基础复习之mysql主从复制

    1.复制原理过程
    1)主库把数据的更改记录到二进制日志中
    2)备库将主库的二进制日志复制到自己的中继日志
    3)备库读取中继日志的事件并将其重放到备份数据之上。
    第一步:记录日志
    主库在准备提交事务完成数据更新前都会将数据更新的事件记录到二进制日志中(根据事务提交的顺序而不是每条语句执行的顺序来记录),二进制日志的格式有三种,分别为:基于段的日志格式、基于行的日志格式、以及混合二进制日志格式。
    基于段的复制:主库记录的是造成数据更改的sql语句,然后在从库上重放这些语句,也就是重新执行这些sql;
    优点:日志记录量相对较少,节省磁盘和网络IO(其实不一定);
    缺点:非确定性函数不能复制(如UUID、时间戳等),有些存储引擎并不支持。
    基于行的复制:主库记录的是修改的行信息,也就是说每修改一行都会记录数据的改变;
    优点:可以正确的复制每一行数据的更改、一些非确定性函数也能复制;在从库上能更加高效的执行复制(基于段的复制还需重新执行sql、而基于行的直接修改即可);
    缺点:日志量过多。
    混合的复制:mysql在两种复制模式之间动态切换,默认情况下是使用基于段的复制,当发现如果无法使用段来进行复制时,则切换到使用基于行的复制。
    第二步:转储二进制日志
    首先备库会启动一个工作线程,称为IO线程,IO线程与主库建立普通的客户端连接,然后在主服务器上启动一个特殊的二进制转储线程,这个转储进程读取主服务器的二进制日志,并通过io从线程把事件写入中继日志中。
    第三步:重放二进制日志
    备库的sql线程从中继日志中读取日志,并在备库中执行(注:通过配置选项可以设置备库是否也需要写二进制日志,便于备库的备库复制)。
    2. 配置复制的步骤
    1)在主库上创建复制账号;
    2)配置主从数据库;
    主:开启二进制日志、设置server_id(必须唯一,在配置文件中改);
    从:二进制日志、server_id,固定中继日志的名字(默认是主机名是一样的,固定中继日志名字使得如果修改了主机名,复制还可以使用) 。
    3)启动复制链路;
    3.复制的作用
    1)实现数据库高可用
    通过对主服务器配置多台从服务器,可以避免单点问题,实现灾难转移,提升系统的高可用
    2)实现数据备份
    可以从误操作或者系统出现问题中恢复回来
    3)实现读写分离
    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » 数据库基础复习之mysql主从复制

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    参与讨论

    • 184会员总数(位)
    • 3737资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 572稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级