mirror of
https://github.com/MariaDB/server.git
synced 2025-02-12 00:15:35 +01:00
![Jan Lindström](/assets/img/avatar_default.png)
Before MDEV-15158, wsrep xid information was stored in only one place: in the TRX_SYS page. Starting with 10.3, it is not stored there but in the rollback segment header pages, and the latest one is what matters. MDEV-19229 allows the undo tablespaces to be rebuilt when innodb_undo_tablespaces is changed on startup. Previously it was not possible to change that parameter. These changes caused the fact that rollback segment header pages could contain several wsrep xid's stored and when undo tablespaces were rebuilt there was a effort to restore wsrep xid back to rollback segment header page but because there was several of them the latest wsrep xid was overwritten with older one. trx_rseg_read_wsrep_checkpoint trx_rseg_init_wsrep_xid Return true if read xid is wsrep xid, false if not trx_rseg_mem_restore Try to read wsrep xid and if it is found copy it to trx_sys.recovered_wsrep_xid if read xid has larger seqno.
540 lines
17 KiB
Text
540 lines
17 KiB
Text
connection node_2;
|
|
connection node_1;
|
|
connection node_1;
|
|
connection node_2;
|
|
connection node_1;
|
|
select @@innodb_undo_tablespaces;
|
|
@@innodb_undo_tablespaces
|
|
0
|
|
connection node_2;
|
|
select @@innodb_undo_tablespaces;
|
|
@@innodb_undo_tablespaces
|
|
3
|
|
Performing State Transfer on a server that has been shut down cleanly and restarted
|
|
connection node_1;
|
|
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (1,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (2,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (3,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (4,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (5,'node1_committed_before');
|
|
COMMIT;
|
|
connection node_2;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (6,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (7,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (8,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (9,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (10,'node2_committed_before');
|
|
COMMIT;
|
|
Shutting down server ...
|
|
connection node_1;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (11,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (12,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (13,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (14,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (15,'node1_committed_during');
|
|
COMMIT;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
|
|
connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
|
|
connection node_2;
|
|
Starting server ...
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (26,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (27,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (28,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (29,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (30,'node2_committed_after');
|
|
COMMIT;
|
|
connection node_1;
|
|
INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
|
|
COMMIT;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (36,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (37,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (38,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (39,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (40,'node1_committed_after');
|
|
COMMIT;
|
|
connection node_1a_galera_st_shutdown_slave;
|
|
INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
|
|
ROLLBACK;
|
|
SET AUTOCOMMIT=ON;
|
|
SET SESSION wsrep_sync_wait=15;
|
|
SELECT COUNT(*) AS EXPECT_15 FROM t1;
|
|
EXPECT_15
|
|
35
|
|
SELECT * from t1;
|
|
id f1
|
|
1 node1_committed_before
|
|
2 node1_committed_before
|
|
3 node1_committed_before
|
|
4 node1_committed_before
|
|
5 node1_committed_before
|
|
6 node2_committed_before
|
|
7 node2_committed_before
|
|
8 node2_committed_before
|
|
9 node2_committed_before
|
|
10 node2_committed_before
|
|
11 node1_committed_during
|
|
12 node1_committed_during
|
|
13 node1_committed_during
|
|
14 node1_committed_during
|
|
15 node1_committed_during
|
|
16 node1_to_be_committed_after
|
|
17 node1_to_be_committed_after
|
|
18 node1_to_be_committed_after
|
|
19 node1_to_be_committed_after
|
|
20 node1_to_be_committed_after
|
|
26 node2_committed_after
|
|
27 node2_committed_after
|
|
28 node2_committed_after
|
|
29 node2_committed_after
|
|
30 node2_committed_after
|
|
31 node1_to_be_committed_after
|
|
32 node1_to_be_committed_after
|
|
33 node1_to_be_committed_after
|
|
34 node1_to_be_committed_after
|
|
35 node1_to_be_committed_after
|
|
36 node1_committed_after
|
|
37 node1_committed_after
|
|
38 node1_committed_after
|
|
39 node1_committed_after
|
|
40 node1_committed_after
|
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
|
COUNT(*) = 0
|
|
1
|
|
COMMIT;
|
|
connection node_1;
|
|
SET AUTOCOMMIT=ON;
|
|
SET SESSION wsrep_sync_wait=15;
|
|
SELECT COUNT(*) AS EXPECT_15 FROM t1;
|
|
EXPECT_15
|
|
35
|
|
SELECT * from t1;
|
|
id f1
|
|
1 node1_committed_before
|
|
2 node1_committed_before
|
|
3 node1_committed_before
|
|
4 node1_committed_before
|
|
5 node1_committed_before
|
|
6 node2_committed_before
|
|
7 node2_committed_before
|
|
8 node2_committed_before
|
|
9 node2_committed_before
|
|
10 node2_committed_before
|
|
11 node1_committed_during
|
|
12 node1_committed_during
|
|
13 node1_committed_during
|
|
14 node1_committed_during
|
|
15 node1_committed_during
|
|
16 node1_to_be_committed_after
|
|
17 node1_to_be_committed_after
|
|
18 node1_to_be_committed_after
|
|
19 node1_to_be_committed_after
|
|
20 node1_to_be_committed_after
|
|
26 node2_committed_after
|
|
27 node2_committed_after
|
|
28 node2_committed_after
|
|
29 node2_committed_after
|
|
30 node2_committed_after
|
|
31 node1_to_be_committed_after
|
|
32 node1_to_be_committed_after
|
|
33 node1_to_be_committed_after
|
|
34 node1_to_be_committed_after
|
|
35 node1_to_be_committed_after
|
|
36 node1_committed_after
|
|
37 node1_committed_after
|
|
38 node1_committed_after
|
|
39 node1_committed_after
|
|
40 node1_committed_after
|
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
|
COUNT(*) = 0
|
|
1
|
|
DROP TABLE t1;
|
|
COMMIT;
|
|
Performing State Transfer on a server that starts from a clean var directory
|
|
This is accomplished by shutting down node #2 and removing its var directory before restarting it
|
|
connection node_1;
|
|
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (1,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (2,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (3,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (4,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (5,'node1_committed_before');
|
|
COMMIT;
|
|
connection node_2;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (6,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (7,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (8,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (9,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (10,'node2_committed_before');
|
|
COMMIT;
|
|
Shutting down server ...
|
|
connection node_1;
|
|
Cleaning var directory ...
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (11,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (12,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (13,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (14,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (15,'node1_committed_during');
|
|
COMMIT;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
|
|
connect node_1a_galera_st_clean_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
|
|
connection node_2;
|
|
Starting server ...
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (26,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (27,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (28,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (29,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (30,'node2_committed_after');
|
|
COMMIT;
|
|
connection node_1;
|
|
INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
|
|
COMMIT;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (36,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (37,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (38,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (39,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (40,'node1_committed_after');
|
|
COMMIT;
|
|
connection node_1a_galera_st_clean_slave;
|
|
INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
|
|
ROLLBACK;
|
|
SET AUTOCOMMIT=ON;
|
|
SET SESSION wsrep_sync_wait=15;
|
|
SELECT COUNT(*) AS EXPECT_35 FROM t1;
|
|
EXPECT_35
|
|
35
|
|
SELECT * from t1;
|
|
id f1
|
|
1 node1_committed_before
|
|
2 node1_committed_before
|
|
3 node1_committed_before
|
|
4 node1_committed_before
|
|
5 node1_committed_before
|
|
6 node2_committed_before
|
|
7 node2_committed_before
|
|
8 node2_committed_before
|
|
9 node2_committed_before
|
|
10 node2_committed_before
|
|
11 node1_committed_during
|
|
12 node1_committed_during
|
|
13 node1_committed_during
|
|
14 node1_committed_during
|
|
15 node1_committed_during
|
|
16 node1_to_be_committed_after
|
|
17 node1_to_be_committed_after
|
|
18 node1_to_be_committed_after
|
|
19 node1_to_be_committed_after
|
|
20 node1_to_be_committed_after
|
|
26 node2_committed_after
|
|
27 node2_committed_after
|
|
28 node2_committed_after
|
|
29 node2_committed_after
|
|
30 node2_committed_after
|
|
31 node1_to_be_committed_after
|
|
32 node1_to_be_committed_after
|
|
33 node1_to_be_committed_after
|
|
34 node1_to_be_committed_after
|
|
35 node1_to_be_committed_after
|
|
36 node1_committed_after
|
|
37 node1_committed_after
|
|
38 node1_committed_after
|
|
39 node1_committed_after
|
|
40 node1_committed_after
|
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
|
COUNT(*) = 0
|
|
1
|
|
COMMIT;
|
|
connection node_1;
|
|
SET AUTOCOMMIT=ON;
|
|
SET SESSION wsrep_sync_wait=15;
|
|
SELECT COUNT(*) AS EXPECT_35 FROM t1;
|
|
EXPECT_35
|
|
35
|
|
SELECT * from t1;
|
|
id f1
|
|
1 node1_committed_before
|
|
2 node1_committed_before
|
|
3 node1_committed_before
|
|
4 node1_committed_before
|
|
5 node1_committed_before
|
|
6 node2_committed_before
|
|
7 node2_committed_before
|
|
8 node2_committed_before
|
|
9 node2_committed_before
|
|
10 node2_committed_before
|
|
11 node1_committed_during
|
|
12 node1_committed_during
|
|
13 node1_committed_during
|
|
14 node1_committed_during
|
|
15 node1_committed_during
|
|
16 node1_to_be_committed_after
|
|
17 node1_to_be_committed_after
|
|
18 node1_to_be_committed_after
|
|
19 node1_to_be_committed_after
|
|
20 node1_to_be_committed_after
|
|
26 node2_committed_after
|
|
27 node2_committed_after
|
|
28 node2_committed_after
|
|
29 node2_committed_after
|
|
30 node2_committed_after
|
|
31 node1_to_be_committed_after
|
|
32 node1_to_be_committed_after
|
|
33 node1_to_be_committed_after
|
|
34 node1_to_be_committed_after
|
|
35 node1_to_be_committed_after
|
|
36 node1_committed_after
|
|
37 node1_committed_after
|
|
38 node1_committed_after
|
|
39 node1_committed_after
|
|
40 node1_committed_after
|
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
|
COUNT(*) = 0
|
|
1
|
|
DROP TABLE t1;
|
|
COMMIT;
|
|
Performing State Transfer on a server that has been killed and restarted
|
|
connection node_1;
|
|
CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (1,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (2,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (3,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (4,'node1_committed_before');
|
|
INSERT INTO t1 VALUES (5,'node1_committed_before');
|
|
COMMIT;
|
|
connection node_2;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (6,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (7,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (8,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (9,'node2_committed_before');
|
|
INSERT INTO t1 VALUES (10,'node2_committed_before');
|
|
COMMIT;
|
|
Killing server ...
|
|
connection node_1;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (11,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (12,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (13,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (14,'node1_committed_during');
|
|
INSERT INTO t1 VALUES (15,'node1_committed_during');
|
|
COMMIT;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
|
|
connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
|
|
connection node_2;
|
|
Performing --wsrep-recover ...
|
|
Starting server ...
|
|
Using --wsrep-start-position when starting mysqld ...
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (26,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (27,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (28,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (29,'node2_committed_after');
|
|
INSERT INTO t1 VALUES (30,'node2_committed_after');
|
|
COMMIT;
|
|
connection node_1;
|
|
INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
|
|
INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
|
|
COMMIT;
|
|
SET AUTOCOMMIT=OFF;
|
|
START TRANSACTION;
|
|
INSERT INTO t1 VALUES (36,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (37,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (38,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (39,'node1_committed_after');
|
|
INSERT INTO t1 VALUES (40,'node1_committed_after');
|
|
COMMIT;
|
|
connection node_1a_galera_st_kill_slave;
|
|
INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
|
|
INSERT INTO t1 VALUES (46,'node1_to_be_rollbacked_after');
|
|
ROLLBACK;
|
|
SET AUTOCOMMIT=ON;
|
|
SET SESSION wsrep_sync_wait=15;
|
|
SELECT COUNT(*) AS EXPECT_35 FROM t1;
|
|
EXPECT_35
|
|
35
|
|
SELECT * FROM t1;
|
|
id f1
|
|
1 node1_committed_before
|
|
2 node1_committed_before
|
|
3 node1_committed_before
|
|
4 node1_committed_before
|
|
5 node1_committed_before
|
|
6 node2_committed_before
|
|
7 node2_committed_before
|
|
8 node2_committed_before
|
|
9 node2_committed_before
|
|
10 node2_committed_before
|
|
11 node1_committed_during
|
|
12 node1_committed_during
|
|
13 node1_committed_during
|
|
14 node1_committed_during
|
|
15 node1_committed_during
|
|
16 node1_to_be_committed_after
|
|
17 node1_to_be_committed_after
|
|
18 node1_to_be_committed_after
|
|
19 node1_to_be_committed_after
|
|
20 node1_to_be_committed_after
|
|
26 node2_committed_after
|
|
27 node2_committed_after
|
|
28 node2_committed_after
|
|
29 node2_committed_after
|
|
30 node2_committed_after
|
|
31 node1_to_be_committed_after
|
|
32 node1_to_be_committed_after
|
|
33 node1_to_be_committed_after
|
|
34 node1_to_be_committed_after
|
|
35 node1_to_be_committed_after
|
|
36 node1_committed_after
|
|
37 node1_committed_after
|
|
38 node1_committed_after
|
|
39 node1_committed_after
|
|
40 node1_committed_after
|
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
|
COUNT(*) = 0
|
|
1
|
|
COMMIT;
|
|
connection node_1;
|
|
SET AUTOCOMMIT=ON;
|
|
SET SESSION wsrep_sync_wait=15;
|
|
SELECT COUNT(*) AS EXPECT_35 FROM t1;
|
|
EXPECT_35
|
|
35
|
|
SELECT * FROM t1;
|
|
id f1
|
|
1 node1_committed_before
|
|
2 node1_committed_before
|
|
3 node1_committed_before
|
|
4 node1_committed_before
|
|
5 node1_committed_before
|
|
6 node2_committed_before
|
|
7 node2_committed_before
|
|
8 node2_committed_before
|
|
9 node2_committed_before
|
|
10 node2_committed_before
|
|
11 node1_committed_during
|
|
12 node1_committed_during
|
|
13 node1_committed_during
|
|
14 node1_committed_during
|
|
15 node1_committed_during
|
|
16 node1_to_be_committed_after
|
|
17 node1_to_be_committed_after
|
|
18 node1_to_be_committed_after
|
|
19 node1_to_be_committed_after
|
|
20 node1_to_be_committed_after
|
|
26 node2_committed_after
|
|
27 node2_committed_after
|
|
28 node2_committed_after
|
|
29 node2_committed_after
|
|
30 node2_committed_after
|
|
31 node1_to_be_committed_after
|
|
32 node1_to_be_committed_after
|
|
33 node1_to_be_committed_after
|
|
34 node1_to_be_committed_after
|
|
35 node1_to_be_committed_after
|
|
36 node1_committed_after
|
|
37 node1_committed_after
|
|
38 node1_committed_after
|
|
39 node1_committed_after
|
|
40 node1_committed_after
|
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
|
COUNT(*) = 0
|
|
1
|
|
DROP TABLE t1;
|
|
COMMIT;
|
|
connection node_2;
|
|
Shutting down server ...
|
|
connection node_1;
|
|
connection node_2;
|
|
Starting server ...
|
|
Using --wsrep-start-position when starting mysqld ...
|
|
connection node_1;
|
|
connection node_2;
|
|
select @@innodb_undo_tablespaces;
|
|
@@innodb_undo_tablespaces
|
|
3
|
|
call mtr.add_suppression("InnoDB: Cannot change innodb_undo_tablespaces=3 because previous shutdown was not with innodb_fast_shutdown=0");
|
|
disconnect node_2;
|
|
disconnect node_1;
|