MySQL中如何设置slave实现读取binlog的位置
短信预约 -IT技能 免费直播动态提醒
本篇文章给大家主要讲的是关于MySQL中如何设置slave实现读取binlog的位置的内容,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL中如何设置slave实现读取binlog的位置对大家多少有点参考价值吧。
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
以上关于MySQL中如何设置slave实现读取binlog的位置详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341