mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-27 07:54:58 +00:00
Implement --[no]empty-replicate-table (default: yes).
This commit is contained in:
@@ -5372,6 +5372,8 @@ sub main {
|
|||||||
my $update_sth = $dbh->prepare(
|
my $update_sth = $dbh->prepare(
|
||||||
"UPDATE $repl_table SET chunk_time = ?, master_crc = ?, master_cnt = ? "
|
"UPDATE $repl_table SET chunk_time = ?, master_crc = ?, master_cnt = ? "
|
||||||
. "WHERE db = ? AND tbl = ? AND chunk = ?");
|
. "WHERE db = ? AND tbl = ? AND chunk = ?");
|
||||||
|
my $delete_sth = $dbh->prepare(
|
||||||
|
"DELETE FROM $repl_table WHERE db = ? AND tbl = ?");
|
||||||
|
|
||||||
# ########################################################################
|
# ########################################################################
|
||||||
# Make a ReplicaLagWaiter to help wait for slaves after each chunk.
|
# Make a ReplicaLagWaiter to help wait for slaves after each chunk.
|
||||||
@@ -5405,6 +5407,15 @@ sub main {
|
|||||||
# in these callbacks and the subs that they call.
|
# in these callbacks and the subs that they call.
|
||||||
# ########################################################################
|
# ########################################################################
|
||||||
my $callbacks = {
|
my $callbacks = {
|
||||||
|
init => sub {
|
||||||
|
my (%args) = @_;
|
||||||
|
my $tbl = $args{tbl};
|
||||||
|
if ( $o->get('empty-replicate-table') ) {
|
||||||
|
MKDEBUG && _d($delete_sth->{Statement});
|
||||||
|
$delete_sth->execute($tbl->{db}, $tbl->{tbl});
|
||||||
|
}
|
||||||
|
return 1; # continue nibbling
|
||||||
|
},
|
||||||
next_boundaries => sub {
|
next_boundaries => sub {
|
||||||
my (%args) = @_;
|
my (%args) = @_;
|
||||||
my $tbl = $args{tbl};
|
my $tbl = $args{tbl};
|
||||||
@@ -5867,13 +5878,6 @@ sub check_repl_table {
|
|||||||
unless $have_tbl_privs;
|
unless $have_tbl_privs;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Clean out the replicate table globally.
|
|
||||||
if ( $o->get('empty-replicate-table') ) {
|
|
||||||
my $del_sql = "DELETE FROM $repl_table";
|
|
||||||
MKDEBUG && _d($dbh, $del_sql);
|
|
||||||
$dbh->do($del_sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6325,7 +6329,7 @@ Currently, this operation cannot be disabled.
|
|||||||
If the replicate table becomes cluttered with old or invalid checksums
|
If the replicate table becomes cluttered with old or invalid checksums
|
||||||
and the auto-delete operation is not deleting them, then you will need to
|
and the auto-delete operation is not deleting them, then you will need to
|
||||||
manually clean up the replicate table. Alternatively, if you specify
|
manually clean up the replicate table. Alternatively, if you specify
|
||||||
L<"--empty-replicate-table">, then the tool deletes every row in the
|
L<"--[no]empty-replicate-table">, then the tool deletes every row in the
|
||||||
replicate table.
|
replicate table.
|
||||||
|
|
||||||
=head1 EXIT STATUS
|
=head1 EXIT STATUS
|
||||||
@@ -6508,17 +6512,19 @@ short form: -F; type: string; group: Connection
|
|||||||
Only read mysql options from the given file. You must give an absolute
|
Only read mysql options from the given file. You must give an absolute
|
||||||
pathname.
|
pathname.
|
||||||
|
|
||||||
=item --empty-replicate-table
|
=item --[no]empty-replicate-table
|
||||||
|
|
||||||
DELETE all rows in the L<"--replicate"> table before starting.
|
default: yes
|
||||||
|
|
||||||
Issues a DELETE against the table given by L<"--replicate"> before beginning
|
Delete previous checksums for each table before checksumming the table.
|
||||||
work. Ignored if L<"--replicate"> is not specified. This can be useful to
|
This option does not truncate the entire L<"--replicate"> table, it
|
||||||
remove entries related to tables that no longer exist, or just to clean out the
|
only deletes rows (checksums) for each table right before checksumming
|
||||||
results of a previous run.
|
the table. Therefore, if checksumming stops prematurely, the L<"--replicate">
|
||||||
|
table will still contain rows for tables that were not checksumed before
|
||||||
|
the tool was stopped.
|
||||||
|
|
||||||
If you want to delete entries for specific databases or tables you must
|
L<"--resume"> disables this option because if previous checksums are
|
||||||
do this manually.
|
deleted then there is nothing to resume.
|
||||||
|
|
||||||
=item --engines
|
=item --engines
|
||||||
|
|
||||||
@@ -6762,7 +6768,7 @@ master binlog positions, and so on.
|
|||||||
The checksum queries actually do a REPLACE into this table, so existing rows
|
The checksum queries actually do a REPLACE into this table, so existing rows
|
||||||
need not be removed before running. However, you may wish to do this anyway to
|
need not be removed before running. However, you may wish to do this anyway to
|
||||||
remove rows related to tables that don't exist anymore. The
|
remove rows related to tables that don't exist anymore. The
|
||||||
L<"--empty-replicate-table"> option does this for you.
|
L<"--[no]empty-replicate-table"> option does this for you.
|
||||||
|
|
||||||
Since the table must be qualified with a database (e.g. C<db.checksums>),
|
Since the table must be qualified with a database (e.g. C<db.checksums>),
|
||||||
pt-table-checksum will only USE this database. This may be important if any
|
pt-table-checksum will only USE this database. This may be important if any
|
||||||
@@ -6834,6 +6840,15 @@ specify a safe default database. This option specifies a default database that
|
|||||||
pt-table-checksum selects with USE, and never changes afterwards. See also
|
pt-table-checksum selects with USE, and never changes afterwards. See also
|
||||||
<L"--[no]check-replication-filters">.
|
<L"--[no]check-replication-filters">.
|
||||||
|
|
||||||
|
=item --resume
|
||||||
|
|
||||||
|
Resume checksumming (disables L<"--[no]empty-replicate-table">).
|
||||||
|
If the tool is stopped prematurely, checksumming can
|
||||||
|
be resumed from the last successful checksum by specifying this option.
|
||||||
|
|
||||||
|
This option disables L<"--[no]empty-replicate-table"> because if previous
|
||||||
|
checksums are deleted then there is nothing to resume.
|
||||||
|
|
||||||
=item --separator
|
=item --separator
|
||||||
|
|
||||||
type: string; default: #
|
type: string; default: #
|
||||||
|
Reference in New Issue
Block a user