1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
#########
# SETUP #
#########
#########################################################################
# RESTART 1 : WITH KEYRING PLUGIN
#########################################################################
#-------------------------- TEST 1 -------------------------------------#
CREATE TABLESPACE encrypt_ts ADD DATAFILE 'encrypt_ts.ibd' ENGINE=InnoDB ENCRYPTION="N";
CREATE TABLE t1(c1 char(100)) ENGINE=InnoDB TABLESPACE encrypt_ts;
set global innodb_buf_flush_list_now = 1;
SELECT NAME, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='encrypt_ts';
NAME ENCRYPTION
encrypt_ts N
SELECT * FROM t1 LIMIT 10;
c1
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
# Set Encryption process to crash just after making DDL Entry
SET SESSION debug= '+d,alter_encrypt_tablespace_crash_after_ddl_entry';
# Encrypt the tablespace. It will cause crash.
ALTER TABLESPACE encrypt_ts ENCRYPTION='Y';
#########################################################################
# RESTART 2 : WITH KEYRING PLUGIN after crash
#########################################################################
# INJECT error TOO_MANY_CONCURRENT_TXNS in startup location DDL_Log_remove_inject_startup_error_1.
# It will cause FATAL error and server abort.
# Search the failure pattern in error log
Pattern "ENCRYPTION for tablespace encrypt_ts:[0-9]+ could not be done successfully" found
DROP TABLE t1;
DROP TABLESPACE encrypt_ts;
#########################################################################
# RESTART 3 : normally
#########################################################################
#-------------------------- TEST 2 -------------------------------------#
CREATE TABLESPACE encrypt_ts ADD DATAFILE 'encrypt_ts.ibd' ENGINE=InnoDB ENCRYPTION="N";
CREATE TABLE t1(c1 char(100)) ENGINE=InnoDB TABLESPACE encrypt_ts;
set global innodb_buf_flush_list_now = 1;
SELECT NAME, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='encrypt_ts';
NAME ENCRYPTION
encrypt_ts N
SELECT * FROM t1 LIMIT 10;
c1
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
SOME VALUES
# Set Encryption process to crash just after making DDL Entry
SET SESSION debug= '+d,alter_encrypt_tablespace_crash_after_ddl_entry';
# Encrypt the tablespace. It will cause crash.
ALTER TABLESPACE encrypt_ts ENCRYPTION='Y';
#########################################################################
# RESTART 4 : WITH KEYRING PLUGIN after crash
#########################################################################
# INJECT error TOO_MANY_CONCURRENT_TXNS in startup location DDL_Log_remove_inject_startup_error_2.
# It will cause FATAL error and server abort.
# Search the failure pattern in error log
Pattern "\[FATAL\] Error in DDL Log recovery during Post-Recovery processing." found
#########################################################################
# RESTART 4 : normally
#########################################################################
DROP TABLE t1;
DROP TABLESPACE encrypt_ts;
###########
# Cleanup #
###########
#########################################################################
# RESTART 5 : final
#########################################################################
|