mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 21:42:35 +01:00
345451ce76
must be updated correctly. And Recovery should not assume that log 1 is available but just use first available log. mysql-test/r/maria-purge.result: result update mysql-test/t/maria-purge.test: like in other Maria tests (4294967296 is too big, causes warning) storage/maria/ma_loghandler.c: When log handler starts and discovers that logs are missing though control file says they should be there (they have been manually deleted), it decides to create a log with number last_logno+1. It needs to update control file with this new number, and also reset last_checkpoint_lsn to LSN_IMPOSSIBLE (last checkpoint went away when log was deleted). Fix for when translog_init() fails before allocating id_to_share (translog_destroy() tried to free NULL). storage/maria/ma_recovery.c: When logs have been manually deleted, translog_first_theoretical_lsn() always fails (it looks for log number 1). Recovery now uses translog_first_lsn_in_log() which just picks the first available log.
104 lines
3.7 KiB
Text
104 lines
3.7 KiB
Text
-- source include/have_maria.inc
|
|
-- source include/big_test.inc
|
|
let $default=`select @@global.storage_engine`;
|
|
set global storage_engine=maria;
|
|
set session storage_engine=maria;
|
|
let $def_logsize=`select @@global.maria_log_file_size`;
|
|
let $def_checkinterval=`select @@global.maria_checkpoint_interval`;
|
|
|
|
set global maria_log_file_size=4294967295;
|
|
# Initialise
|
|
--disable_warnings
|
|
drop table if exists t1,t2;
|
|
--enable_warnings
|
|
SET SQL_WARNINGS=1;
|
|
|
|
CREATE TABLE t1 (
|
|
STRING_DATA char(255) default NULL
|
|
);
|
|
CREATE TABLE t2 (
|
|
STRING_DATA char(255) default NULL
|
|
);
|
|
|
|
|
|
INSERT INTO t1 VALUES ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
|
|
INSERT INTO t1 VALUES ('DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD');
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
|
|
set global maria_log_file_size=16777216;
|
|
eval set global maria_checkpoint_interval=$def_checkinterval;
|
|
--replace_regex /Size +[0-9]+ ; .+master-data/master-data/
|
|
SHOW ENGINE maria logs;
|
|
|
|
insert into t2 select * from t1;
|
|
insert into t1 select * from t2;
|
|
|
|
|
|
|
|
eval set global maria_checkpoint_interval=$def_checkinterval;
|
|
--replace_regex /Size +[0-9]+ ; .+master-data/master-data/
|
|
SHOW ENGINE maria logs;
|
|
set global maria_log_file_size=16777216;
|
|
select @@global.maria_log_file_size;
|
|
eval set global maria_checkpoint_interval=$def_checkinterval;
|
|
--replace_regex /Size +[0-9]+ ; .+master-data/master-data/
|
|
SHOW ENGINE maria logs;
|
|
set global maria_log_file_size=8388608;
|
|
select @@global.maria_log_file_size;
|
|
|
|
set global maria_log_purge_type=at_flush;
|
|
insert into t1 select * from t2;
|
|
eval set global maria_checkpoint_interval=$def_checkinterval;
|
|
--replace_regex /Size +[0-9]+ ; .+master-data/master-data/
|
|
SHOW ENGINE maria logs;
|
|
flush logs;
|
|
--replace_regex /Size +[0-9]+ ; .+master-data/master-data/
|
|
SHOW ENGINE maria logs;
|
|
|
|
set global maria_log_file_size=16777216;
|
|
set global maria_log_purge_type=external;
|
|
insert into t1 select * from t2;
|
|
eval set global maria_checkpoint_interval=$def_checkinterval;
|
|
--replace_regex /Size +[0-9]+ ; .+master-data/master-data/
|
|
SHOW ENGINE maria logs;
|
|
flush logs;
|
|
--replace_regex /Size +[0-9]+ ; .+master-data/master-data/
|
|
SHOW ENGINE maria logs;
|
|
|
|
set global maria_log_purge_type=immediate;
|
|
insert into t1 select * from t2;
|
|
eval set global maria_checkpoint_interval=$def_checkinterval;
|
|
--replace_regex /Size +[0-9]+ ; .+master-data/master-data/
|
|
SHOW ENGINE maria logs;
|
|
|
|
drop table t1, t2;
|
|
|
|
--disable_result_log
|
|
--disable_query_log
|
|
set global maria_log_purge_type=immediate;
|
|
eval set global storage_engine=$default;
|
|
eval set global maria_log_file_size=$def_logsize;
|
|
eval set global maria_checkpoint_interval=$def_checkinterval;
|
|
--enable_result_log
|
|
--enable_query_log
|