mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			335 lines
		
	
	
	
		
			9.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			335 lines
		
	
	
	
		
			9.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| set global aria_log_file_size=4294959104;
 | |
| drop database if exists mysqltest;
 | |
| create database mysqltest;
 | |
| connect  admin, localhost, root,,mysqltest,,;
 | |
| connection default;
 | |
| use mysqltest;
 | |
| connection default;
 | |
| connection admin;
 | |
| * shut down mysqld, removed logs, restarted it
 | |
| connection default;
 | |
| create table t1 (a varchar(1000)) engine=aria;
 | |
| * TEST of REDO: see if recovery can reconstruct if we give it an old table
 | |
| connection admin;
 | |
| * copied t1 for feeding_recovery
 | |
| connection default;
 | |
| insert into t1 values ("00000000");
 | |
| connection admin;
 | |
| flush table t1;
 | |
| * copied t1 for comparison
 | |
| connection default;
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * copied t1 back for feeding_recovery
 | |
| * recovery happens
 | |
| check table t1 extended;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t1	check	status	OK
 | |
| * testing that checksum after recovery is as expected
 | |
| Checksum-check
 | |
| ok
 | |
| * compared t1 to old version
 | |
| connection default;
 | |
| use mysqltest;
 | |
| select * from t1;
 | |
| a
 | |
| 00000000
 | |
| * TEST of REDO+UNDO: normal recovery test (no moving tables under its feet)
 | |
| insert into t1 values ("00000000");
 | |
| connection admin;
 | |
| flush table t1;
 | |
| * copied t1 for comparison
 | |
| connection default;
 | |
| lock tables t1 write;
 | |
| insert into t1 values ("aaaaaaaaa");
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * recovery happens
 | |
| check table t1 extended;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t1	check	status	OK
 | |
| * testing that checksum after recovery is as expected
 | |
| Checksum-check
 | |
| ok
 | |
| connection default;
 | |
| use mysqltest;
 | |
| select * from t1;
 | |
| a
 | |
| 00000000
 | |
| 00000000
 | |
| insert into t1 values ("00000000");
 | |
| connection admin;
 | |
| flush table t1;
 | |
| * copied t1 for comparison
 | |
| connection default;
 | |
| lock tables t1 write;
 | |
| insert into t1 values ("aaaaaaaaa");
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_flush_whole_page_cache,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * recovery happens
 | |
| check table t1 extended;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t1	check	status	OK
 | |
| * testing that checksum after recovery is as expected
 | |
| Checksum-check
 | |
| ok
 | |
| connection default;
 | |
| use mysqltest;
 | |
| select * from t1;
 | |
| a
 | |
| 00000000
 | |
| 00000000
 | |
| 00000000
 | |
| insert into t1 values ("00000000");
 | |
| connection admin;
 | |
| flush table t1;
 | |
| * copied t1 for comparison
 | |
| connection default;
 | |
| lock tables t1 write;
 | |
| insert into t1 values ("aaaaaaaaa");
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_flush_states,maria_flush_whole_log,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * recovery happens
 | |
| check table t1 extended;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t1	check	status	OK
 | |
| * testing that checksum after recovery is as expected
 | |
| Checksum-check
 | |
| ok
 | |
| connection default;
 | |
| use mysqltest;
 | |
| select * from t1;
 | |
| a
 | |
| 00000000
 | |
| 00000000
 | |
| 00000000
 | |
| 00000000
 | |
| insert into t1 values ("00000000");
 | |
| connection admin;
 | |
| flush table t1;
 | |
| * copied t1 for comparison
 | |
| connection default;
 | |
| lock tables t1 write;
 | |
| insert into t1 values ("aaaaaaaaa");
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * recovery happens
 | |
| check table t1 extended;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t1	check	status	OK
 | |
| * testing that checksum after recovery is as expected
 | |
| Checksum-check
 | |
| ok
 | |
| connection default;
 | |
| use mysqltest;
 | |
| select * from t1;
 | |
| a
 | |
| 00000000
 | |
| 00000000
 | |
| 00000000
 | |
| 00000000
 | |
| 00000000
 | |
| drop table t1;
 | |
| * TEST of two REDOs for same page in one REDO group
 | |
| connection default;
 | |
| connection admin;
 | |
| * shut down mysqld, removed logs, restarted it
 | |
| connection default;
 | |
| CREATE TABLE t1 (
 | |
| i int,
 | |
| b blob default NULL,
 | |
| c varchar(6000) default NULL
 | |
| ) ENGINE=ARIA CHECKSUM=1;
 | |
| connection admin;
 | |
| * copied t1 for feeding_recovery
 | |
| connection default;
 | |
| INSERT INTO t1 VALUES (1, REPEAT('a', 5000), REPEAT('b', 5000));
 | |
| UPDATE t1 SET i=3, b=CONCAT(b,'c') WHERE i=1;
 | |
| SELECT LENGTH(b) FROM t1 WHERE i=3;
 | |
| LENGTH(b)
 | |
| 5001
 | |
| connection admin;
 | |
| flush table t1;
 | |
| * copied t1 for comparison
 | |
| connection default;
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * copied t1 back for feeding_recovery
 | |
| * recovery happens
 | |
| check table t1 extended;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t1	check	status	OK
 | |
| * testing that checksum after recovery is as expected
 | |
| Checksum-check
 | |
| ok
 | |
| connection default;
 | |
| use mysqltest;
 | |
| SELECT LENGTH(b) FROM t1 WHERE i=3;
 | |
| LENGTH(b)
 | |
| 5001
 | |
| drop table t1;
 | |
| * TEST of INSERT vs state.auto_increment
 | |
| connection default;
 | |
| connection admin;
 | |
| * shut down mysqld, removed logs, restarted it
 | |
| connection default;
 | |
| CREATE TABLE t1 (
 | |
| i int auto_increment primary key,
 | |
| c varchar(6),
 | |
| key(c)
 | |
| ) ENGINE=ARIA;
 | |
| insert into t1 values(null,"b");
 | |
| connection admin;
 | |
| * copied t1 for feeding_recovery
 | |
| connection default;
 | |
| insert into t1 values(null,"a"), (null,"c"), (null,"d");
 | |
| delete from t1 where c="d";
 | |
| connection admin;
 | |
| flush table t1;
 | |
| * copied t1 for comparison
 | |
| connection default;
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * copied t1 back for feeding_recovery
 | |
| * recovery happens
 | |
| check table t1 extended;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t1	check	status	OK
 | |
| * testing that checksum after recovery is as expected
 | |
| Checksum-check
 | |
| ok
 | |
| connection default;
 | |
| use mysqltest;
 | |
| show create table t1;
 | |
| Table	Create Table
 | |
| t1	CREATE TABLE `t1` (
 | |
|   `i` int(11) NOT NULL AUTO_INCREMENT,
 | |
|   `c` varchar(6) DEFAULT NULL,
 | |
|   PRIMARY KEY (`i`),
 | |
|   KEY `c` (`c`)
 | |
| ) ENGINE=Aria AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci PAGE_CHECKSUM=1
 | |
| * TEST of UPDATE vs state.auto_increment
 | |
| connection admin;
 | |
| * copied t1 for feeding_recovery
 | |
| connection default;
 | |
| update t1 set i=15 where c="a";
 | |
| connection admin;
 | |
| flush table t1;
 | |
| * copied t1 for comparison
 | |
| connection default;
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * copied t1 back for feeding_recovery
 | |
| * recovery happens
 | |
| check table t1 extended;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t1	check	status	OK
 | |
| * testing that checksum after recovery is as expected
 | |
| Checksum-check
 | |
| ok
 | |
| connection default;
 | |
| use mysqltest;
 | |
| show create table t1;
 | |
| Table	Create Table
 | |
| t1	CREATE TABLE `t1` (
 | |
|   `i` int(11) NOT NULL AUTO_INCREMENT,
 | |
|   `c` varchar(6) DEFAULT NULL,
 | |
|   PRIMARY KEY (`i`),
 | |
|   KEY `c` (`c`)
 | |
| ) ENGINE=Aria AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci PAGE_CHECKSUM=1
 | |
| * TEST of INSERT's rollback vs state.auto_increment
 | |
| connection admin;
 | |
| flush table t1;
 | |
| * copied t1 for comparison
 | |
| connection default;
 | |
| lock tables t1 write;
 | |
| insert into t1 values(null, "e");
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * recovery happens
 | |
| check table t1 extended;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t1	check	status	OK
 | |
| * testing that checksum after recovery is as expected
 | |
| Checksum-check
 | |
| ok
 | |
| connection default;
 | |
| use mysqltest;
 | |
| show create table t1;
 | |
| Table	Create Table
 | |
| t1	CREATE TABLE `t1` (
 | |
|   `i` int(11) NOT NULL AUTO_INCREMENT,
 | |
|   `c` varchar(6) DEFAULT NULL,
 | |
|   PRIMARY KEY (`i`),
 | |
|   KEY `c` (`c`)
 | |
| ) ENGINE=Aria AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci PAGE_CHECKSUM=1
 | |
| insert into t1 values(null, "f");
 | |
| drop table t1;
 | |
| Test that bulk insert works with recovery
 | |
| CREATE TABLE t1 (i int, key(i)) TRANSACTIONAL=1 ENGINE=ARIA;
 | |
| CREATE TABLE t2 (i int, key(i)) TRANSACTIONAL=1 ENGINE=ARIA;
 | |
| connection admin;
 | |
| * copied t2 for feeding_recovery
 | |
| * copied t1 for feeding_recovery
 | |
| connection default;
 | |
| insert into t2 values
 | |
| (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 | |
| (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 | |
| (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 | |
| (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 | |
| (0), (1), (3), (3), (4), (5), (6), (7), (8), (9),
 | |
| (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 | |
| (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 | |
| (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 | |
| (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 | |
| (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
 | |
| insert into t1 select * from t2;
 | |
| insert into t2 select * from t2;
 | |
| connection admin;
 | |
| SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash";
 | |
| * crashing mysqld intentionally
 | |
| set global aria_checkpoint_interval=1;
 | |
| ERROR HY000: Lost connection to server during query
 | |
| * recovery happens
 | |
| connection default;
 | |
| use mysqltest;
 | |
| select count(*) from t1;
 | |
| count(*)
 | |
| 100
 | |
| select count(*) from t2;
 | |
| count(*)
 | |
| 200
 | |
| check table t2;
 | |
| Table	Op	Msg_type	Msg_text
 | |
| mysqltest.t2	check	status	OK
 | |
| drop table t1,t2;
 | |
| drop database mysqltest_for_feeding_recovery;
 | |
| drop database mysqltest_for_comparison;
 | |
| drop database mysqltest;
 | 
