RESET CHANGED_PAGE_BITMAPS;
CREATE TABLE t1 (x INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1),(2),(3),(4),(5);
FLUSH CHANGED_PAGE_BITMAPS;
# restart
Before RESET:
ib_modified_log_1
ib_modified_log_2
RESET CHANGED_PAGE_BITMAPS;
After RESET:
ib_modified_log_1
RESET CHANGED_PAGE_BITMAPS;
After 2nd RESET
ib_modified_log_1
INSERT INTO t1 VALUES (6);
# restart
After RESETs and restart:
ib_modified_log_1
ib_modified_log_2
PURGE CHANGED_PAGE_BITMAPS BEFORE 1;
After PURGE ... BEFORE 1:
ib_modified_log_1
ib_modified_log_2
PURGE CHANGED_PAGE_BITMAPS BEFORE 100000000;
PURGE CHANGED_PAGE_BITMAPS BEFORE 100000000;
INSERT INTO t1 VALUES (1),(2),(3),(4),(5);
# restart
After PURGE ... BEFORE 100000000 and restart:
ib_modified_log_3
ib_modified_log_4
ib_modified_log_5
PURGE CHANGED_PAGE_BITMAPS BEFORE 5+5;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+5' at line 1
PURGE CHANGED_PAGE_BITMAPS BEFORE -12;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-12' at line 1
PURGE CHANGED_PAGE_BITMAPS BEFORE 1.2e-2;
ERROR 42000: Only integers allowed as number here near '1.2e-2' at line 1
PURGE CHANGED_PAGE_BITMAPS BEFORE t1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't1' at line 1
PURGE CHANGED_PAGE_BITMAPS BEFORE "t1";
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"t1"' at line 1
PURGE CHANGED_PAGE_BITMAPS BEFORE TRUE;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRUE' at line 1
PURGE CHANGED_PAGE_BITMAPS BEFORE NULL;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1
CREATE USER mysqltest_1@localhost;
GRANT ALL ON *.* TO mysqltest_1@localhost;
REVOKE SUPER ON *.* FROM mysqltest_1@localhost;
FLUSH CHANGED_PAGE_BITMAPS;
ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
RESET CHANGED_PAGE_BITMAPS;
ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
PURGE CHANGED_PAGE_BITMAPS BEFORE 100000000;
ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
DROP USER mysqltest_1@localhost;
# restart:--innodb_track_changed_pages=FALSE
SELECT @@GLOBAL.innodb_track_changed_pages;
@@GLOBAL.innodb_track_changed_pages
0
FLUSH CHANGED_PAGE_BITMAPS;
Before the PURGE with tracking disabled
ib_modified_log_3
ib_modified_log_4
ib_modified_log_5
PURGE CHANGED_PAGE_BITMAPS BEFORE 1;
After the PURGE that deletes nothing:
ib_modified_log_3
ib_modified_log_4
ib_modified_log_5
PURGE CHANGED_PAGE_BITMAPS BEFORE 100000000;
After the PURGE that deletes everything but the last file:
ib_modified_log_5
PURGE CHANGED_PAGE_BITMAPS BEFORE 100000000;
After the repeated PURGE:
ib_modified_log_5
call mtr.add_suppression("last tracked LSN");
# restart
INSERT INTO t1 VALUES (1),(2),(3),(4),(5);
# restart
# restart:--innodb_track_changed_pages=FALSE
Before the RESET while tracking disabled:
ib_modified_log_5
ib_modified_log_6
ib_modified_log_7
RESET CHANGED_PAGE_BITMAPS;
After the RESET with tracking disabled:
Created dummy bitmap files
ib_modified_log_1_0.xdb
ib_modified_log_2_100.xdb
ib_modified_log_3_200.xdb
ib_modified_log_4_300.xdb
PURGE CHANGED_PAGE_BITMAPS BEFORE 99;
ib_modified_log_1_0.xdb
ib_modified_log_2_100.xdb
ib_modified_log_3_200.xdb
ib_modified_log_4_300.xdb
PURGE CHANGED_PAGE_BITMAPS BEFORE 200;
ib_modified_log_3_200.xdb
ib_modified_log_4_300.xdb
PURGE CHANGED_PAGE_BITMAPS BEFORE 500;
ib_modified_log_4_300.xdb
DROP TABLE t1;
CREATE TABLE CHANGED_PAGE_BITMAPS (a INT);
DROP TABLE CHANGED_PAGE_BITMAPS;
