Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 13.59.196.41
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
mysql /
mysql-test /
suite /
ndb_rpl /
t /
[ HOME SHELL ]
Name
Size
Permission
Action
disabled.def
919
B
-rw-r--r--
ndb_apply_status.frm
8.51
KB
-rw-r--r--
ndb_conflict_info.inc
3.79
KB
-rw-r--r--
ndb_conflict_info_epoch2.inc
3.2
KB
-rw-r--r--
ndb_conflict_info_epoch2_init....
1.33
KB
-rw-r--r--
ndb_conflict_info_init.inc
1.23
KB
-rw-r--r--
ndb_connect_to_primary.inc
160
B
-rw-r--r--
ndb_connect_to_secondary.inc
161
B
-rw-r--r--
ndb_dist_priv_check.inc
1.13
KB
-rw-r--r--
ndb_dist_priv_common.inc
6.89
KB
-rw-r--r--
ndb_dist_priv_default-master.o...
54
B
-rw-r--r--
ndb_dist_priv_default.test
975
B
-rw-r--r--
ndb_dist_priv_ndb-master.opt
54
B
-rw-r--r--
ndb_dist_priv_ndb.test
1.84
KB
-rw-r--r--
ndb_rpl_2innodb-master.opt
32
B
-rw-r--r--
ndb_rpl_2innodb-slave.opt
47
B
-rw-r--r--
ndb_rpl_2innodb.test
1.63
KB
-rw-r--r--
ndb_rpl_2multi_basic.inc
3.75
KB
-rw-r--r--
ndb_rpl_2multi_eng.inc
10.33
KB
-rw-r--r--
ndb_rpl_2myisam-master.opt
25
B
-rw-r--r--
ndb_rpl_2myisam-slave.opt
47
B
-rw-r--r--
ndb_rpl_2myisam.test
1.8
KB
-rw-r--r--
ndb_rpl_2ndb-slave.opt
58
B
-rw-r--r--
ndb_rpl_2ndb.test
858
B
-rw-r--r--
ndb_rpl_2other-slave.opt
45
B
-rw-r--r--
ndb_rpl_2other.test
2.18
KB
-rw-r--r--
ndb_rpl_add_column.test
3.81
KB
-rw-r--r--
ndb_rpl_apply_status-master.op...
28
B
-rw-r--r--
ndb_rpl_apply_status.test
1.5
KB
-rw-r--r--
ndb_rpl_auto_inc.test
4.18
KB
-rw-r--r--
ndb_rpl_bank.test
6.68
KB
-rw-r--r--
ndb_rpl_basic.test
11.65
KB
-rw-r--r--
ndb_rpl_batch.test
4.07
KB
-rw-r--r--
ndb_rpl_batch_handling.test
2.32
KB
-rw-r--r--
ndb_rpl_binlog_format_errors.t...
3.32
KB
-rw-r--r--
ndb_rpl_binlog_row_image_minim...
81
B
-rw-r--r--
ndb_rpl_binlog_row_image_minim...
293
B
-rw-r--r--
ndb_rpl_bitfield.test
8.11
KB
-rw-r--r--
ndb_rpl_blob.test
4.12
KB
-rw-r--r--
ndb_rpl_break_3_chain.cnf
1.59
KB
-rw-r--r--
ndb_rpl_break_3_chain.test
3.67
KB
-rw-r--r--
ndb_rpl_bug22045.test
2.4
KB
-rw-r--r--
ndb_rpl_bug_13440282.test
1.37
KB
-rw-r--r--
ndb_rpl_check_for_mixed.test
1014
B
-rw-r--r--
ndb_rpl_checksum.test
7.74
KB
-rw-r--r--
ndb_rpl_circular.test
4.42
KB
-rw-r--r--
ndb_rpl_circular_2ch.cnf
948
B
-rw-r--r--
ndb_rpl_circular_2ch.test
4.41
KB
-rw-r--r--
ndb_rpl_circular_2ch_rep_statu...
183
B
-rw-r--r--
ndb_rpl_circular_2ch_rep_statu...
11.9
KB
-rw-r--r--
ndb_rpl_circular_simplex.test
2.43
KB
-rw-r--r--
ndb_rpl_conflict_1.inc
5.15
KB
-rw-r--r--
ndb_rpl_conflict_basic.test
19.85
KB
-rw-r--r--
ndb_rpl_conflict_epoch.cnf
561
B
-rw-r--r--
ndb_rpl_conflict_epoch.inc
9.81
KB
-rw-r--r--
ndb_rpl_conflict_epoch.test
52
B
-rw-r--r--
ndb_rpl_conflict_epoch2.cnf
67
B
-rw-r--r--
ndb_rpl_conflict_epoch2.test
2.43
KB
-rw-r--r--
ndb_rpl_conflict_epoch2_extra....
37
B
-rw-r--r--
ndb_rpl_conflict_epoch2_extra....
31.45
KB
-rw-r--r--
ndb_rpl_conflict_epoch2_trans....
754
B
-rw-r--r--
ndb_rpl_conflict_epoch2_trans....
1.66
KB
-rw-r--r--
ndb_rpl_conflict_epoch_1.inc
18.75
KB
-rw-r--r--
ndb_rpl_conflict_epoch_ext.cnf
561
B
-rw-r--r--
ndb_rpl_conflict_epoch_ext.tes...
86
B
-rw-r--r--
ndb_rpl_conflict_epoch_extende...
868
B
-rw-r--r--
ndb_rpl_conflict_epoch_extende...
10.95
KB
-rw-r--r--
ndb_rpl_conflict_epoch_trans.c...
868
B
-rw-r--r--
ndb_rpl_conflict_epoch_trans.i...
27.77
KB
-rw-r--r--
ndb_rpl_conflict_epoch_trans.t...
58
B
-rw-r--r--
ndb_rpl_conflict_epoch_trans_e...
868
B
-rw-r--r--
ndb_rpl_conflict_epoch_trans_e...
92
B
-rw-r--r--
ndb_rpl_conflict_max-master.op...
28
B
-rw-r--r--
ndb_rpl_conflict_max.test
5.09
KB
-rw-r--r--
ndb_rpl_conflict_max_delete_wi...
28
B
-rw-r--r--
ndb_rpl_conflict_max_delete_wi...
4.92
KB
-rw-r--r--
ndb_rpl_conflict_old-master.op...
28
B
-rw-r--r--
ndb_rpl_conflict_old.test
5.11
KB
-rw-r--r--
ndb_rpl_conflict_read_tracking...
889
B
-rw-r--r--
ndb_rpl_conflict_read_tracking...
19.62
KB
-rw-r--r--
ndb_rpl_ctype_ucs2_def-master....
70
B
-rw-r--r--
ndb_rpl_ctype_ucs2_def.test
1.33
KB
-rw-r--r--
ndb_rpl_dd_advance.test
10.44
KB
-rw-r--r--
ndb_rpl_dd_basic.test
1.58
KB
-rw-r--r--
ndb_rpl_dd_partitions-master.o...
11
B
-rw-r--r--
ndb_rpl_dd_partitions-slave.op...
11
B
-rw-r--r--
ndb_rpl_dd_partitions.test
8.73
KB
-rw-r--r--
ndb_rpl_ddl_open_trans.test
360
B
-rw-r--r--
ndb_rpl_dist_priv.test
8.33
KB
-rw-r--r--
ndb_rpl_do_db-slave.opt
26
B
-rw-r--r--
ndb_rpl_do_db.test
1.73
KB
-rw-r--r--
ndb_rpl_do_table-slave.opt
29
B
-rw-r--r--
ndb_rpl_do_table.test
1.41
KB
-rw-r--r--
ndb_rpl_empty_epoch.test
1.12
KB
-rw-r--r--
ndb_rpl_gap_event-master.opt
24
B
-rw-r--r--
ndb_rpl_gap_event.test
2.26
KB
-rw-r--r--
ndb_rpl_get_binlog_events.inc
1.09
KB
-rw-r--r--
ndb_rpl_get_server_error_log.i...
553
B
-rw-r--r--
ndb_rpl_idempotent.test
5.72
KB
-rw-r--r--
ndb_rpl_ignore_db-master.opt
25
B
-rw-r--r--
ndb_rpl_ignore_db.test
1.27
KB
-rw-r--r--
ndb_rpl_init_rep_status.test
2.71
KB
-rw-r--r--
ndb_rpl_innodb2ndb-slave.opt
42
B
-rw-r--r--
ndb_rpl_innodb2ndb.test
714
B
-rw-r--r--
ndb_rpl_innodb_trans-slave.opt
25
B
-rw-r--r--
ndb_rpl_innodb_trans.test
1.54
KB
-rw-r--r--
ndb_rpl_last_conflict_epoch_va...
36
B
-rw-r--r--
ndb_rpl_last_conflict_epoch_va...
3.92
KB
-rw-r--r--
ndb_rpl_load.test
2.55
KB
-rw-r--r--
ndb_rpl_logging.test
3.96
KB
-rw-r--r--
ndb_rpl_mix_eng_trans.test
8.84
KB
-rw-r--r--
ndb_rpl_mix_innodb-master.opt
32
B
-rw-r--r--
ndb_rpl_mix_innodb.test
533
B
-rw-r--r--
ndb_rpl_mixed_tables-master.op...
13
B
-rw-r--r--
ndb_rpl_mixed_tables-slave.opt
61
B
-rw-r--r--
ndb_rpl_mixed_tables.test
8.35
KB
-rw-r--r--
ndb_rpl_multi.test
2.93
KB
-rw-r--r--
ndb_rpl_multi_binlog_update.cn...
1.83
KB
-rw-r--r--
ndb_rpl_multi_binlog_update.in...
6.78
KB
-rw-r--r--
ndb_rpl_multi_engine2.inc
2.56
KB
-rw-r--r--
ndb_rpl_multi_update2-slave.op...
42
B
-rw-r--r--
ndb_rpl_myisam2ndb-slave.opt
42
B
-rw-r--r--
ndb_rpl_myisam2ndb.test
890
B
-rw-r--r--
ndb_rpl_ndbapi-examples.test
996
B
-rw-r--r--
ndb_rpl_rep_error.test
14.2
KB
-rw-r--r--
ndb_rpl_rep_ignore-slave.opt
63
B
-rw-r--r--
ndb_rpl_rep_ignore.test
1.78
KB
-rw-r--r--
ndb_rpl_skip_gap_event-slave.o...
24
B
-rw-r--r--
ndb_rpl_skip_gap_event.test
2.39
KB
-rw-r--r--
ndb_rpl_slave_binlog_index.tes...
2.82
KB
-rw-r--r--
ndb_rpl_slave_conflict_role_va...
4.94
KB
-rw-r--r--
ndb_rpl_slave_lsu.cnf
57
B
-rw-r--r--
ndb_rpl_slave_lsu.test
5.87
KB
-rw-r--r--
ndb_rpl_slave_lsu_anyval.cnf
176
B
-rw-r--r--
ndb_rpl_slave_lsu_anyval.test
2.46
KB
-rw-r--r--
ndb_rpl_slave_replay.test
14.63
KB
-rw-r--r--
ndb_rpl_slave_restart.test
3.3
KB
-rw-r--r--
ndb_rpl_stm_innodb-master.opt
32
B
-rw-r--r--
ndb_rpl_stm_innodb.test
622
B
-rw-r--r--
ndb_rpl_sync.test
3.19
KB
-rw-r--r--
ndb_rpl_ui.test
2.29
KB
-rw-r--r--
ndb_rpl_ui2.test
957
B
-rw-r--r--
ndb_rpl_ui3.test
1.5
KB
-rw-r--r--
ndb_rpl_xxx_innodb.inc
6.25
KB
-rw-r--r--
ndb_slave_exec_info_init.inc
704
B
-rw-r--r--
ndb_sync_primary_to_secondary....
215
B
-rw-r--r--
ndb_sync_secondary_to_primary....
215
B
-rw-r--r--
ndb_trans_conflict_info.inc
1.71
KB
-rw-r--r--
ndb_trans_conflict_info_init.i...
1.5
KB
-rw-r--r--
ndb_trans_conflict_info_stable...
2.28
KB
-rw-r--r--
ndb_wait_for_zero_commit_ack_m...
569
B
-rw-r--r--
rpl_truncate_7ndb.test
1.78
KB
-rw-r--r--
rpl_truncate_7ndb_2.test
593
B
-rw-r--r--
select_ndb_apply_status.inc
505
B
-rw-r--r--
show_binlog_using_logname.inc
968
B
-rw-r--r--
show_mysqld_warnings.inc
780
B
-rw-r--r--
show_slave_max_replicated_epoc...
380
B
-rw-r--r--
wait_schema_logging.inc
2.33
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ndb_rpl_conflict_epoch_1.inc
# # Include file for testing ndb$epoch and ndb$epoch2 conflict functions # # if ($extended_exceptions_table) { call mtr.add_suppression("NDB Slave: exceptions table .* has suspicious definition .*"); } if (!$extended_exceptions_table) { create table `test`.`t1$EX` (server_id int unsigned, master_server_id int unsigned, master_epoch bigint unsigned, count int unsigned, a int not null, d int, primary key(server_id, master_server_id, master_epoch, count)) engine ndb; } if ($extended_exceptions_table) { create table `test`.`t1$EX` (ndb$server_id int unsigned, ndb$master_server_id int unsigned, ndb$master_epoch bigint unsigned, ndb$count int unsigned, a int not null, b$old varchar(255), b$new varchar(255), d int, ndb$op_type enum('write_row','update_row', 'delete_row') not null, ndb$cft_cause enum('row_does_not_exist','row_already_exists','data_in_conflict','trans_in_conflict') not null, ndb$orig_transid bigint unsigned not null, primary key(ndb$server_id, ndb$master_server_id, ndb$master_epoch, ndb$count)) engine ndb; } --echo Create table create table test.t1(a int primary key, b varchar(255)) engine = ndb; --echo Create other table create table test.t2(a int primary key, b int) engine = ndb; --source suite/ndb_rpl/t/ndb_conflict_info_init.inc --echo ---------------------------------- --echo Test 1 : Basic two-way replication --echo ---------------------------------- insert into test.t1 values (1, "Metropole"); # Here we want to verify that updates can originate at the Secondary without # causing conflicts # We first insert on the Primary, allow that to propagate, then update on # the secondary. # This is much complicated by the fact that we run with varying number of # extra GCI bits, from 0 to 31. With 0 extra GCI bits, the row's GCI appears # to be GCIhi|0xffffffff, which means that all secondary initiated changes # will be considered in-conflict until the MaxReplicatedEpoch hits GCIhi+1|0 # To make this test stable, we use a loop to check for this condition! --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc FLUSH LOGS; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Verify that Max rep epoch has been updated --disable_query_log --disable_result_log SELECT @MaxRepGCIHI:=Variable_Value >> 32 FROM Information_schema.Global_Status WHERE Variable_Name like 'Ndb_slave_max_replicated_epoch'; SELECT @MaxRepGCIHI = 0; --let $first_gcihi = `SELECT @MaxRepGCIHI` --let $current_gcihi = $first_gcihi --let $different = `SELECT $current_gcihi - $first_gcihi` #--echo Difference is $different while (!$different) { # Do something, sleep a little, and see if we've ticked over GCIhi yet replace into test.t2 values(2,1); replace into test.t2 values(2,2); --sleep 1 SELECT @MaxRepGCIHI:=Variable_Value >> 32 FROM Information_schema.Global_Status WHERE Variable_Name like 'Ndb_slave_max_replicated_epoch'; --let $current_gcihi = `SELECT @MaxRepGCIHI` --let $different = `SELECT $current_gcihi - $first_gcihi` #--echo Current GCI Hi is $current_gcihi #--echo Difference is $different } --enable_result_log --enable_query_log --echo -- Primary Cluster Max Rep Epoch now beyond the original update epoch --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Now update data on slave update test.t1 set b="Favorit" where a=1; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Now check data on Primary select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Now perform multiple consecutive updates on the Secondary update test.t1 set b="Elephant house" where a=1; update test.t1 set b="Beach house" where a=1; select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Now check they've applied on the Primary select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc --echo -------------------------------------------- --echo Test 2 : Normal Insert from Secondary Master --echo -------------------------------------------- --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Insert a new row on the Secondary insert into test.t1 values (2, "Forrest"); --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Check it exists on the Primary select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Update from the Secondary update test.t1 set b="Reds" where a=2; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc delete from test.t1 where a=2; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc # Allow reflected Ndb$Epoch2 ops to propagate back to # Secondary before starting the next test. --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --echo ------------------------------- --echo Test 3 : Insert-Insert conflict --echo ------------------------------- --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc stop slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Insert a row on the Primary Master insert into test.t1 values (2, "Loopy Lornas"); --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Insert a row on the secondary Master insert into test.t1 values (2, "Cloisters"); --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Examine data on Primary Master (should be unaffected) select * from test.t1 order by a; --echo -- Examine conflict indicators on Primary Master --source suite/ndb_rpl/t/ndb_conflict_info.inc --echo -- Examine data on isolated secondary Master (should be as-set) --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc select * from test.t1 order by a; --echo -- Restart secondary Masters slave start slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Reexamine secondary Master's data (should be same as Primary Masters) select * from test.t1 order by a; --echo ------------------------------- --echo Test 4 : Update-Update conflict --echo ------------------------------- --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Stop replication to secondary master stop slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Update row on Primary Master update test.t1 set b="Peters Yard" where a=2; --echo -- Show data on Primary Master select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Update row on Secondary Master update test.t1 set b="Toast" where a=2; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Examine data on Primary Master - should be unaffected select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Check data on secondary - should be as set select * from test.t1 order by a; --echo -- Now restart slave, will re-align row start slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Check that Secondary is re-aligned select * from test.t1 order by a; --echo ------------------------------- --echo Test 5 : Update-Delete conflict --echo ------------------------------- --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Stop Secondary slave stop slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Update on Primary Master update test.t1 set b="Pear tree" where a = 2; --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Delete on Secondary Master delete from test.t1 where a = 2; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Examine data on Primary Master, should be unaffected select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc --echo -- Examine data on Secondary Master before slave restart, still missing --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc select * from test.t1 order by a; --echo -- Restart Secondary Master slave start slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Examine data on Secondary Master after slave restart, aligned with Master select * from test.t1 order by a; --echo ------------------------------- --echo Test 6 : Delete-Update conflict --echo ------------------------------- --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Stop Secondary slave stop slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Delete on Primary Master delete from test.t1 where a=2; --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Update on Secondary Master update test.t1 set b="Black pig" where a=2; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Examine data on Primary Master, should be unaffected (no row) select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc --echo -- Examine data on Secondary Master before slave restart, should be as inserted --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc select * from test.t1 order by a; --echo -- Restart Secondary Master slave start slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Examine data on Secondary Master after slave restart, aligned with Master (deleted) select * from test.t1 order by a; --echo ------------------------------- --echo Test 7 : Delete-Delete conflict --echo ------------------------------- --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Stop Secondary slave stop slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Delete on Primary Master delete from test.t1 where a=1; --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Delete on Secondary Master delete from test.t1 where a=1; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Examine data on Primary Master, no row select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc --echo -- Examine data on Secondary Master before slave restart, no row --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc select * from test.t1 order by a; --echo -- Restart Secondary Master slave start slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Examine data on Secondary Master after slave restart, no row select * from test.t1 order by a; --echo ------------------------------------------------ --echo Test 8 : Delete-Delete, Insert conflict exposure --echo ------------------------------------------------ # NDB$EPOCH # Data will diverge : # This occurs as the Primary Master's Delete is still # in-flight when the Secondary Master's Insert arrives, # but as there is no knowledge of this at the Primary # Master, it accepts the Insert. # # NDB$EPOCH2 # Data will not diverge : # As above, except the Secondary Master's Insert will be # reflected back to it, and applied. # So the (eventual) result will be equal data. # --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Insert a row on Secondary Master insert into test.t1 values (3, "Espy"); --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Check it's present on Primary Master select * from test.t1 order by a; --echo -- Stop replication in both directions stop slave; --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc stop slave; --echo -- Delete row from both clusters delete from test.t1 where a=3; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc delete from test.t1 where a=3; --echo -- Follow up with Insert from Secondary master --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc insert into test.t1 values (3, "Dalriada"); --echo -- Restart replication in both directions start slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc start slave; --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc # # For Ndb$EPOCH2, Primary will reflect Secondary Insert # back to it - we must wait for that to occur before # expecting consistency # --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Check data on both sites --echo -- diverged with NDB\$EPOCH --echo -- consistent with NDB\$EPOCH2 --echo -- Secondary master : select * from test.t1 order by a; --echo -- Primary master : --source suite/ndb_rpl/t/ndb_connect_to_primary.inc select * from test.t1 order by a; --echo --Remove extra row delete from test.t1 where a=3; --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Note that Delete-Delete conflict detected below --source suite/ndb_rpl/t/ndb_conflict_info.inc --echo ------------------------------------------------ --echo Test 9 : Insert, Insert-Update-Delete conflict --echo ------------------------------------------------ --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Stop replication on Secondary Master stop slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Insert row on Primary Master insert into test.t1 values (4, "Haymarket"); --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Insert row on Secondary Master insert into test.t1 values (4, "Outhouse"); --echo -- Update row on Secondary Master update test.t1 set b="Mathers" where a = 4; --echo -- Delete row on Secondary Master delete from test.t1 where a=4; --echo -- Examine data (none) on Secondary Master select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Examine data on Primary Master, should be unaffected select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Examine data on Secondary Master (none) select * from test.t1 order by a; --echo -- Restart Secondary Master's slave start slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Check data on Secondary Master, should be same as Primary Master select * from test.t1; --echo ------------------------------------------------ --echo Test 10 : Update, Delete-Insert-Update conflict --echo ------------------------------------------------ --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Stop replication on Secondary Master stop slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Update row on Primary Master update test.t1 set b="Blind poet" where a=4; --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Delete row on Secondary Master delete from test.t1 where a=4; --echo -- Insert row on Secondary Master insert into test.t1 values (4, "Drouthy Neebors"); --echo -- Update row on Secondary Master update test.t1 set b="The Tankard" where a=4; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo -- Check data on Primary Master, should be unaffected select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Check data on Secondary Master, as set select * from test.t1 order by a; --echo -- Restart Secondary Master slave start slave; --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo -- Check data on Secondary Master - should be as Primary select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo ------------------------------------------------------------------------ --echo Test 11 : Test Secondary insert-update-delete accepted --echo ------------------------------------------------------------------------ --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --echo Insert row on Secondary insert into test.t1 values (5, "Minders"); --echo Update row on Secondary update test.t1 set b="Southsider" where a=5; --echo Delete row on Secondary delete from test.t1 where a=5; --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --echo Check data on Primary, should be none. No new conflicts select * from test.t1 order by a; --source suite/ndb_rpl/t/ndb_conflict_info.inc # Test runs with --log-slave-updates=1 # This means that the Secondary logs reflected ops if they # take some effect in its binlog # (e.g. they go S->P --reflect--> S --logged--> P) # On the final return to P they are logged with the P server # id, so won't be applied. # BUT the table_map events are logged with the logging server # id (e.g. S in this case), and will be processed by the # slave SQL thread. # If e.g. the table has been dropped on the PRIMARY then # this can cause a slave failure... # In real life I guess that table drop is rare. # For this testcase, we'll do some more serialisation between # the last writes to a table, and the drop of the table # --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_secondary.inc --source suite/ndb_rpl/t/ndb_sync_secondary_to_primary.inc # Show nothing changed in the meantime --source suite/ndb_rpl/t/ndb_connect_to_primary.inc --source suite/ndb_rpl/t/ndb_conflict_info.inc # Now drop drop table test.t1; drop table test.t2; drop table test.t1$EX; --source suite/ndb_rpl/t/ndb_sync_primary_to_secondary.inc --source suite/ndb_rpl/t/ndb_connect_to_primary.inc
Close