mirror of
https://github.com/MariaDB/server.git
synced 2025-02-07 06:12:18 +01:00
![Thirunarayanan Balathandayuthapani](/assets/img/avatar_default.png)
srv_export_innodb_status(): Update
export_vars.innodb_buffer_pool_read_requests
with buf_pool.stat.n_page_gets. This is caused due
to incorrect merge commit 44c9008ba6
126 lines
3.7 KiB
Text
126 lines
3.7 KiB
Text
create table t1(f1 int not null, f2 int not null, index idx(f2))engine=innodb;
|
|
create table t2(f1 int primary key, f2 int, index idx(f2))engine=innodb;
|
|
insert into t1 values(1, 2);
|
|
insert into t2 values(1, 2);
|
|
SET GLOBAL innodb_fast_shutdown = 0;
|
|
# restart: --innodb-force-recovery=4
|
|
SELECT CAST(variable_value AS INTEGER) INTO @read1
|
|
FROM INFORMATION_SCHEMA.GLOBAL_STATUS
|
|
WHERE VARIABLE_NAME='innodb_buffer_pool_read_requests';
|
|
select * from t1;
|
|
f1 f2
|
|
1 2
|
|
SELECT CAST(variable_value AS INTEGER) INTO @read2
|
|
FROM INFORMATION_SCHEMA.GLOBAL_STATUS
|
|
WHERE VARIABLE_NAME='innodb_buffer_pool_read_requests';
|
|
SELECT @read1>0, @read2>@read1;
|
|
@read1>0 @read2>@read1
|
|
1 1
|
|
begin;
|
|
insert into t1 values(2, 3);
|
|
rollback;
|
|
alter table t1 add f3 int not null, algorithm=copy;
|
|
alter table t1 add f4 int not null, algorithm=inplace;
|
|
drop index idx on t1;
|
|
update t1 set f1=3 where f2=2;
|
|
create table t3(f1 int not null)engine=innodb;
|
|
drop table t3;
|
|
rename table t1 to t3;
|
|
rename table t3 to t1;
|
|
truncate table t1;
|
|
show tables;
|
|
Tables_in_test
|
|
t1
|
|
t2
|
|
# restart: --innodb-force-recovery=5
|
|
select * from t2;
|
|
f1 f2
|
|
1 2
|
|
insert into t2 values(2, 3);
|
|
ERROR HY000: Running in read-only mode
|
|
alter table t2 add f3 int not null, algorithm=copy;
|
|
ERROR HY000: Can't create table `test`.`t2` (errno: 165 "Table is read only")
|
|
alter table t2 add f3 int not null, algorithm=inplace;
|
|
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Running in read-only mode. Try ALGORITHM=COPY
|
|
drop index idx on t2;
|
|
ERROR HY000: Can't create table `test`.`t2` (errno: 165 "Table is read only")
|
|
update t2 set f1=3 where f2=2;
|
|
ERROR HY000: Running in read-only mode
|
|
create table t3(f1 int not null)engine=innodb;
|
|
ERROR HY000: Can't create table `test`.`t3` (errno: 165 "Table is read only")
|
|
drop table t3;
|
|
ERROR HY000: Table 't3' is read only
|
|
rename table t2 to t3;
|
|
ERROR HY000: Error on rename of './test/t2' to './test/t3' (errno: 165 "Table is read only")
|
|
truncate table t2;
|
|
ERROR HY000: Table 't2' is read only
|
|
drop table t2;
|
|
ERROR HY000: Table 't2' is read only
|
|
create schema db;
|
|
drop schema db;
|
|
show tables;
|
|
Tables_in_test
|
|
t1
|
|
t2
|
|
# restart: --innodb-force-recovery=6
|
|
select * from t2;
|
|
f1 f2
|
|
1 2
|
|
insert into t2 values(2, 3);
|
|
ERROR HY000: Table 't2' is read only
|
|
alter table t2 add f3 int not null, algorithm=copy;
|
|
ERROR HY000: Table 't2' is read only
|
|
alter table t2 add f3 int not null, algorithm=inplace;
|
|
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Running in read-only mode. Try ALGORITHM=COPY
|
|
drop index idx on t2;
|
|
ERROR HY000: Table 't2' is read only
|
|
update t2 set f1=3 where f2=2;
|
|
ERROR HY000: Table 't2' is read only
|
|
create table t3(f1 int not null)engine=innodb;
|
|
ERROR HY000: Can't create table `test`.`t3` (errno: 165 "Table is read only")
|
|
drop table t1;
|
|
ERROR HY000: Table 't1' is read only
|
|
rename table t2 to t3;
|
|
ERROR HY000: Error on rename of './test/t2' to './test/t3' (errno: 165 "Table is read only")
|
|
truncate table t2;
|
|
ERROR HY000: Table 't2' is read only
|
|
drop table t2;
|
|
ERROR HY000: Table 't2' is read only
|
|
show tables;
|
|
Tables_in_test
|
|
t1
|
|
t2
|
|
# restart: --innodb-force-recovery=2
|
|
select * from t2;
|
|
f1 f2
|
|
1 2
|
|
begin;
|
|
update t2 set f2=3;
|
|
connect con1,localhost,root,,;
|
|
# Force a redo log flush of the above uncommitted UPDATE
|
|
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
|
drop table t1;
|
|
disconnect con1;
|
|
connection default;
|
|
# Kill the server
|
|
# restart: --innodb-force-recovery=3
|
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
|
select * from t2;
|
|
f1 f2
|
|
1 3
|
|
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
|
select * from t2;
|
|
f1 f2
|
|
1 2
|
|
SET SESSION innodb_lock_wait_timeout=1;
|
|
insert into t2 values(1,2);
|
|
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
|
insert into t2 values(9,10);
|
|
# restart
|
|
select * from t2;
|
|
f1 f2
|
|
1 2
|
|
9 10
|
|
drop table t2;
|
|
show tables;
|
|
Tables_in_test
|