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(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值