mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	options for mysqlbinlog, with a test file. This enables user to say "recover my database to how it was this morning at 10:30" (mysqlbinlog "--stop-datetime=2003-07-29 10:30:00"). Using time functions into client/ made me move them out of sql/ into sql-common/. + (small) fix for BUG#4507 "mysqlbinlog --read-from-remote-server sometimes cannot accept 2 binlogs" (that is, on command line).
		
			
				
	
	
		
			447 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			447 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
drop table if exists t1;
 | 
						|
reset master;
 | 
						|
set @a=UNIX_TIMESTAMP("2020-01-21 15:32:22");
 | 
						|
set timestamp=@a;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
insert into t1 values(null, "a");
 | 
						|
insert into t1 values(null, "b");
 | 
						|
set timestamp=@a+2;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
set timestamp=@a+4;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
insert into t1 values(null, "e");
 | 
						|
flush logs;
 | 
						|
set timestamp=@a+1;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- Local --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
 | 
						|
--- offset --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
SET INSERT_ID=1;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
 | 
						|
--- start-position --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
 | 
						|
--- stop-position --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
 | 
						|
--- start-datetime --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
SET INSERT_ID=3;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
 | 
						|
--- stop-datetime --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
 | 
						|
--- Local with 2 binlogs on command line --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609943;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- offset --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
SET INSERT_ID=1;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609943;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- start-position --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609943;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- stop-position --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
 | 
						|
--- start-datetime --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
SET INSERT_ID=3;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609943;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- stop-datetime --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
 | 
						|
--- Remote --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
 | 
						|
--- offset --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
SET INSERT_ID=1;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
 | 
						|
--- start-position --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
 | 
						|
--- stop-position --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
 | 
						|
--- start-datetime --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
SET INSERT_ID=3;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
 | 
						|
--- stop-datetime --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
 | 
						|
--- Remote with 2 binlogs on command line --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609943;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- offset --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
SET INSERT_ID=1;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609943;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- start-position --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609943;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- stop-position --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
 | 
						|
--- start-datetime --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
SET INSERT_ID=3;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609943;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- stop-datetime --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
 | 
						|
--- to-last-log --
 | 
						|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
 | 
						|
use test;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
create table t1 (a int auto_increment not null primary key, b char(3));
 | 
						|
SET INSERT_ID=1;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "a");
 | 
						|
SET INSERT_ID=2;
 | 
						|
SET TIMESTAMP=1579609942;
 | 
						|
insert into t1 values(null, "b");
 | 
						|
SET INSERT_ID=3;
 | 
						|
SET TIMESTAMP=1579609944;
 | 
						|
insert into t1 values(null, "c");
 | 
						|
SET INSERT_ID=4;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "d");
 | 
						|
SET INSERT_ID=5;
 | 
						|
SET TIMESTAMP=1579609946;
 | 
						|
insert into t1 values(null, "e");
 | 
						|
SET INSERT_ID=6;
 | 
						|
SET TIMESTAMP=1579609943;
 | 
						|
insert into t1 values(null, "f");
 | 
						|
 | 
						|
--- end of test --
 | 
						|
drop table t1;
 |