File: gr_primary_mode_group_operations_04.result

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (61 lines) | stat: -rw-r--r-- 2,550 bytes parent folder | download
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
include/group_replication.inc
Warnings:
Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
Note	####	Storing MySQL user name or password information in the connection metadata repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START REPLICA; see the 'START REPLICA Syntax' in the MySQL Manual for more information.
[connection server1]

# 1. Create table to use on test
CREATE TABLE test.t1 (a INT PRIMARY KEY);
include/rpl_sync.inc
[connection server2]

# 2. Pause transactions on server2 to monitor
#    group_replication_enforce_update_everywhere_checks
# Adding debug point 'group_replication_wait_on_observer_trans' to @@GLOBAL.debug

# 3. Push data to server1.
#    It won't be committed on server2 due to paused transactions
[connection server1]
INSERT INTO t1 VALUES (1);

# 4. Execute action switch to single primary mode,
#    with server2 as primary member
[connection server1]
SELECT group_replication_switch_to_single_primary_mode("MEMBER2_UUID");

# 5. Confirm stages on server2
[connection server2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_wait_on_observer_trans_waiting";
include/assert.inc [stage/group_rpl/Single-primary Switch: executing Primary election]
include/assert.inc [stage/group_rpl/Primary Election: stabilizing transactions from former primaries]

# 6. Since server2 has paused transactions, the values aren't committed, so
#    group_replication_enforce_update_everywhere_checks is enabled
include/assert.inc [group_replication_enforce_update_everywhere_checks is ON]

# 7. Resume transactions on server2
# Removing debug point 'group_replication_wait_on_observer_trans' from @@GLOBAL.debug
SET DEBUG_SYNC= 'now SIGNAL signal.group_replication_wait_on_observer_trans_continue';

# 8. On primary member the super_read_only shall be disable
include/assert.inc [The super_read_only mode should be 0 here.]

# 9. Confirm server2 is the group primary member.
[connection server1]
group_replication_switch_to_single_primary_mode("MEMBER2_UUID")
Mode switched to single-primary successfully.
[connection server2]

# 10. server2 after update all queued transactions will disable
#    group_replication_enforce_update_everywhere_checks
include/gr_assert_primary_member.inc

# 11. The secondary member shall have the super_read_only enable
[connection server1]
include/gr_assert_secondary_member.inc

# 12. Cleanup
[connection server2]
SET DEBUG_SYNC= 'RESET';
DROP TABLE t1;
include/group_replication_end.inc