mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 22:34:18 +01:00
d7e0784c65
in slave SQL thread: if a transaction fails because of InnoDB deadlock or innodb_lock_wait_timeout exceeded, optionally retry the transaction a certain number of times (new variable --slave_transaction_retries). sql/mysql_priv.h: new var slave_transaction_retries sql/mysqld.cc: new variable slave_transaction_retries. Plus fixing a typo. sql/set_var.cc: new global variable slave_transaction_retries (will be one per subslave, when we have multimaster). sql/slave.cc: Slave SQL thread: if a transaction fails because of InnoDB deadlock or innodb_lock_wait_timeout exceeded, optionally retry the transaction a certain number of times (--slave_transaction_retries). sql/slave.h: new RELAY_LOG_INFO::trans_retries.
81 lines
3.3 KiB
Text
81 lines
3.3 KiB
Text
stop slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
reset master;
|
|
reset slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
start slave;
|
|
create table t1 (a int not null, key(a)) engine=innodb;
|
|
create table t2 (a int not null, key(a)) engine=innodb;
|
|
create table t3 (a int) engine=innodb;
|
|
create table t4 (a int) engine=innodb;
|
|
show create table t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL default '0',
|
|
KEY `a` (`a`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
|
show create table t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`a` int(11) NOT NULL default '0',
|
|
KEY `a` (`a`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
|
stop slave;
|
|
begin;
|
|
insert into t3 select * from t2 for update;
|
|
insert into t1 values(1);
|
|
commit;
|
|
begin;
|
|
select * from t1 for update;
|
|
a
|
|
start slave;
|
|
insert into t2 values(22);
|
|
commit;
|
|
select * from t1;
|
|
a
|
|
1
|
|
select * from t2;
|
|
a
|
|
22
|
|
show slave status;
|
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
|
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 13110 # # master-bin.000001 Yes Yes 0 0 13110 # None 0 No #
|
|
stop slave;
|
|
change master to master_log_pos=401;
|
|
begin;
|
|
select * from t2 for update;
|
|
a
|
|
22
|
|
start slave;
|
|
commit;
|
|
select * from t1;
|
|
a
|
|
1
|
|
1
|
|
select * from t2;
|
|
a
|
|
22
|
|
show slave status;
|
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
|
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 13110 # # master-bin.000001 Yes Yes 0 0 13110 # None 0 No #
|
|
set global max_relay_log_size=0;
|
|
stop slave;
|
|
change master to master_log_pos=401;
|
|
begin;
|
|
select * from t2 for update;
|
|
a
|
|
22
|
|
start slave;
|
|
commit;
|
|
select * from t1;
|
|
a
|
|
1
|
|
1
|
|
1
|
|
select * from t2;
|
|
a
|
|
22
|
|
show slave status;
|
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
|
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 13110 # # master-bin.000001 Yes Yes 0 0 13110 # None 0 No #
|
|
drop table t1,t2;
|