change_master->global_init_info->Master_info::mi_init_info->Rpl_info_handler::init_info->Rpl_info_file::do_init_info   ->mi->rli->rli_init_info()->初始化./relay-bin.000001,4如果relay-log.info不存在的话,否则读取
//初始化master_info结构
int Master_info::mi_init_info()
{  if (inited)  DBUG_RETURN(0);//如果已经创建master_info文件,直接退出  handler->init_info();//创建/打开master_info文件  if (check_return == REPOSITORY_DOES_NOT_EXIST){//如果master_info文件是刚创建的,设置需读取的log位置是4  init_master_log_pos();  |--master_log_name[0]= 0;  |--master_log_pos= BIN_LOG_HEADER_SIZE;  |--ssl_verify_server_cert= 0;  |-- heartbeat_period= min<float>(SLAVE_MAX_HEARTBEAT_PERIOD,(slave_net_timeout/2.0));  }else{  read_info(handler);//读取文件  }  inited= 1;  flush_info(TRUE);  |--handler->set_sync_period(sync_masterinfo_period);//默认10000  |--flush_io_cache(&info_file);  |--my_sync(info_fd, MYF(MY_WME));  DBUG_RETURN(0);
int Rpl_info_file::do_init_info()
{  if (ret_check == REPOSITORY_DOES_NOT_EXIST){  info_fd = my_open(info_fname, O_CREAT|O_RDWR|O_BINARY, MYF(MY_WME));  init_io_cache(&info_file, info_fd, IO_SIZE*2, READ_CACHE, 0L,0,MYF(MY_WME));  }else if (ret_check == REPOSITORY_EXISTS){  info_fd = my_open(info_fname, O_RDWR|O_BINARY, MYF(MY_WME));  init_io_cache(&info_file, info_fd, IO_SIZE*2, READ_CACHE, 0L,0, MYF(MY_WME))  }
}

如果master.info不存在,就创建并初始化对应的IO_CACHE
如果存在,就打开,并初始化对应的IO_CACHE

转载于:https://blog.51cto.com/yanzongshuai/1970302

MySQL复制--slave设置读取binlog的位置相关推荐

  1. Mysql复制-Slave库设置复制延迟

    mysql> stop slave; mysql> change master to master_delay=10;#单位是秒 mysql> start slave; mysql& ...

  2. mysql 复制 二进制文件命令_Mysql中复制详细解析

    原标题:Mysql中复制详细解析 1.mysql复制概念 指将主数据库的DDL和DML操作通过二进制日志传到复制服务器上,然后在复制服务器上将这些日志文件重新执行,从而使复制服务器和主服务器的数据保持 ...

  3. MySQL复制与高可用水平扩展架构实战

    前言 一键获取MySQL核心数据结构.底层实现原理.索引.事务.锁机制.MySQL性能优化案例.美团MySQL中间件等. 一.什么是MySQL复制 1.什么是复制 MySQL的复制是构建大规模.高性能 ...

  4. mysql复制: 一个master对应1个slave

    2019独角兽企业重金招聘Python工程师标准>>> 复制的步骤: 1.在主库上开启二进制日志,把数据更改记录到二进制日志(binary log)中.   mysql会按照事物提交 ...

  5. 3:添加一个slave到已有的复制环境(基于二进制日志文件位置)

    服务器 192.168.1.2 (master) ,服务器 192.168.1.3 (old slave) 服务器 192.168.1.4 (new slave) 您可以将另一个slave添加到现有复 ...

  6. MySQL GTID复制Slave跳过错误事务Id以及复制排错问题总结

    GTID复制典型的复制错误有两种: 1,数据对象级别的错误,包括主库上update的数据在从库上不存在,主从逐渐冲突,库表索引等对象的冲突等等,   如果是纯粹的跳过错误的话,这一类的错误需要跳过思路 ...

  7. rhel6下,mysql 5.6.14 主从复制(也称mysql AB复制)环境配置[基于binlog]

    更多博文请关注:没有伞的孩子必须努力奔跑 (www.xuchanggang.cn) 一.mysql主(称master)从(称slave)复制的原理:       (1).master将数据改变记录到二 ...

  8. mysql 查看slave状态_解读show slave status 命令判断MySQL复制同步状态

    解读show slave status 命令判断MySQL复制同步状态 1. show slave status命令可以显示主从同步的状态 MySQL> show slave status \G ...

  9. MySQL链式复制加速神器: MaxScale Binlog Server(附视频)

    本文根据DBAplus社群第83期线上分享整理而成 讲师介绍 贺春旸 普惠金融MySQL专家 <MySQL管理之道>第一版.第二版作者,曾任职于中国移动飞信.机锋安卓市场,拥有丰富的数据库 ...

最新文章

  1. 「懒人」LeCun想让计算机自己编程?网友:还差10个 GPT-3
  2. 安恒赛php_安恒11月月赛周周练writeup
  3. 探测函数 中断 linux,linux中断编程函数
  4. Firetruck(DFS+回溯)
  5. 【MFC】工具栏左侧双线效果
  6. freemarker常见语法大全
  7. 收藏 | 12个神经网络可视化工具!
  8. 小白如何写Python算法-计算模型稳定性评估指标PSI
  9. AcWing479.加分二叉树(区间DP)题解
  10. 机器视觉软件开发入门(1)
  11. 【已解决】ws2_32.dll丢失怎么办?ws2_32.dll调用失败如何修复
  12. 华为h12m03装系统_华为H22H-03服务器怎么从U盘装系统?
  13. JavaScript判断日期时间差的实例代码
  14. 通信常识:波特率、数据传输速率与带宽的相互关系
  15. jenkins+Xcode+蒲公英实现ipa自动打包发布全攻略
  16. ng6的ng-template的一个用法
  17. Chapter 9 Physically Based Shading
  18. JAVA多线程-(三)如何让线程暂停
  19. Assignment of attribute weights with belief distributions for MADM under uncertainties
  20. Android学习笔记(十)——Activity的四种启动模式

热门文章

  1. 页面滚动时触发图片逐帧播放_如何在滚动效果上创建逐帧运动图像
  2. d3 制作条形图_停止制作常见的坏条形图的5个简单技巧
  3. 据说 99% 的人不知道 vue-devtools 还能直接打开对应组件文件?本文原理揭秘
  4. React Native - FlexBox弹性盒模型
  5. 业务技术协同线上化的研发管理实战
  6. 数组实现矩阵逐层向内层加1
  7. Excel表格从指定部分重新分页打印的两种方法
  8. clickhouse大数据分析技术与实战_从销售到经营——大客户销售策略与实战技术...
  9. QCustomplot(一) 能做什么事
  10. [cogs347]地震