Details
Assignee
UnassignedUnassignedReporter
lpjirasynclpjirasync(Deactivated)Priority
LowComponents
Labels
Details
Details
Assignee
Unassigned
UnassignedReporter
lpjirasync
lpjirasync(Deactivated)Priority
Components
Labels
Smart Checklist
Smart Checklist
Smart Checklist
Created January 24, 2018 at 9:14 PM
Updated March 4, 2024 at 4:40 PM
**Reported in Launchpad by Ceri WIlliams last update 13-07-2016 22:02:00
There are a number of automatic exclusions on a schema and table level in both pt-table-checksum (line numbers below) and pt-table-sync (line numbers differ):
sub database_is_allowed
7571 if ( $db =~ m/information_schema|performance_schema|lost+found/ ) {
7572 PTDEBUG && _d('Database', $db, 'is a system database, ignoring');
7573 return 0;
7574 }
sub table_is_allowed
7612 return 0 if $db eq 'mysql' && $tbl =~ m/^(?:
7613 general_log
7614 |slow_log
7615 |innodb_index_stats
7616 |innodb_table_stats
7617 |slave_master_info
7618 |slave_relay_log_info
7619 |slave_worker_info
7620 )$/x;
There are some additional ones that should not be touched, even if writes are not replicated to them:
sys (can be completely ignored)
mysql.inventory (from MEM)
mysql.gtid_execution
mysql.plugin
mysql.engine_cost
mysql.server_cost
In addition, using pt-table-sync with --sync-to-master and --replicate may cause undesirable changes:
a master with fast disks, a slave with slow disks and an engine_cost change being altered
sys configuration differences being applied on a slave of different hardward specification, etc
Whilst these can be manually excluded, it leaves a default risk for the user and means that they should always apply exclusions. This becomes more important if differences from the checksum were to be automatically resolved using the --sync-to-master and --replicate.
Tested with v2.2.18.