mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 14:32:34 +01:00
60d4662496
Non-transactional updates that take place inside a transaction present problems for logging because they are visible to other clients before the transaction is committed, and they are not rolled back even if the transaction is rolled back. It is not always possible to log correctly in statement format when both transactional and non-transactional tables are used in the same transaction. In the current patch, we ensure that such scenario is completely safe under the ROW and MIXED modes.
322 lines
8.1 KiB
Text
322 lines
8.1 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;
|
|
include/stop_slave.inc
|
|
reset master;
|
|
reset slave;
|
|
start slave;
|
|
create table t1(n int not null auto_increment primary key)ENGINE=InnoDB;
|
|
insert into t1 values (NULL);
|
|
drop table t1;
|
|
create table t1 (word char(20) not null)ENGINE=InnoDB;
|
|
load data infile 'LOAD_FILE' into table t1 ignore 1 lines;
|
|
select count(*) from t1;
|
|
count(*)
|
|
69
|
|
show binlog events;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
|
|
master-bin.000001 # Query 1 # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB
|
|
master-bin.000001 # Query 1 # BEGIN
|
|
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Xid 1 # COMMIT /* XID */
|
|
master-bin.000001 # Query 1 # use `test`; drop table t1
|
|
master-bin.000001 # Query 1 # use `test`; create table t1 (word char(20) not null)ENGINE=InnoDB
|
|
master-bin.000001 # Query 1 # BEGIN
|
|
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Xid 1 # COMMIT /* XID */
|
|
show binlog events from 107 limit 1;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query 1 # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB
|
|
show binlog events from 107 limit 2;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query 1 # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB
|
|
master-bin.000001 # Query 1 # BEGIN
|
|
show binlog events from 107 limit 1,4;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query 1 # BEGIN
|
|
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Xid 1 # COMMIT /* XID */
|
|
flush logs;
|
|
create table t3 (a int)ENGINE=InnoDB;
|
|
select * from t1 order by 1 asc;
|
|
word
|
|
Aarhus
|
|
Aaron
|
|
Aaron
|
|
Ababa
|
|
Ababa
|
|
aback
|
|
aback
|
|
abaft
|
|
abaft
|
|
abandon
|
|
abandon
|
|
abandoned
|
|
abandoned
|
|
abandoning
|
|
abandoning
|
|
abandonment
|
|
abandonment
|
|
abandons
|
|
abandons
|
|
abase
|
|
abased
|
|
abasement
|
|
abasements
|
|
abases
|
|
abash
|
|
abashed
|
|
abashes
|
|
abashing
|
|
abasing
|
|
abate
|
|
abated
|
|
abatement
|
|
abatements
|
|
abater
|
|
abates
|
|
abating
|
|
Abba
|
|
abbe
|
|
abbey
|
|
abbeys
|
|
abbot
|
|
abbots
|
|
Abbott
|
|
abbreviate
|
|
abbreviated
|
|
abbreviates
|
|
abbreviating
|
|
abbreviation
|
|
abbreviations
|
|
Abby
|
|
abdomen
|
|
abdomens
|
|
abdominal
|
|
abduct
|
|
abducted
|
|
abduction
|
|
abductions
|
|
abductor
|
|
abductors
|
|
abducts
|
|
Abe
|
|
abed
|
|
Abel
|
|
Abelian
|
|
Abelson
|
|
Aberdeen
|
|
Abernathy
|
|
aberrant
|
|
aberration
|
|
select * from t1 order by 1 asc;
|
|
word
|
|
Aarhus
|
|
Aaron
|
|
Aaron
|
|
Ababa
|
|
Ababa
|
|
aback
|
|
aback
|
|
abaft
|
|
abaft
|
|
abandon
|
|
abandon
|
|
abandoned
|
|
abandoned
|
|
abandoning
|
|
abandoning
|
|
abandonment
|
|
abandonment
|
|
abandons
|
|
abandons
|
|
abase
|
|
abased
|
|
abasement
|
|
abasements
|
|
abases
|
|
abash
|
|
abashed
|
|
abashes
|
|
abashing
|
|
abasing
|
|
abate
|
|
abated
|
|
abatement
|
|
abatements
|
|
abater
|
|
abates
|
|
abating
|
|
Abba
|
|
abbe
|
|
abbey
|
|
abbeys
|
|
abbot
|
|
abbots
|
|
Abbott
|
|
abbreviate
|
|
abbreviated
|
|
abbreviates
|
|
abbreviating
|
|
abbreviation
|
|
abbreviations
|
|
Abby
|
|
abdomen
|
|
abdomens
|
|
abdominal
|
|
abduct
|
|
abducted
|
|
abduction
|
|
abductions
|
|
abductor
|
|
abductors
|
|
abducts
|
|
Abe
|
|
abed
|
|
Abel
|
|
Abelian
|
|
Abelson
|
|
Aberdeen
|
|
Abernathy
|
|
aberrant
|
|
aberration
|
|
flush logs;
|
|
include/stop_slave.inc
|
|
include/start_slave.inc
|
|
create table t2 (n int)ENGINE=InnoDB;
|
|
insert into t2 values (1);
|
|
show binlog events from <binlog_start>;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Xid # # COMMIT /* XID */
|
|
master-bin.000001 # Query # # use `test`; drop table t1
|
|
master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=InnoDB
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Xid # # COMMIT /* XID */
|
|
master-bin.000001 # Rotate # # master-bin.000002;pos=4
|
|
show binlog events in 'master-bin.000002';
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000002 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
|
|
master-bin.000002 # Query 1 # use `test`; create table t3 (a int)ENGINE=InnoDB
|
|
master-bin.000002 # Query 1 # use `test`; create table t2 (n int)ENGINE=InnoDB
|
|
master-bin.000002 # Query 1 # BEGIN
|
|
master-bin.000002 # Table_map 1 # table_id: # (test.t2)
|
|
master-bin.000002 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000002 # Xid 1 # COMMIT /* XID */
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000001 #
|
|
master-bin.000002 #
|
|
show binary logs;
|
|
Log_name File_size
|
|
slave-bin.000001 #
|
|
slave-bin.000002 #
|
|
show binlog events in 'slave-bin.000001' from 4;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
slave-bin.000001 # Format_desc 2 # Server ver: VERSION, Binlog ver: 4
|
|
slave-bin.000001 # Query 1 # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB
|
|
slave-bin.000001 # Query 1 # BEGIN
|
|
slave-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
|
slave-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
slave-bin.000001 # Xid 1 # COMMIT /* XID */
|
|
slave-bin.000001 # Query 1 # use `test`; drop table t1
|
|
slave-bin.000001 # Query 1 # use `test`; create table t1 (word char(20) not null)ENGINE=InnoDB
|
|
slave-bin.000001 # Query 1 # BEGIN
|
|
slave-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
|
slave-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
slave-bin.000001 # Xid 1 # COMMIT /* XID */
|
|
slave-bin.000001 # Query 1 # use `test`; create table t3 (a int)ENGINE=InnoDB
|
|
slave-bin.000001 # Rotate 2 # slave-bin.000002;pos=4
|
|
show binlog events in 'slave-bin.000002' from 4;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
slave-bin.000002 # Format_desc 2 # Server ver: VERSION, Binlog ver: 4
|
|
slave-bin.000002 # Query 1 # use `test`; create table t2 (n int)ENGINE=InnoDB
|
|
slave-bin.000002 # Query 1 # BEGIN
|
|
slave-bin.000002 # Table_map 1 # table_id: # (test.t2)
|
|
slave-bin.000002 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
slave-bin.000002 # Xid 1 # COMMIT /* XID */
|
|
SHOW SLAVE STATUS;
|
|
Slave_IO_State #
|
|
Master_Host 127.0.0.1
|
|
Master_User root
|
|
Master_Port MASTER_PORT
|
|
Connect_Retry 1
|
|
Master_Log_File master-bin.000002
|
|
Read_Master_Log_Pos #
|
|
Relay_Log_File #
|
|
Relay_Log_Pos #
|
|
Relay_Master_Log_File master-bin.000002
|
|
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 #
|
|
Relay_Log_Space #
|
|
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 #
|
|
Master_SSL_Verify_Server_Cert No
|
|
Last_IO_Errno #
|
|
Last_IO_Error #
|
|
Last_SQL_Errno 0
|
|
Last_SQL_Error
|
|
Replicate_Ignore_Server_Ids
|
|
Master_Server_Id 1
|
|
show binlog events in 'slave-bin.000005' from 4;
|
|
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
DROP TABLE t3;
|
|
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 auto_increment primary key, b int);
|
|
insert into t1 values (NULL, 1);
|
|
set insert_id=5;
|
|
insert into t1 values (NULL, last_insert_id()), (NULL, last_insert_id());
|
|
show binlog events from <binlog_start>;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query # # use `test`; create table t1(a int auto_increment primary key, b int)
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query # # COMMIT
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query # # COMMIT
|
|
select * from t1;
|
|
a b
|
|
1 1
|
|
5 1
|
|
6 1
|
|
drop table t1;
|