mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	 ead47f4701
			
		
	
	ead47f4701
	
	
	
		
			
			This saves one byte per Query_log_event on disk compared to 5.0.[0..3]. Compatibility problems with 5.0.x where x<4 are explained in the comments in log_event.cc. Putting back s/my_open(O_TRUNC)/(my_delete+my_create) change which had been wiped away by somebody doing a wrong 4.1->5.0 merge (which happened just before 5.0.3 :( ). Applying it to new events for LOAD DATA INFILE. If slave fails in Execute_load_query_log_event::exec_event(), don't delete the file (so that it's re-usable at next START SLAVE). And (youpi!) fix for BUG#3247 "a partially completed LOAD DATA INFILE is not executed at all on the slave" (storing an Execute_load_query_log_event to binlog, with its error code, instead of Delete_file_log_event).
		
			
				
	
	
		
			95 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| drop table if exists t1, t2, t3, t4;
 | |
| drop table if exists t1, t2, t3, t4;
 | |
| start slave;
 | |
| Got one of the listed errors
 | |
| start slave;
 | |
| ERROR HY000: Could not initialize master info structure; more error messages can be found in the MySQL error log
 | |
| change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root';
 | |
| ERROR HY000: Could not initialize master info structure; more error messages can be found in the MySQL error log
 | |
| reset slave;
 | |
| change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root';
 | |
| reset master;
 | |
| start slave;
 | |
| create temporary table temp_table (a char(80) not null);
 | |
| insert into temp_table values ("testing temporary tables");
 | |
| create table t1 (s text);
 | |
| insert into t1 values('Could not break slave'),('Tried hard');
 | |
| 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_PORT	60	master-bin.000001	548	#	#	master-bin.000001	Yes	Yes							0		0	548	#	None		0	No						#
 | |
| select * from t1;
 | |
| s
 | |
| Could not break slave
 | |
| Tried hard
 | |
| flush logs;
 | |
| create table t2(m int not null auto_increment primary key);
 | |
| insert into t2 values (34),(67),(123);
 | |
| flush logs;
 | |
| show binary logs;
 | |
| Log_name
 | |
| master-bin.000001
 | |
| master-bin.000002
 | |
| master-bin.000003
 | |
| create table t3 select * from temp_table;
 | |
| select * from t3;
 | |
| a
 | |
| testing temporary tables
 | |
| drop table temp_table, t3;
 | |
| insert into t2 values(1234);
 | |
| set insert_id=1234;
 | |
| insert into t2 values(NULL);
 | |
| set global sql_slave_skip_counter=1;
 | |
| start slave;
 | |
| purge master logs to 'master-bin.000002';
 | |
| show master logs;
 | |
| Log_name
 | |
| master-bin.000002
 | |
| master-bin.000003
 | |
| purge binary logs to 'master-bin.000002';
 | |
| show binary logs;
 | |
| Log_name
 | |
| master-bin.000002
 | |
| master-bin.000003
 | |
| purge master logs before now();
 | |
| show binary logs;
 | |
| Log_name
 | |
| master-bin.000003
 | |
| insert into t2 values (65);
 | |
| 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_PORT	60	master-bin.000003	496	#	#	master-bin.000003	Yes	Yes							0		0	496	#	None		0	No						#
 | |
| select * from t2;
 | |
| m
 | |
| 34
 | |
| 65
 | |
| 67
 | |
| 123
 | |
| 1234
 | |
| create temporary table temp_table (a char(80) not null);
 | |
| insert into temp_table values ("testing temporary tables part 2");
 | |
| create table t3 (n int);
 | |
| select count(*) from t3 where n >= 4;
 | |
| count(*)
 | |
| 100
 | |
| create table t4 select * from temp_table;
 | |
| show binary logs;
 | |
| Log_name
 | |
| master-bin.000003
 | |
| master-bin.000004
 | |
| master-bin.000005
 | |
| show master status;
 | |
| File	Position	Binlog_Do_DB	Binlog_Ignore_DB
 | |
| master-bin.000005	2032		
 | |
| select * from t4;
 | |
| a
 | |
| testing temporary tables part 2
 | |
| 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_PORT	60	master-bin.000005	2032	#	#	master-bin.000005	Yes	Yes							0		0	2032	#	None		0	No						#
 | |
| lock tables t3 read;
 | |
| select count(*) from t3 where n >= 4;
 | |
| count(*)
 | |
| 100
 | |
| unlock tables;
 | |
| drop table if exists t1,t2,t3,t4;
 |