mirror of
https://github.com/percona/percona-toolkit.git
synced 2026-04-26 01:02:25 +08:00
PT-86 Added --skip-check-slave-lag to pt-osc
This commit is contained in:
+25
-13
@@ -8482,7 +8482,7 @@ sub main {
|
|||||||
if ( scalar @$slaves ) {
|
if ( scalar @$slaves ) {
|
||||||
print "Found " . scalar(@$slaves) . " slaves:\n";
|
print "Found " . scalar(@$slaves) . " slaves:\n";
|
||||||
foreach my $cxn ( @$slaves ) {
|
foreach my $cxn ( @$slaves ) {
|
||||||
print " " . $cxn->name() . "\n";
|
printf("%s -> %s:%s\n", $cxn->name(), $cxn->{dsn}->{h}, $cxn->{dsn}->{P});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ( ($o->get('recursion-method') || '') ne 'none') {
|
elsif ( ($o->get('recursion-method') || '') ne 'none') {
|
||||||
@@ -8507,19 +8507,31 @@ sub main {
|
|||||||
PTDEBUG && _d('Will check slave lag on all slaves');
|
PTDEBUG && _d('Will check slave lag on all slaves');
|
||||||
$slave_lag_cxns = $slaves;
|
$slave_lag_cxns = $slaves;
|
||||||
}
|
}
|
||||||
if ($o->get('skip-check-slave-lag')) {
|
|
||||||
my $slaves_to_skip = $o->get('skip-check-slave-lag');
|
|
||||||
my $filtered_slaves = [];
|
|
||||||
for my $slave_to_skip (@$slaves_to_skip) {
|
|
||||||
|
|
||||||
warn "i>>>>------------------------------------------------";
|
|
||||||
warn Data::Dumper::Dumper($slave_to_skip->{h});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( $slave_lag_cxns && scalar @$slave_lag_cxns ) {
|
if ( $slave_lag_cxns && scalar @$slave_lag_cxns ) {
|
||||||
print "Will check slave lag on:\n";
|
if ($o->get('skip-check-slave-lag')) {
|
||||||
foreach my $cxn ( @$slave_lag_cxns ) {
|
my $slaves_to_skip = $o->get('skip-check-slave-lag');
|
||||||
print " " . $cxn->name() . "\n";
|
my $filtered_slaves = [];
|
||||||
|
for my $slave (@$slave_lag_cxns) {
|
||||||
|
my $found=0;
|
||||||
|
for my $slave_to_skip (@$slaves_to_skip) {
|
||||||
|
if ($slave->{dsn}->{h} eq $slave_to_skip->{h} && $slave->{dsn}->{P} eq $slave_to_skip->{P}) {
|
||||||
|
$found=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($found) {
|
||||||
|
printf("Skipping slave %s -> %s:%s\n", $cxn->name(), $cxn->{dsn}->{h}, $cxn->{dsn}->{P});
|
||||||
|
push @$filtered_slaves, $slave;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$slave_lag_cxns = $filtered_slaves;
|
||||||
|
}
|
||||||
|
if (!scalar @$slave_lag_cxns) {
|
||||||
|
print "Not checking slave lag because all slaves were skipped\n";
|
||||||
|
} else{
|
||||||
|
print "Will check slave lag on:\n";
|
||||||
|
foreach my $cxn ( @$slave_lag_cxns ) {
|
||||||
|
printf("%s -> %s:%s\n", $cxn->name(), $cxn->{dsn}->{h}, $cxn->{dsn}->{P});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -602,6 +602,29 @@ is(
|
|||||||
|
|
||||||
$master_dbh->do("DROP DATABASE IF EXISTS test");
|
$master_dbh->do("DROP DATABASE IF EXISTS test");
|
||||||
|
|
||||||
|
# Test for --skip-check-slave-lag
|
||||||
|
# Use the same files from previous test because for this test we are going to
|
||||||
|
# run a nonop so, any file will work
|
||||||
|
$master_dbh->do("DROP DATABASE IF EXISTS test");
|
||||||
|
|
||||||
|
$sb->load_file('master', "$sample/bug-1613915.sql");
|
||||||
|
$output = output(
|
||||||
|
sub { pt_online_schema_change::main(@args, "$master_dsn,D=test,t=o1",
|
||||||
|
'--execute',
|
||||||
|
'--alter', "ENGINE=INNODB",
|
||||||
|
'--skip-check-slave-lag', "h=127.0.0.1,P=".$sb->port_for('slave1'),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
my $skipping_str = "Skipping.*".$sb->port_for('slave1');
|
||||||
|
like(
|
||||||
|
$output,
|
||||||
|
qr/$skipping_str/s,
|
||||||
|
"--skip-check-slave-lag",
|
||||||
|
);
|
||||||
|
|
||||||
|
$master_dbh->do("DROP DATABASE IF EXISTS test");
|
||||||
|
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
# Done.
|
# Done.
|
||||||
|
|||||||
Reference in New Issue
Block a user