~maria-captains/maria/5.5-davi

« back to all changes in this revision

Viewing changes to mysql-test/suite/rpl/t/rpl_filter_wild_tables_dynamic.test

  • Committer: Davi Arnaut
  • Date: 2012-03-19 22:00:23 UTC
  • Revision ID: davi@twitter.com-20120319220023-77a84i1t1n18pzt7
Make Replication filter settings dynamic.

Make the slave options --replicate-* dynamic variables so that these
options can be changed dynamically while the server is running,
which enables users to modify replication filtering rules without
having to stop and restart the server.

This is accomplished by just requiring that the slave threads are
stopped when these options are set dynamically. Since filtering
rules are only used by the SQL slave thread, setting them while the
thread is not running avoids the need for locking.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# Test if dynamic replication wild table filter rules are properly evaluated.
 
3
#
 
4
 
 
5
source include/have_binlog_format_statement.inc;
 
6
source include/master-slave.inc;
 
7
 
 
8
connection slave;
 
9
--error ER_SLAVE_MUST_STOP
 
10
SET @@GLOBAL.replicate_wild_do_table="test.a%";
 
11
--error ER_SLAVE_MUST_STOP
 
12
SET @@GLOBAL.replicate_wild_ignore_table="test.b%";
 
13
 
 
14
connection slave;
 
15
source include/stop_slave.inc;
 
16
SET @@GLOBAL.replicate_wild_do_table="test.a%";
 
17
SET @@GLOBAL.replicate_wild_ignore_table="test.b%";
 
18
source include/start_slave.inc;
 
19
connection master;
 
20
 
 
21
# Table is mentioned in wild-do-table rules
 
22
CREATE TABLE a1 (a INT);
 
23
 
 
24
# Table is mentioned in wild-ignore-table rules
 
25
CREATE TABLE b1 (a INT);
 
26
 
 
27
# Table is not mentioned in wild-do-table or wild-ignore-table rules
 
28
CREATE TABLE c1 (a INT);
 
29
 
 
30
INSERT INTO a1 VALUES (1);
 
31
INSERT INTO b1 VALUES (2);
 
32
INSERT INTO c1 VALUES (3);
 
33
 
 
34
# Only a1 should be replicated to slave
 
35
sync_slave_with_master;
 
36
echo [on slave];
 
37
SHOW TABLES LIKE '%1';
 
38
 
 
39
connection master;
 
40
echo [on master];
 
41
 
 
42
# Clean up
 
43
connection master;
 
44
echo [on master];
 
45
DROP TABLE IF EXISTS a1,b1,c1;
 
46
--source include/rpl_end.inc
 
47
 
 
48
connection slave;
 
49
SET @@GLOBAL.replicate_wild_do_table="";
 
50
SET @@GLOBAL.replicate_wild_ignore_table="";