不带MASTER_LOG_FILE,MASTER_LOG_POS参数,执行change master 语句复制异常

-------------分析日志-------------

1.先停止复制进程:

[email protected](none) 08:05:45>stop slave;

Query OK, 0 rows affected (0.10 sec)

2.查看丛库的状态及复制点坐标:

[email protected](none) 08:05:52>show slave status \G

*************************** 1. row ***************************

Slave_IO_State:

Master_Host: Master_Host

Master_User: Master_User

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.004476

Read_Master_Log_Pos: 289617713

Relay_Log_File: mysqld-relay-bin.000067

Relay_Log_Pos: 289617859

Relay_Master_Log_File: mysql-bin.004476

Slave_IO_Running: No

Slave_SQL_Running: No

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 289617713

Relay_Log_Space: 289618059

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: NULL

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 612

1 row in set (0.00 sec)

3.查看一下master.info与relay-log.info文件中的信息,此时文件中记录的信息与show slave status显示的信息一致。

[email protected](none) 08:05:55>system cat /vobiledata/mysqldata/master.info;

18

mysql-bin.004476

289617713

Master_Host

repl

pass

3306

60

0

0

0.000

0

[email protected](none) 08:07:52>system cat /vobiledata/mysqldata/relay-log.info;

./mysqld-relay-bin.000067

289617859

mysql-bin.004476

289617713

4.不带MASTER_LOG_FILE,MASTER_LOG_POS参数,执行change master 语句,按照mysql官方文档的说法,执行语句后的复制点应该与之前的复制点一致,然而事实并非如此,执行该语句后,复制点被清空,记录在master.info和relay-log.info文件中的关于复制点的信息也被清空,如下:

[email protected](none) 08:08:24>CHANGE MASTER TO MASTER_HOST=‘Master_Host‘, MASTER_USER=‘repl‘, MASTER_PASSWORD=‘pass‘;

Query OK, 0 rows affected (0.11 sec)

[email protected](none) 08:08:55>show slave status \G

*************************** 1. row ***************************

Slave_IO_State:

Master_Host: Master_Host

Master_User: Master_User

Master_Port: 3306

Connect_Retry: 60

Master_Log_File:

Read_Master_Log_Pos: 4

Relay_Log_File: mysqld-relay-bin.000001

Relay_Log_Pos: 4

Relay_Master_Log_File:

Slave_IO_Running: No

Slave_SQL_Running: No

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 0

Relay_Log_Space: 107

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: NULL

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 612

1 row in set (0.00 sec)

[email protected](none) 08:09:01>system cat /vobiledata/mysqldata/master.info;

18

4

Master_Host

repl

pass

3306

60

0

0

1800.000

0

60

0

0

0.000

0

[email protected](none) 08:09:17>system cat /vobiledata/mysqldata/relay-log.info;

./mysqld-relay-bin.000001

4

0

7859

mysql-bin.004476

289617713

重启复制进程,发现复制点被莫名奇妙的变成了另外一个值,这个值既不是执行语句前的复制点,也不是执行语句后的复制点。

[email protected](none) 08:09:26>start slave;

Query OK, 0 rows affected (0.00 sec)

[email protected](none) 08:09:47>show slave status \G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: Master_Host

Master_User: Master_User

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.004430

Read_Master_Log_Pos: 9547576

Relay_Log_File: mysqld-relay-bin.000003

Relay_Log_Pos: 360

Relay_Master_Log_File: mysql-bin.004429

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 214

Relay_Log_Space: 53239

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 436462

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 612

1 row in set (0.00 sec)

[email protected](none) 08:09:52>show slave status \G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: Master_Host

Master_User: Master_User

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.004430

Read_Master_Log_Pos: 61188972

Relay_Log_File: mysqld-relay-bin.000003

Relay_Log_Pos: 360

Relay_Master_Log_File: mysql-bin.004429

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 214

Relay_Log_Space: 53239

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 436482

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 612

1 row in set (0.00 sec)

赶紧停止复制,发现命令居然被长时间卡住,尝试停止mysql服务,超时异常,最后通过kill 系统进程,并重启mysql服务,重新设为正确的复制点。

[email protected](none) 08:10:12>stop slave;

查看error log,发现有如下日志:

160510  8:08:55 [Note] ‘CHANGE MASTER TO executed‘. Previous state master_host=‘192.168.110.113‘, master_port=‘3306‘, master_log_file=‘mysql-bin.004476‘, master_log_pos=‘289617713‘. New state master_host=‘192.168.110.113‘, master_port=‘3306‘, master_log_file=‘‘,
master_log_pos=‘4‘.

160510  8:09:47 [Note] Slave SQL thread initialized, starting replication in log ‘FIRST‘ at position 0, relay log ‘./mysqld-relay-bin.000001‘ position: 4

160510  8:09:47 [Note] Slave I/O thread: connected to master ‘[email protected]:3306‘,replication started in log ‘FIRST‘ at position 4

时间: 2024-10-15 10:20:22

不带MASTER_LOG_FILE,MASTER_LOG_POS参数,执行change master 语句复制异常的相关文章

mysql 主从复制change master to

CHANGE MASTER TO命令用于slave配置连接master的信息,例如master host.master port等. 关于CHANGE MASTER TO命令,总结几点使用心得. 在CHANGE MASTER TO之前,slave 的复制线程(I/O线程,SQL线程)必须停止,可以使用 STOP SLAVE 来停止. 如果一些参数不指定,则其参数值使用以前设置的值. 如果使用了参数RELAY_LOG_FILE 或者RELAY_LOG_POS,relay log文件会被保留, re

sql执行效率,半同步复制

(1)尽量选择较小的列: (2)将where中用的比较频繁的字段建立索引: (3)select中避免使用*: (4)避免在索引列上使用计算.not in和<>等操作: (5)当只需要一行数据时候使用limit1: (6)保证单表数据不超过200w,实时分割表: 针对查询较慢的语句,可以使用explain来分析该语句具体的执行情况. sql语句应考虑哪些安全性? (1)少使用root账户,应该为不同的动作分配不同的账户: (2)sql执行出错后,不能把数据库中显示的出错信息,直接展示给用户.防止

mysql主从复制-CHANGE MASTER TO 语法详解

1 简介    配置mysql主从复制时,在从机上需要进行CHANGE MASTER TO操作,以确定需要同步的主机IP,用户名,密码,binlog文件,binlog位置等信息. 2 基本语法与实例    2.1 CHANGE MASTER TO的语法如下: CHANGE MASTER TO option [, option] ...   option:       MASTER_BIND = 'interface_name'      MASTER_HOST = 'host_name'    

mysql change master导致gtid丢失

change master导致gtid丢失从innobackupex恢复导致binlog的拉取位置会导致主备gtid不一致.此类错误通过构造空事务方式无法修复.此时就需要change master 方式指向失败事件的下一个位点.然后按位点的方式(master_auto_position=0)来拉binlog. Slave_IO_State: Queueing master event to the relay log Master_Host: 10.1.1.111 Master_User: re

change master to到一个不存在的主库或主库无法连接

本文测试当主库无法连接时,从库的复制状态. 1.设置主库 在从库上, 将主库设置为//127.0.0.1或一个无法连接的主库: MASTER_HOST='//127.0.0.1' 或 MASTER_HOST='_' 设置复制: mysql> stop slave; Query OK, 0 rows affected (0.00 sec) mysql> mysql> CHANGE MASTER TO MASTER_HOST='//127.0.0.1', MASTER_PORT=3306,M

如何编写一个带命令行参数的Python文件

看到别人执行一个支持命令行参数的python文件,瞬间觉得高大上起来.牛逼起来,那么如何编写一个带命令行参数的python脚本呢?不用紧张,下面将简单易懂地让你学会如何让自己的python脚本,支持命令行参数. 首先你要知道python中的sys模块的一些功能: import sys print "the number of python program's argument:",len(sys.argv) print "the value of every argument

复制相关参数学习笔记--master上的参数

特别声明: 所有的过滤规则不建议在主库上设置.   server_id 是一个整数,范围:1 至 power(2,32)-1 之间. 推荐使用端口号+ip最后一位的方式. 唯一区别ID,同一个集群不可重复,从5.6开始可动态修改. server_uuid 唯一区别ID,同一个集群不可重复,从5.6开始可动态修改. 从5.6开始,系统根据函数自动生成唯一的一个值,默认存放在$datadir/auto.cnf  ,MySQL启动时,会判断auto.cnf文件是否存在,如果不存在auto.cnf文件就

【执行力决定命】第2集《老板开始喜欢你,带着责任心开启执行力》

「音频原文」http://dwz.cn/6sANwk 大家好,我是林琳笨,今天和大家一起分享责任心的重要性,为什么老板喜欢有责任心的人?甚至相亲也一定要求对方是一个有责任心的人.所以本期话题我取名<老板开始喜欢你,带着责任心开启执行力> 责任心的理论定义是:个人对自己和他人.对家庭和集体.对国家和社会所负责任的认识.情感和信念,以及与之相应的遵守规范.承担责任和履行义务的自觉态度. 我们这里说的责任心.执行力,一般是指在工作中. 不过在我看来:责任就是分内应该做的事儿. 每个人都有责任心,但边

[JavaEE]Get请求URI中带的中文参数在服务端乱码问题的解决方法

在Get请求中,如果请求参数中带有中文,如 http://localhost:8080/DinnerParty/shop/search?query=多伦多, 在服务端拿到的是乱码. 这是因为客户端提交过去的是UTF-8编码的数据,而服务端解析URi时可能使用的是 iso8859-1编码. 修改tomcat配置文件server.xml <Connector port="8080" protocol="HTTP/1.1"               connect