mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Added last_errno and last_error to show slave status
slave will skip the first SQL_SLAVE_SKIP_COUNTER events on start - this is needed to recover from broken replication when the next log event(s) should just be skipped. Rotate binlogs when max_binlog_size is reached
This commit is contained in:
@ -1,13 +1,13 @@
|
||||
File Position Binlog_do_db Binlog_ignore_db
|
||||
master-bin.001 73
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
127.0.0.1 root 9306 1 master-bin.001 73 Yes
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
127.0.0.1 root 9306 1 master-bin.001 73 No
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
127.0.0.1 root 9306 1 master-bin.001 73 Yes
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
127.0.0.1 root 9306 1 master-bin.001 173 Yes
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 root 9306 1 master-bin.001 73 Yes 0 0
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 root 9306 1 master-bin.001 73 No 0 0
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 root 9306 1 master-bin.001 73 Yes 0 0
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 root 9306 1 master-bin.001 173 Yes 0 0
|
||||
File Position Binlog_do_db Binlog_ignore_db
|
||||
master-bin.001 73
|
||||
n
|
||||
|
@ -1,13 +1,13 @@
|
||||
File Position Binlog_do_db Binlog_ignore_db
|
||||
master-bin.001 73
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
0 0 0 No
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
127.0.0.1 test 3306 60 4 No
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
127.0.0.1 root 9306 60 4 No
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
127.0.0.1 root 9306 60 master-bin.001 73 Yes
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
0 0 0 No 0 0
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 test 3306 60 4 No 0 0
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 root 9306 60 4 No 0 0
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 root 9306 60 master-bin.001 73 Yes 0 0
|
||||
n
|
||||
10
|
||||
45
|
||||
|
@ -1,5 +1,5 @@
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
127.0.0.1 root 9306 60 master-bin.001 216 Yes
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 root 9306 60 master-bin.001 216 Yes 0 0
|
||||
s
|
||||
Could not break slave
|
||||
Tried hard
|
||||
@ -7,12 +7,21 @@ Log_name
|
||||
master-bin.001
|
||||
master-bin.002
|
||||
master-bin.003
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 root 9306 60 master-bin.003 129 Yes 1062 error 'Duplicate entry '1234' for key 1' on query 'insert into t2 values(1234)' 0
|
||||
Log_name
|
||||
master-bin.003
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
|
||||
127.0.0.1 root 9306 60 master-bin.003 128 Yes
|
||||
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter
|
||||
127.0.0.1 root 9306 60 master-bin.003 184 Yes 0 0
|
||||
m
|
||||
34
|
||||
65
|
||||
67
|
||||
123
|
||||
65
|
||||
1234
|
||||
Log_name
|
||||
master-bin.003
|
||||
master-bin.004
|
||||
master-bin.005
|
||||
count(*)
|
||||
100
|
||||
|
1
mysql-test/t/rpl000016-master.opt
Normal file
1
mysql-test/t/rpl000016-master.opt
Normal file
@ -0,0 +1 @@
|
||||
-O max_binlog_size=2048
|
@ -26,14 +26,33 @@ select * from t1;
|
||||
connection master;
|
||||
flush logs;
|
||||
drop table if exists t2;
|
||||
create table t2(m int);
|
||||
create table t2(m int not null primary key);
|
||||
insert into t2 values (34),(67),(123);
|
||||
save_master_pos;
|
||||
flush logs;
|
||||
show master logs;
|
||||
#now lets make some duplicate key mess and see if we can recover from it
|
||||
#first insert a value on the slave
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
insert into t2 values(1234);
|
||||
#same value on the master
|
||||
connection master;
|
||||
save_master_pos;
|
||||
insert into t2 values(1234);
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
#the slave may have already stopped, so we ignore the error
|
||||
!slave stop;
|
||||
#restart slave skipping one event
|
||||
set sql_slave_skip_counter=1;
|
||||
slave start;
|
||||
connection master;
|
||||
save_master_pos;
|
||||
#let slave catch up
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
show slave status;
|
||||
connection master;
|
||||
purge master logs to 'master-bin.003';
|
||||
show master logs;
|
||||
@ -43,6 +62,23 @@ connection slave;
|
||||
sync_with_master;
|
||||
show slave status;
|
||||
select * from t2;
|
||||
drop table if exists t1,t2;
|
||||
connection master;
|
||||
drop table if exists t1,t2;
|
||||
let $1=100;
|
||||
drop table if exists t3;
|
||||
create table t3 (n int);
|
||||
while ($1)
|
||||
{
|
||||
insert into t3 values(4);
|
||||
dec $1;
|
||||
}
|
||||
show master logs;
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
select count(*) from t3 where n = 4;
|
||||
#clean up
|
||||
connection master;
|
||||
drop table if exists t1,t2,t3;
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
|
Reference in New Issue
Block a user