GIF89a; Mini Shell

Mini Shell

Direktori : /proc/self/root/proc/self/root/usr/share/mysql-test/suite/innodb/t/
Upload File :
Current File : //proc/self/root/proc/self/root/usr/share/mysql-test/suite/innodb/t/innodb_force_recovery.test

# Not supported in embedded
--source include/not_embedded.inc

# This test case needs InnoDB.
-- source include/have_innodb.inc

call mtr.add_suppression('InnoDB: Failed to find tablespace for table \'".*".".*"\' in the cache');
call mtr.add_suppression('InnoDB: Allocated tablespace [0-9]+, old maximum was [0-9]+');

create table t1(f1 int not null, f2 int not null, index idx(f2))engine=innodb;
create table t2(f1 int not null, f2 int not null, index idx(f2))engine=innodb;
insert into t1 values(1, 2);
insert into t2 values(1, 2);

SET GLOBAL innodb_fast_shutdown = 0;

# Restart the server in force recovery mode
--echo # Stop server

# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect

# Request shutdown
-- send_shutdown

# Call script that will poll the server waiting for it to disapear
-- source include/wait_until_disconnected.inc

--echo # Restart server.

# Write file to make mysql-test-run.pl start up the server again, ensure
# that no background threads are started, so that we can check that it
# shuts down properly.
--exec echo "restart:--innodb-force-recovery=4" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect

# Turn on reconnect
--enable_reconnect

# Call script that will poll the server waiting for it to be back online again
--source include/wait_until_connected_again.inc

# Turn off reconnect again
--disable_reconnect

select * from t1;

--error ER_OPEN_AS_READONLY
insert into t1 values(2, 3);

--error ER_INNODB_READ_ONLY
alter table t1 add f3 int not null, algorithm=copy;

--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t1 add f3 int not null, algorithm=inplace;

--error ER_INNODB_READ_ONLY
drop index idx on t1;

--error ER_OPEN_AS_READONLY
update t1 set f1=3 where f2=2;

--error ER_INNODB_READ_ONLY
create table t3(f1 int not null)engine=innodb;

--error ER_BAD_TABLE_ERROR
drop table t3;

--error ER_ERROR_ON_RENAME
rename table t1 to t3;

--error ER_OPEN_AS_READONLY
truncate table t1;

drop table t1;
show tables;

# Restart the server in force recovery mode
--echo # Stop server

# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect

# Request shutdown
-- send_shutdown

# Call script that will poll the server waiting for it to disapear
-- source include/wait_until_disconnected.inc

--echo # Restart server.

# Write file to make mysql-test-run.pl start up the server again, ensure
# that no background threads are started, so that we can check that it
# shuts down properly.
--exec echo "restart:--innodb-force-recovery=5" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect

# Turn on reconnect
--enable_reconnect

# Call script that will poll the server waiting for it to be back online again
--source include/wait_until_connected_again.inc

# Turn off reconnect again
--disable_reconnect

select * from t2;

--error ER_OPEN_AS_READONLY
insert into t2 values(2, 3);

--error ER_INNODB_READ_ONLY
alter table t2 add f3 int not null, algorithm=copy;

--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t2 add f3 int not null, algorithm=inplace;

--error ER_INNODB_READ_ONLY
drop index idx on t2;

--error ER_OPEN_AS_READONLY
update t2 set f1=3 where f2=2;

--error ER_INNODB_READ_ONLY
create table t4(f1 int not null)engine=innodb;

--error ER_BAD_TABLE_ERROR
drop table t4;

--error ER_ERROR_ON_RENAME
rename table t2 to t3;

--error ER_OPEN_AS_READONLY
truncate table t2;

--error ER_BAD_TABLE_ERROR
drop table t2;
show tables;

# Restart the server in force recovery mode
--echo # Stop server

# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect

# Request shutdown
-- send_shutdown

# Call script that will poll the server waiting for it to disapear
-- source include/wait_until_disconnected.inc

--echo # Restart server.

# Write file to make mysql-test-run.pl start up the server again, ensure
# that no background threads are started, so that we can check that it
# shuts down properly.
--exec echo "restart:--innodb-force-recovery=6" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect

# Turn on reconnect
--enable_reconnect

# Call script that will poll the server waiting for it to be back online again
--source include/wait_until_connected_again.inc

# Turn off reconnect again
--disable_reconnect

select * from t2;

--error ER_CANT_LOCK
insert into t2 values(2, 3);

--error ER_CANT_LOCK
alter table t2 add f3 int not null, algorithm=copy;

--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t2 add f3 int not null, algorithm=inplace;

--error ER_CANT_LOCK
drop index idx on t2;

--error ER_CANT_LOCK
update t2 set f1=3 where f2=2;

--error ER_INNODB_READ_ONLY
create table t4(f1 int not null)engine=innodb;

--error ER_BAD_TABLE_ERROR
drop table t4;

--error ER_ERROR_ON_RENAME
rename table t2 to t3;

--error ER_OPEN_AS_READONLY
truncate table t2;

--error ER_BAD_TABLE_ERROR
drop table t2;
show tables;

# Restart the server without force recovery mode
--echo # Stop server

# Write file to make mysql-test-run.pl wait for the server to stop
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect

# Request shutdown
-- send_shutdown

# Call script that will poll the server waiting for it to disapear
-- source include/wait_until_disconnected.inc

--echo # Restart server.

# Write file to make mysql-test-run.pl start up the server again, ensure
# that no background threads are started, so that we can check that it
# shuts down properly.
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect

# Turn on reconnect
--enable_reconnect

# Call script that will poll the server waiting for it to be back online again
--source include/wait_until_connected_again.inc

# Turn off reconnect again
--disable_reconnect

drop table t2;
show tables;

./BlackJoker Mini Shell 1.0