mirror of
https://github.com/MariaDB/server.git
synced 2025-08-30 11:22:14 +03:00
We will remove the InnoDB background operation of merging buffered changes to secondary index leaf pages. Changes will only be merged as a result of an operation that accesses a secondary index leaf page, such as a SQL statement that performs a lookup via that index, or is modifying the index. Also ROLLBACK and some background operations, such as purging the history of committed transactions, or computing index cardinality statistics, can cause change buffer merge. Encryption key rotation will not perform change buffer merge. The motivation of this change is to simplify the I/O logic and to allow crash recovery to happen in the background (MDEV-14481). We also hope that this will reduce the number of "mystery" crashes due to corrupted data. Because change buffer merge will typically take place as a result of executing SQL statements, there should be a clearer connection between the crash and the SQL statements that were executed when the server crashed. In many cases, a slight performance improvement was observed. This is joint work with Thirunarayanan Balathandayuthapani and was tested by Axel Schwenke and Matthias Leich. The InnoDB monitor counter innodb_ibuf_merge_usec will be removed. On slow shutdown (innodb_fast_shutdown=0), we will continue to merge all buffered changes (and purge all undo log history). Two InnoDB configuration parameters will be changed as follows: innodb_disable_background_merge: Removed. This parameter existed only in debug builds. All change buffer merges will use synchronous reads. innodb_force_recovery will be changed as follows: * innodb_force_recovery=4 will be the same as innodb_force_recovery=3 (the change buffer merge cannot be disabled; it can only happen as a result of an operation that accesses a secondary index leaf page). The option used to be capable of corrupting secondary index leaf pages. Now that capability is removed, and innodb_force_recovery=4 becomes 'safe'. * innodb_force_recovery=5 (which essentially hard-wires SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED) becomes safe to use. Bogus data can be returned to SQL, but persistent InnoDB data files will not be corrupted further. * innodb_force_recovery=6 (ignore the redo log files) will be the only option that can potentially cause persistent corruption of InnoDB data files. Code changes: buf_page_t::ibuf_exist: New flag, to indicate whether buffered changes exist for a buffer pool page. Pages with pending changes can be returned by buf_page_get_gen(). Previously, the changes were always merged inside buf_page_get_gen() if needed. ibuf_page_exists(const buf_page_t&): Check if a buffered changes exist for an X-latched or read-fixed page. buf_page_get_gen(): Add the parameter allow_ibuf_merge=false. All callers that know that they may be accessing a secondary index leaf page must pass this parameter as allow_ibuf_merge=true, unless it does not matter for that caller whether all buffered changes have been applied. Assert that whenever allow_ibuf_merge holds, the page actually is a leaf page. Attempt change buffer merge only to secondary B-tree index leaf pages. btr_block_get(): Add parameter 'bool merge'. All callers of btr_block_get() should know whether the page could be a secondary index leaf page. If it is not, we should avoid consulting the change buffer bitmap to even consider a merge. This is the main interface to requesting index pages from the buffer pool. ibuf_merge_or_delete_for_page(), recv_recover_page(): Replace buf_page_get_known_nowait() with much simpler logic, because it is now guaranteed that that the block is x-latched or read-fixed. mlog_init_t::mark_ibuf_exist(): Renamed from mlog_init_t::ibuf_merge(). On crash recovery, we will no longer merge any buffered changes for the pages that we read into the buffer pool during the last batch of applying log records. buf_page_get_gen_known_nowait(), BUF_MAKE_YOUNG, BUF_KEEP_OLD: Remove. btr_search_guess_on_hash(): Merge buf_page_get_gen_known_nowait() to its only remaining caller. buf_page_make_young_if_needed(): Define as an inline function. Add the parameter buf_pool. buf_page_peek_if_young(), buf_page_peek_if_too_old(): Add the parameter buf_pool. fil_space_validate_for_mtr_commit(): Remove a bogus comment about background merge of the change buffer. btr_cur_open_at_rnd_pos_func(), btr_cur_search_to_nth_level_func(), btr_cur_open_at_index_side_func(): Use narrower data types and scopes. ibuf_read_merge_pages(): Replaces buf_read_ibuf_merge_pages(). Merge the change buffer by invoking buf_page_get_gen().
554 lines
15 KiB
Plaintext
554 lines
15 KiB
Plaintext
call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded.");
|
|
call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* because the .ibd file is missing. Please refer to .* for how to resolve the issue.");
|
|
call mtr.add_suppression("InnoDB: Page 0 at offset 0 looks corrupted in file .*");
|
|
call mtr.add_suppression("InnoDB: Page for tablespace ");
|
|
call mtr.add_suppression("InnoDB: Invalid FSP_SPACE_FLAGS=0x");
|
|
FLUSH TABLES;
|
|
SET SESSION innodb_strict_mode=1;
|
|
CREATE DATABASE test_wl5522;
|
|
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED;
|
|
INSERT INTO test_wl5522.t1 VALUES (1), (2), (3), (4);
|
|
FLUSH TABLES test_wl5522.t1 FOR EXPORT;
|
|
backup: t1
|
|
UNLOCK TABLES;
|
|
DROP TABLE test_wl5522.t1;
|
|
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED;
|
|
INSERT INTO test_wl5522.t1 VALUES (1);
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,ib_import_before_commit_crash";
|
|
SELECT * FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash";
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
# Restart and reconnect to the server
|
|
DROP TABLE test_wl5522.t1;
|
|
SET SESSION innodb_strict_mode=1;
|
|
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
restore: t1 .ibd and .cfg files
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
CHECK TABLE test_wl5522.t1;
|
|
Table Op Msg_type Msg_text
|
|
test_wl5522.t1 check status OK
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
COUNT(*)
|
|
4
|
|
INSERT INTO test_wl5522.t1 VALUES(400), (500), (600);
|
|
SELECT * FROM test_wl5522.t1;
|
|
c1
|
|
1
|
|
2
|
|
3
|
|
4
|
|
400
|
|
500
|
|
600
|
|
DROP TABLE test_wl5522.t1;
|
|
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET @saved_debug_dbug = @@SESSION.debug_dbug;
|
|
SET SESSION debug_dbug="+d,ib_import_internal_error";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Internal error: While updating the <space, root page number> of index GEN_CLUST_INDEX - Generic error
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
restore: t1 .ibd and .cfg files
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
DROP TABLE test_wl5522.t1;
|
|
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Too many concurrent transactions
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Got error 44 't1.ibd
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Index for table 't1' is corrupt; try to repair it
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Index for table 't1' is corrupt; try to repair it
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,ib_import_cluster_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Index for table 't1' is corrupt; try to repair it
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Index for table 't1' is corrupt; try to repair it
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
restore: t1 .ibd and .cfg files
|
|
DROP TABLE test_wl5522.t1;
|
|
CREATE TABLE test_wl5522.t1 (
|
|
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
c2 BIGINT,
|
|
c3 VARCHAR(2048),
|
|
c4 VARCHAR(2048),
|
|
INDEX idx1(c2),
|
|
INDEX idx2(c3(512)),
|
|
INDEX idx3(c4(512))) Engine=InnoDB
|
|
ROW_FORMAT=COMPRESSED;
|
|
connect purge_control,localhost,root;
|
|
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
|
connection default;
|
|
SET GLOBAL innodb_monitor_reset = ibuf_merges;
|
|
SET GLOBAL innodb_monitor_reset = ibuf_merges_insert;
|
|
INSERT INTO test_wl5522.t1(c2, c3, c4) VALUES
|
|
(1, REPEAT('a', 2048), REPEAT('a', 2048)),
|
|
(2, REPEAT('b', 2048), REPEAT('b', 2048)),
|
|
(3, REPEAT('c', 2048), REPEAT('c', 2048)),
|
|
(4, REPEAT('d', 2048), REPEAT('d', 2048));
|
|
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1;
|
|
DELETE FROM test_wl5522.t1 WHERE c2 = 1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c2 = c2 + c1;
|
|
UPDATE test_wl5522.t1 SET c3 = REPEAT("c2", 1024);
|
|
UPDATE test_wl5522.t1 SET c4 = REPEAT("c4", 1024);
|
|
SHOW CREATE TABLE test_wl5522.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`c2` bigint(20) DEFAULT NULL,
|
|
`c3` varchar(2048) DEFAULT NULL,
|
|
`c4` varchar(2048) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`),
|
|
KEY `idx1` (`c2`),
|
|
KEY `idx2` (`c3`(512)),
|
|
KEY `idx3` (`c4`(512))
|
|
) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
|
|
SELECT c1, c2 FROM test_wl5522.t1;
|
|
c1 c2
|
|
2 32
|
|
3 48
|
|
4 64
|
|
6 92
|
|
7 108
|
|
8 124
|
|
13 197
|
|
14 213
|
|
15 229
|
|
17 257
|
|
18 273
|
|
19 289
|
|
28 422
|
|
29 438
|
|
30 454
|
|
32 482
|
|
33 498
|
|
34 514
|
|
36 542
|
|
37 558
|
|
38 574
|
|
40 602
|
|
41 618
|
|
42 634
|
|
59 887
|
|
60 903
|
|
61 919
|
|
63 947
|
|
64 963
|
|
65 979
|
|
67 1007
|
|
68 1023
|
|
69 1039
|
|
71 1067
|
|
72 1083
|
|
73 1099
|
|
75 1127
|
|
76 1143
|
|
77 1159
|
|
79 1187
|
|
80 1203
|
|
81 1219
|
|
83 1247
|
|
84 1263
|
|
85 1279
|
|
87 1307
|
|
88 1323
|
|
89 1339
|
|
122 1832
|
|
123 1848
|
|
124 1864
|
|
126 1892
|
|
127 1908
|
|
128 1924
|
|
130 1952
|
|
131 1968
|
|
132 1984
|
|
134 2012
|
|
135 2028
|
|
136 2044
|
|
138 2072
|
|
139 2088
|
|
140 2104
|
|
142 2132
|
|
143 2148
|
|
144 2164
|
|
146 2192
|
|
147 2208
|
|
148 2224
|
|
150 2252
|
|
151 2268
|
|
152 2284
|
|
154 2312
|
|
155 2328
|
|
156 2344
|
|
158 2372
|
|
159 2388
|
|
160 2404
|
|
162 2432
|
|
163 2448
|
|
164 2464
|
|
166 2492
|
|
167 2508
|
|
168 2524
|
|
170 2552
|
|
171 2568
|
|
172 2584
|
|
174 2612
|
|
175 2628
|
|
176 2644
|
|
178 2672
|
|
179 2688
|
|
180 2704
|
|
182 2732
|
|
183 2748
|
|
184 2764
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
COUNT(*)
|
|
96
|
|
SELECT SUM(c2) FROM test_wl5522.t1;
|
|
SUM(c2)
|
|
145278
|
|
SELECT name
|
|
FROM information_schema.innodb_metrics
|
|
WHERE name = 'ibuf_merges_insert' AND count = 0;
|
|
name
|
|
ibuf_merges_insert
|
|
FLUSH TABLES test_wl5522.t1 FOR EXPORT;
|
|
backup: t1
|
|
UNLOCK TABLES;
|
|
SELECT name
|
|
FROM information_schema.innodb_metrics
|
|
WHERE name = 'ibuf_merges' AND count > 0;
|
|
name
|
|
SELECT name
|
|
FROM information_schema.innodb_metrics
|
|
WHERE name = 'ibuf_merges_inserts' AND count > 0;
|
|
name
|
|
connection purge_control;
|
|
COMMIT;
|
|
disconnect purge_control;
|
|
connection default;
|
|
DROP TABLE test_wl5522.t1;
|
|
CREATE TABLE test_wl5522.t1 (
|
|
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
c2 BIGINT,
|
|
c3 VARCHAR(2048),
|
|
c4 VARCHAR(2048),
|
|
INDEX idx1(c2),
|
|
INDEX idx2(c3(512)),
|
|
INDEX idx3(c4(512))) Engine=InnoDB
|
|
ROW_FORMAT=COMPRESSED;
|
|
SELECT c1, c2 FROM test_wl5522.t1;
|
|
c1 c2
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
restore: t1 .ibd and .cfg files
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
CHECK TABLE test_wl5522.t1;
|
|
Table Op Msg_type Msg_text
|
|
test_wl5522.t1 check status OK
|
|
SELECT c1,c2 FROM test_wl5522.t1;
|
|
c1 c2
|
|
2 32
|
|
3 48
|
|
4 64
|
|
6 92
|
|
7 108
|
|
8 124
|
|
13 197
|
|
14 213
|
|
15 229
|
|
17 257
|
|
18 273
|
|
19 289
|
|
28 422
|
|
29 438
|
|
30 454
|
|
32 482
|
|
33 498
|
|
34 514
|
|
36 542
|
|
37 558
|
|
38 574
|
|
40 602
|
|
41 618
|
|
42 634
|
|
59 887
|
|
60 903
|
|
61 919
|
|
63 947
|
|
64 963
|
|
65 979
|
|
67 1007
|
|
68 1023
|
|
69 1039
|
|
71 1067
|
|
72 1083
|
|
73 1099
|
|
75 1127
|
|
76 1143
|
|
77 1159
|
|
79 1187
|
|
80 1203
|
|
81 1219
|
|
83 1247
|
|
84 1263
|
|
85 1279
|
|
87 1307
|
|
88 1323
|
|
89 1339
|
|
122 1832
|
|
123 1848
|
|
124 1864
|
|
126 1892
|
|
127 1908
|
|
128 1924
|
|
130 1952
|
|
131 1968
|
|
132 1984
|
|
134 2012
|
|
135 2028
|
|
136 2044
|
|
138 2072
|
|
139 2088
|
|
140 2104
|
|
142 2132
|
|
143 2148
|
|
144 2164
|
|
146 2192
|
|
147 2208
|
|
148 2224
|
|
150 2252
|
|
151 2268
|
|
152 2284
|
|
154 2312
|
|
155 2328
|
|
156 2344
|
|
158 2372
|
|
159 2388
|
|
160 2404
|
|
162 2432
|
|
163 2448
|
|
164 2464
|
|
166 2492
|
|
167 2508
|
|
168 2524
|
|
170 2552
|
|
171 2568
|
|
172 2584
|
|
174 2612
|
|
175 2628
|
|
176 2644
|
|
178 2672
|
|
179 2688
|
|
180 2704
|
|
182 2732
|
|
183 2748
|
|
184 2764
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
COUNT(*)
|
|
96
|
|
SELECT SUM(c2) FROM test_wl5522.t1;
|
|
SUM(c2)
|
|
145278
|
|
SHOW CREATE TABLE test_wl5522.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`c2` bigint(20) DEFAULT NULL,
|
|
`c3` varchar(2048) DEFAULT NULL,
|
|
`c4` varchar(2048) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`),
|
|
KEY `idx1` (`c2`),
|
|
KEY `idx2` (`c3`(512)),
|
|
KEY `idx3` (`c4`(512))
|
|
) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
|
|
DROP TABLE test_wl5522.t1;
|
|
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
|
INSERT IGNORE INTO test_wl5522.t1 VALUES
|
|
(100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200));
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'c2' at row 1
|
|
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
|
|
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
COUNT(*)
|
|
256
|
|
FLUSH TABLES test_wl5522.t1 FOR EXPORT;
|
|
backup: t1
|
|
UNLOCK TABLES;
|
|
DROP TABLE test_wl5522.t1;
|
|
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
DROP TABLE test_wl5522.t1;
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
DROP TABLE test_wl5522.t1;
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Index corrupt: Externally stored column(5) has a reference length of 19 in the cluster index GEN_CLUST_INDEX
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
DROP TABLE test_wl5522.t1;
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Index for table 't1' is corrupt; try to repair it
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
DROP TABLE test_wl5522.t1;
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
SET SESSION debug_dbug="+d,ib_import_create_index_failure_1";
|
|
ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1);
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
DROP TABLE test_wl5522.t1;
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,fil_space_create_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Got error 11 't1.ibd
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
DROP TABLE test_wl5522.t1;
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Got error 39 't1.ibd
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
DROP TABLE test_wl5522.t1;
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb
|
|
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
|
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE;
|
|
SELECT COUNT(*) FROM test_wl5522.t1;
|
|
ERROR HY000: Tablespace has been discarded for table `t1`
|
|
restore: t1 .ibd and .cfg files
|
|
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure";
|
|
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE;
|
|
ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption
|
|
SET SESSION debug_dbug=@saved_debug_dbug;
|
|
DROP TABLE test_wl5522.t1;
|
|
unlink: t1.ibd
|
|
unlink: t1.cfg
|
|
DROP DATABASE test_wl5522;
|
|
set global innodb_monitor_disable = all;
|
|
set global innodb_monitor_reset_all = all;
|
|
set global innodb_monitor_enable = default;
|
|
set global innodb_monitor_disable = default;
|
|
set global innodb_monitor_reset = default;
|
|
set global innodb_monitor_reset_all = default;
|