mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	 c132bce1a1
			
		
	
	
	c132bce1a1
	
	
	
		
			
			New Feature: ============ Extend mariadb-binlog command-line tool to allow for filtering events using GTID domain and server ids. The functionality mimics that of a replica server’s DO_DOMAIN_IDS, IGNORE_DOMAIN_IDS, and IGNORE_SERVER_IDS from CHANGE MASTER TO. For completeness, this patch additionally adds the option --do-server-ids as an alias for --server-id, which now accepts a list of server ids instead of a single one. Example usage: mariadb-binlog --do-domain-ids=2,3,4 --do-server-ids=1,3 master-bin.000001 Functional Notes: 1. --do-domain-ids cannot be combined with --ignore-domain-ids 2. --do-server-ids cannot be combined with --ignore-server-ids 3. A domain id filter can be combined with a server id filter 4. When any new filter options are combined with the --gtid-strict-mode option, events from excluded domains/servers are not validated. 5. Domain/server id filters can be combined with GTID ranges (i.e. specifications of --start-position and --stop-position). However, because the --stop-position option implicitly undertakes filtering to only output events within its range of domains, when combined with --do-domain-ids or --ignore-domain-ids, output will consist of the intersection between the filters. Specifically, with --do-domain-ids and --stop-position, only events with domain ids present in both argument lists will be output. Conversely, with --ignore-domain-ids and --stop-position, only events with domain ids present in the --stop-position and absent from the --ignore-domain-ids options will be output. Reviewed By ============ Andrei Elkin <andrei.elkin@mariadb.com>
		
			
				
	
	
		
			45 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| # Populate the active connection server with events that come from varying
 | |
| # domain and server ids
 | |
| 
 | |
| --disable_query_log
 | |
| 
 | |
| # Save old state
 | |
| let $ORIG_GTID_DOMAIN_ID = `select @@session.gtid_domain_id`;
 | |
| let $ORIG_SERVER_ID = `select @@session.server_id`;
 | |
| 
 | |
| SET @@session.gtid_domain_id= 0;
 | |
| SET @@session.server_id= 1;
 | |
| CREATE TABLE t1 (a int);
 | |
| 
 | |
| SET @@session.server_id= 3;
 | |
| CREATE TABLE t2 (a int);
 | |
| INSERT INTO t2 values (3);
 | |
| 
 | |
| SET @@session.gtid_domain_id= 1;
 | |
| SET @@session.server_id= 1;
 | |
| CREATE TABLE t3 (a int);
 | |
| INSERT INTO t3 values (4);
 | |
| 
 | |
| SET @@session.server_id= 4;
 | |
| CREATE TABLE t4 (a int);
 | |
| INSERT INTO t4 values (5);
 | |
| 
 | |
| SET @@session.gtid_domain_id= 0;
 | |
| SET @@session.server_id= 1;
 | |
| INSERT INTO t1 values (1);
 | |
| 
 | |
| SET @@session.gtid_domain_id= 2;
 | |
| SET @@session.server_id= 1;
 | |
| CREATE TABLE t5 (a int);
 | |
| INSERT INTO t5 values (6);
 | |
| 
 | |
| SET @@session.gtid_domain_id= 0;
 | |
| SET @@session.server_id= 1;
 | |
| INSERT INTO t1 values (2);
 | |
| 
 | |
| FLUSH LOGS;
 | |
| 
 | |
| --eval SET @@session.gtid_domain_id= $ORIG_GTID_DOMAIN_ID
 | |
| --eval SET @@session.server_id= $ORIG_SERVER_ID
 | |
| 
 | |
| --enable_query_log
 |