Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
Description
Provide a mechanism to filter replication events on the slave replication
server based on domain_id.
New master definitions:
(1) DO_DOMAIN_IDS = (N[,N])
- Accepts a comma-separated list of domain_ids, the replication events of
which will be kept. - If a CHANGE MASTER command is executed without DO_DOMAIN_IDS, the
existing list of domain ids (if any) would be preserved. - DO_DOMAIN_IDS=() can be used to clear the list.
- The list should show in SHOW MASTER STATUS output and master_info file.
- On restart, the list should automatically get populated from master_info.
(2) IGNORE_DOMAIN_IDS = (N[,N])
- Accepts a comma-separated list of domain_ids, the replication events of
which will be filtered out. - If a CHANGE MASTER command is executed without IGNORE_DOMAIN_IDS, the
existing list of domain ids (if any) would be preserved. - IGNORE_DOMAIN_IDS=() can be used to clear the list.
- The list should show in SHOW MASTER STATUS output and master_info file.
- On restart, the list should automatically get populated from master_info.
Additional notes:
- The list preservation rule is consistent with IGNORE_SERVER_IDS.
- Both the lists (DO_ & IGNORE_) cannot be non-empty at the same time.
- CHANGE MASTER TO command would fail with ER_MASTER_INFO if it tries
to set both the lists.
Examples:
CHANGE MASTER TO .. IGNORE_DOMAIN_IDS= (1,2,3) .. ;
CHANGE MASTER TO .. DO_DOMAIN_IDS= (99) .. ;
CHANGE MASTER TO .. DO_DOMAIN_IDS= () .. ;
$ tail -2 master.info
do_domain_ids=0
ignore_domain_ids=3 1 2 3