mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-15 16:00:23 +00:00
Merge release-2.2.1 to get Lmo with headers.
This commit is contained in:
43
Changelog
43
Changelog
@@ -1,5 +1,48 @@
|
|||||||
Changelog for Percona Toolkit
|
Changelog for Percona Toolkit
|
||||||
|
|
||||||
|
v2.2.1 released 2013-03-14
|
||||||
|
|
||||||
|
* Official support for MySQL 5.6
|
||||||
|
* Official support for Percona XtraDB Cluster
|
||||||
|
* Redesigned pt-query-digest
|
||||||
|
* Redesigned pt-upgrade
|
||||||
|
* Redesigned pt-fk-error-logger
|
||||||
|
* Redesigned pt-deadlock-logger
|
||||||
|
* Changed --set-vars in all tools
|
||||||
|
* Renamed --retries to --tries in pt-online-schema-change
|
||||||
|
* Added --check-read-only to pt-heartbeat
|
||||||
|
* Added MySQL options to pt-mysql-summary
|
||||||
|
* Added MySQL options to pt-stalk
|
||||||
|
* Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars)
|
||||||
|
* Removed --lock-wait-timeout from pt-table-checksum (use --set-vars)
|
||||||
|
* Removed pt-query-advisor
|
||||||
|
* Removed pt-tcp-model
|
||||||
|
* Removed pt-trend
|
||||||
|
* Removed pt-log-player
|
||||||
|
* Enabled --version-check by default in all tools
|
||||||
|
* Fixed bug 1008796: Several tools don't have --database
|
||||||
|
* Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values
|
||||||
|
* Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options
|
||||||
|
* Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time
|
||||||
|
* Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE
|
||||||
|
* Fixed bug 1113301: pt-online-schema-change blocks on metadata locks
|
||||||
|
* Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically
|
||||||
|
* Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions
|
||||||
|
* Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found
|
||||||
|
|
||||||
|
v2.1.9 released 2013-02-14
|
||||||
|
|
||||||
|
* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
|
||||||
|
* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
|
||||||
|
* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
|
||||||
|
* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
|
||||||
|
* Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function
|
||||||
|
* Fixed bug 823411: pt-query-digest shouldn't print "Error: none" for tcpdump
|
||||||
|
* Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors
|
||||||
|
* Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave
|
||||||
|
* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
|
||||||
|
* Fixed bug 1099933: pt-stalk is too verbose, fills up log
|
||||||
|
|
||||||
v2.1.8 released 2012-12-21
|
v2.1.8 released 2012-12-21
|
||||||
|
|
||||||
* Beta support for MySQL 5.6
|
* Beta support for MySQL 5.6
|
||||||
|
@@ -2,7 +2,7 @@ use ExtUtils::MakeMaker;
|
|||||||
|
|
||||||
WriteMakefile(
|
WriteMakefile(
|
||||||
NAME => 'percona-toolkit',
|
NAME => 'percona-toolkit',
|
||||||
VERSION => '2.1.8',
|
VERSION => '2.2.1',
|
||||||
EXE_FILES => [ <bin/*> ],
|
EXE_FILES => [ <bin/*> ],
|
||||||
MAN1PODS => {
|
MAN1PODS => {
|
||||||
'docs/percona-toolkit.pod' => 'blib/man1/percona-toolkit.1p',
|
'docs/percona-toolkit.pod' => 'blib/man1/percona-toolkit.1p',
|
||||||
|
@@ -217,6 +217,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-align 2.1.8
|
pt-align 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -42,7 +42,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -7800,6 +7800,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-archiver 2.1.8
|
pt-archiver 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -42,7 +42,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -5647,6 +5647,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-config-diff 2.1.8
|
pt-config-diff 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -41,7 +41,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -5420,6 +5420,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-deadlock-logger 2.1.8
|
pt-deadlock-logger 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -37,7 +37,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -5484,6 +5484,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-diskstats 2.1.8
|
pt-diskstats 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -38,7 +38,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -5463,6 +5463,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-duplicate-key-checker 2.1.8
|
pt-duplicate-key-checker 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -1562,6 +1562,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-fifo-split 2.1.8
|
pt-fifo-split 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -34,7 +34,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -4929,6 +4929,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-find 2.1.8
|
pt-find 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -2135,7 +2135,7 @@ software from Percona.
|
|||||||
|
|
||||||
=head1 COPYRIGHT, LICENSE, AND WARRANTY
|
=head1 COPYRIGHT, LICENSE, AND WARRANTY
|
||||||
|
|
||||||
This program is copyright 2011-2012 Percona Ireland Ltd.
|
This program is copyright 2011-2013 Percona Ireland Ltd.
|
||||||
|
|
||||||
THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
|
THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||||
@@ -2153,6 +2153,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-fingerprint 2.1.8
|
pt-fingerprint 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -36,7 +36,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -4428,6 +4428,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-fk-error-logger 2.1.8
|
pt-fk-error-logger 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -37,7 +37,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -5001,10 +5001,13 @@ sub main {
|
|||||||
|
|
||||||
$heartbeat_sth = $dbh->prepare($heartbeat_sql);
|
$heartbeat_sth = $dbh->prepare($heartbeat_sql);
|
||||||
|
|
||||||
|
my $ro_check = !!$o->get('check-read-only');
|
||||||
$update_heartbeat = sub {
|
$update_heartbeat = sub {
|
||||||
my ($sth) = @_;
|
my ($sth) = @_;
|
||||||
my @vals;
|
my @vals;
|
||||||
|
|
||||||
|
return if $ro_check && server_is_readonly($dbh);
|
||||||
|
|
||||||
my $sql;
|
my $sql;
|
||||||
if ( @master_status_cols ) {
|
if ( @master_status_cols ) {
|
||||||
$sql = "SHOW MASTER STATUS";
|
$sql = "SHOW MASTER STATUS";
|
||||||
@@ -5252,6 +5255,18 @@ sub main {
|
|||||||
# Subroutines.
|
# Subroutines.
|
||||||
# ############################################################################
|
# ############################################################################
|
||||||
|
|
||||||
|
sub server_is_readonly {
|
||||||
|
my ($dbh) = @_;
|
||||||
|
my ( $is_read_only ) = $dbh->selectrow_array(q{SELECT @@global.read_only});
|
||||||
|
if ( $is_read_only ) {
|
||||||
|
my ( $privs ) = eval { $dbh->selectrow_array(q{SHOW GRANTS}) };
|
||||||
|
if ( $privs && $privs =~ /\b(?:ALL|SUPER)\b/ ) {
|
||||||
|
$is_read_only = undef;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $is_read_only;
|
||||||
|
}
|
||||||
|
|
||||||
# Check the delay on a single server. Optionally recurse to all its slaves.
|
# Check the delay on a single server. Optionally recurse to all its slaves.
|
||||||
sub check_delay {
|
sub check_delay {
|
||||||
my ( %args ) = @_;
|
my ( %args ) = @_;
|
||||||
@@ -5568,6 +5583,11 @@ tool will try to discover slave's of the given slave and check and print
|
|||||||
their lag, too. The hostname or IP and port for each slave is printed
|
their lag, too. The hostname or IP and port for each slave is printed
|
||||||
before its delay. L<"--recurse"> only works with MySQL.
|
before its delay. L<"--recurse"> only works with MySQL.
|
||||||
|
|
||||||
|
=item --check-read-only
|
||||||
|
|
||||||
|
Check if the server has read_only enabled; If it does, the tool skips doing
|
||||||
|
any inserts.
|
||||||
|
|
||||||
=item --config
|
=item --config
|
||||||
|
|
||||||
type: Array
|
type: Array
|
||||||
@@ -5910,7 +5930,7 @@ not check or adjust for different system or MySQL time zones which can
|
|||||||
cause the tool to compute the lag incorrectly. Specifying this option is
|
cause the tool to compute the lag incorrectly. Specifying this option is
|
||||||
a good idea because it ensures that the tool works correctly regardless of
|
a good idea because it ensures that the tool works correctly regardless of
|
||||||
time zones, but it also makes the tool backwards-incompatible with
|
time zones, but it also makes the tool backwards-incompatible with
|
||||||
pt-heartbeat 2.1.7 and older (unless the older version of pt-heartbeat
|
pt-heartbeat 2.2.1 and older (unless the older version of pt-heartbeat
|
||||||
is running on a system that uses UTC).
|
is running on a system that uses UTC).
|
||||||
|
|
||||||
=item --version
|
=item --version
|
||||||
@@ -6092,6 +6112,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-heartbeat 2.1.8
|
pt-heartbeat 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -44,7 +44,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -7459,6 +7459,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-index-usage 2.1.8
|
pt-index-usage 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -1115,7 +1115,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-ioprofile 2.1.8
|
pt-ioprofile 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@@ -46,7 +46,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -8060,6 +8060,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-kill 2.1.8
|
pt-kill 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -281,7 +281,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-mext 2.1.8
|
pt-mext 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@@ -3111,7 +3111,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-mysql-summary 2.1.8
|
pt-mysql-summary 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@@ -53,7 +53,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -11238,6 +11238,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-online-schema-change 2.1.8
|
pt-online-schema-change 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -405,7 +405,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-pmp 2.1.8
|
pt-pmp 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@@ -63,7 +63,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -16010,6 +16010,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-query-digest 2.2.0
|
pt-query-digest 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -2396,6 +2396,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-show-grants 2.1.8
|
pt-show-grants 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -780,7 +780,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-sift 2.1.8
|
pt-sift 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@@ -39,7 +39,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -4807,6 +4807,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-slave-delay 2.1.8
|
pt-slave-delay 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -4317,6 +4317,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-slave-find 2.1.8
|
pt-slave-find 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -40,7 +40,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -5749,6 +5749,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-slave-restart 2.1.8
|
pt-slave-restart 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -2197,7 +2197,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-stalk 2.1.8
|
pt-stalk 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@@ -2682,7 +2682,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-summary 2.1.8
|
pt-summary 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@@ -56,7 +56,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -12194,6 +12194,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-table-checksum 2.1.8
|
pt-table-checksum 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -54,7 +54,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -12599,6 +12599,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-table-sync 2.1.8
|
pt-table-sync 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -7512,6 +7512,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-table-usage 2.1.8
|
pt-table-usage 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -60,7 +60,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -11111,6 +11111,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-upgrade 2.2.0
|
pt-upgrade 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -43,7 +43,7 @@ BEGIN {
|
|||||||
# ###########################################################################
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Percona::Toolkit;
|
package Percona::Toolkit;
|
||||||
our $VERSION = '2.1.8';
|
our $VERSION = '2.2.1';
|
||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
@@ -6077,6 +6077,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-variable-advisor 2.1.8
|
pt-variable-advisor 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -3233,6 +3233,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
pt-visual-explain 2.1.8
|
pt-visual-explain 2.2.1
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -1,3 +1,50 @@
|
|||||||
|
percona-toolkit (2.2.1) unstable; urgency=low
|
||||||
|
|
||||||
|
* Official support for MySQL 5.6
|
||||||
|
* Official support for Percona XtraDB Cluster
|
||||||
|
* Redesigned pt-query-digest
|
||||||
|
* Redesigned pt-upgrade
|
||||||
|
* Redesigned pt-fk-error-logger
|
||||||
|
* Redesigned pt-deadlock-logger
|
||||||
|
* Changed --set-vars in all tools
|
||||||
|
* Renamed --retries to --tries in pt-online-schema-change
|
||||||
|
* Added --check-read-only to pt-heartbeat
|
||||||
|
* Added MySQL options to pt-mysql-summary
|
||||||
|
* Added MySQL options to pt-stalk
|
||||||
|
* Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars)
|
||||||
|
* Removed --lock-wait-timeout from pt-table-checksum (use --set-vars)
|
||||||
|
* Removed pt-query-advisor
|
||||||
|
* Removed pt-tcp-model
|
||||||
|
* Removed pt-trend
|
||||||
|
* Removed pt-log-player
|
||||||
|
* Enabled --version-check by default in all tools
|
||||||
|
* Fixed bug 1008796: Several tools don't have --database
|
||||||
|
* Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values
|
||||||
|
* Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options
|
||||||
|
* Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time
|
||||||
|
* Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE
|
||||||
|
* Fixed bug 1113301: pt-online-schema-change blocks on metadata locks
|
||||||
|
* Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically
|
||||||
|
* Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions
|
||||||
|
* Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found
|
||||||
|
|
||||||
|
-- Percona Toolkit Developers <toolkit-dev@percona.com> Thu, 14 Mar 2013 17:18:34 +0000
|
||||||
|
|
||||||
|
percona-toolkit (2.1.9) unstable; urgency=low
|
||||||
|
|
||||||
|
* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
|
||||||
|
* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
|
||||||
|
* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
|
||||||
|
* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
|
||||||
|
* Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function
|
||||||
|
* Fixed bug 823411: pt-query-digest shouldn't print "Error: none" for tcpdump
|
||||||
|
* Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors
|
||||||
|
* Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave
|
||||||
|
* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
|
||||||
|
* Fixed bug 1099933: pt-stalk is too verbose, fills up log
|
||||||
|
|
||||||
|
-- Percona Toolkit Developers <toolkit-dev@percona.com> Thu, 14 Feb 2013 17:25:44 +0000
|
||||||
|
|
||||||
percona-toolkit (2.1.8) unstable; urgency=low
|
percona-toolkit (2.1.8) unstable; urgency=low
|
||||||
|
|
||||||
* Beta support for MySQL 5.6
|
* Beta support for MySQL 5.6
|
||||||
|
@@ -23,6 +23,6 @@ Description: Advanced MySQL and system command-line tools
|
|||||||
They are also fully self-contained, so installation is quick and easy and
|
They are also fully self-contained, so installation is quick and easy and
|
||||||
no libraries are installed.
|
no libraries are installed.
|
||||||
.
|
.
|
||||||
Percona Toolkit is developed and supported by Percona Inc. For more
|
Percona Toolkit is developed and supported by Percona. For more
|
||||||
information and other free, open-source software developed by Percona,
|
information and other free, open-source software developed by Percona,
|
||||||
visit http://www.percona.com/software/.
|
visit http://www.percona.com/software/.
|
||||||
|
@@ -9,7 +9,7 @@ Upstream Author:
|
|||||||
|
|
||||||
Copyright:
|
Copyright:
|
||||||
|
|
||||||
Copyright 2011 Percona Inc.
|
Copyright 2013 Percona Ireland Ltd.
|
||||||
|
|
||||||
License:
|
License:
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@ Version: %{version}
|
|||||||
Release: %{release}
|
Release: %{release}
|
||||||
Group: Applications/Databases
|
Group: Applications/Databases
|
||||||
License: GPL
|
License: GPL
|
||||||
Vendor: Percona Inc.
|
Vendor: Percona
|
||||||
URL: http://www.percona.com/software/percona-toolkit/
|
URL: http://www.percona.com/software/percona-toolkit/
|
||||||
Source: percona-toolkit-%{version}.tar.gz
|
Source: percona-toolkit-%{version}.tar.gz
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
@@ -22,7 +22,7 @@ they are professionally developed, formally tested, and fully documented.
|
|||||||
They are also fully self-contained, so installation is quick and easy and
|
They are also fully self-contained, so installation is quick and easy and
|
||||||
no libraries are installed.
|
no libraries are installed.
|
||||||
|
|
||||||
Percona Toolkit is developed and supported by Percona Inc. For more
|
Percona Toolkit is developed and supported by Percona. For more
|
||||||
information and other free, open-source software developed by Percona,
|
information and other free, open-source software developed by Percona,
|
||||||
visit http://www.percona.com/software/.
|
visit http://www.percona.com/software/.
|
||||||
|
|
||||||
|
@@ -41,16 +41,16 @@ master_doc = 'index'
|
|||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'Percona Toolkit'
|
project = u'Percona Toolkit'
|
||||||
copyright = u'2011, Percona Inc'
|
copyright = u'2013, Percona Ireland Ltd'
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '2.1'
|
version = '2.2'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '2.1.8'
|
release = '2.2.1'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
@@ -179,7 +179,7 @@ htmlhelp_basename = 'PerconaToolkitdoc'
|
|||||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||||
latex_documents = [
|
latex_documents = [
|
||||||
('index', 'PerconaToolkit.tex', u'Percona Toolkit Documentation',
|
('index', 'PerconaToolkit.tex', u'Percona Toolkit Documentation',
|
||||||
u'Percona Inc', 'manual'),
|
u'Percona Ireland Ltd', 'manual'),
|
||||||
]
|
]
|
||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top of
|
# The name of an image file (relative to this directory) to place at the top of
|
||||||
@@ -212,5 +212,5 @@ latex_documents = [
|
|||||||
# (source start file, name, description, authors, manual section).
|
# (source start file, name, description, authors, manual section).
|
||||||
man_pages = [
|
man_pages = [
|
||||||
('index', 'perconatoolkit', u'Percona Toolkit Documentation',
|
('index', 'perconatoolkit', u'Percona Toolkit Documentation',
|
||||||
[u'Percona Inc'], 1)
|
[u'Percona Ireland Ltd'], 1)
|
||||||
]
|
]
|
||||||
|
@@ -289,7 +289,7 @@ If you spotted innacuracies, errors, don't understood it or you think something
|
|||||||
Call us: 1-888-316-9775 • <a href="/contact">Contact Us</a><br>
|
Call us: 1-888-316-9775 • <a href="/contact">Contact Us</a><br>
|
||||||
MySQL and InnoDB are trademarks of Oracle Corp.<br>
|
MySQL and InnoDB are trademarks of Oracle Corp.<br>
|
||||||
Proudly running <a href="/software/percona-server/">Percona Server<span id="recentServerVersion"></span></a><br>
|
Proudly running <a href="/software/percona-server/">Percona Server<span id="recentServerVersion"></span></a><br>
|
||||||
Copyright © 2006-2011 Percona Inc.<br>
|
Copyright © 2006-2013 Percona Ireland Ltd.<br>
|
||||||
<a href="/about-us/policies/">Copyright, Trademark, and Privacy Policy</a> • <a href="/sitemap/">Sitemap</a>
|
<a href="/about-us/policies/">Copyright, Trademark, and Privacy Policy</a> • <a href="/sitemap/">Sitemap</a>
|
||||||
<span class="inv"><!--[CDATA[</noindex-->]]></span>
|
<span class="inv"><!--[CDATA[</noindex-->]]></span>
|
||||||
</div>
|
</div>
|
||||||
|
21
docs/dev/how-to-fatpack-pod2rst
Normal file
21
docs/dev/how-to-fatpack-pod2rst
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
$ cpanm App::FatPacker
|
||||||
|
$ mkdir /tmp/pod2rst
|
||||||
|
$ cp util/pod2rst-fixed /tmp/pod2rst/
|
||||||
|
$ cd /tmp/pod2rst
|
||||||
|
$ mkdir lib
|
||||||
|
$ fatpack trace pod2rst-fixed
|
||||||
|
$ fatpack packlists-for `cat fatpacker.trace` >packlists
|
||||||
|
$ fatpack tree `cat packlists`
|
||||||
|
$ (echo "#!/usr/bin/env perl"; fatpack file; cat pod2rst-fixed) > pod2rst-fixed.packed
|
||||||
|
$ cp pod2rst-fixed.packed ~/percona-toolkit/util/
|
||||||
|
$ cd ~/
|
||||||
|
$ rm -rf /tmp/pod2rst
|
||||||
|
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
1. Don't do this from the root of the bzr repo. fatpack tries to be clever
|
||||||
|
and inlines everything under lib/
|
||||||
|
2. mkdir lib/ is to get around a bug(?) in fatpack
|
||||||
|
3. these two lines are safe to ignore:
|
||||||
|
File /tmp/pod2rst/fatlib/darwin-thread-multi-2level/auto/HTML/Parser/Parser.bs isn't a .pm file - can't pack this and if you hoped we were going to things may not be what you expected later
|
||||||
|
File /tmp/pod2rst/fatlib/darwin-thread-multi-2level/auto/HTML/Parser/Parser.bundle isn't a .pm file - can't pack this and if you hoped we were going to things may not be what you expected later
|
@@ -14,7 +14,7 @@ no libraries are installed.
|
|||||||
|
|
||||||
Percona Toolkit is derived from Maatkit and Aspersa, two of the best-known
|
Percona Toolkit is derived from Maatkit and Aspersa, two of the best-known
|
||||||
toolkits for MySQL server administration. It is developed and supported by
|
toolkits for MySQL server administration. It is developed and supported by
|
||||||
Percona Inc. For more information and other free, open-source software
|
Percona. For more information and other free, open-source software
|
||||||
developed by Percona, visit `http://www.percona.com/software/ <http://www.percona.com/software/>`_.
|
developed by Percona, visit `http://www.percona.com/software/ <http://www.percona.com/software/>`_.
|
||||||
|
|
||||||
Getting Percona Toolkit
|
Getting Percona Toolkit
|
||||||
|
@@ -40,7 +40,7 @@ Diff MySQL configuration files and server variables.
|
|||||||
|
|
||||||
=item pt-deadlock-logger
|
=item pt-deadlock-logger
|
||||||
|
|
||||||
Extract and log MySQL deadlock information.
|
Log MySQL deadlocks.
|
||||||
|
|
||||||
=item pt-diskstats
|
=item pt-diskstats
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ Convert queries into fingerprints.
|
|||||||
|
|
||||||
=item pt-fk-error-logger
|
=item pt-fk-error-logger
|
||||||
|
|
||||||
Extract and log MySQL foreign key errors.
|
Log MySQL foreign key errors.
|
||||||
|
|
||||||
=item pt-heartbeat
|
=item pt-heartbeat
|
||||||
|
|
||||||
@@ -82,10 +82,6 @@ Watch process IO and print a table of file and I/O activity.
|
|||||||
|
|
||||||
Kill MySQL queries that match certain criteria.
|
Kill MySQL queries that match certain criteria.
|
||||||
|
|
||||||
=item pt-log-player
|
|
||||||
|
|
||||||
Replay MySQL query logs.
|
|
||||||
|
|
||||||
=item pt-mext
|
=item pt-mext
|
||||||
|
|
||||||
Look at many samples of MySQL C<SHOW GLOBAL STATUS> side-by-side.
|
Look at many samples of MySQL C<SHOW GLOBAL STATUS> side-by-side.
|
||||||
@@ -102,13 +98,9 @@ ALTER tables without locking them.
|
|||||||
|
|
||||||
Aggregate GDB stack traces for a selected program.
|
Aggregate GDB stack traces for a selected program.
|
||||||
|
|
||||||
=item pt-query-advisor
|
|
||||||
|
|
||||||
Analyze queries and advise on possible problems.
|
|
||||||
|
|
||||||
=item pt-query-digest
|
=item pt-query-digest
|
||||||
|
|
||||||
Analyze query execution logs and generate a query report, filter, replay, or transform queries for MySQL, PostgreSQL, memcached, and more.
|
Analyze MySQL queries from logs, processlist, and tcpdump.
|
||||||
|
|
||||||
=item pt-show-grants
|
=item pt-show-grants
|
||||||
|
|
||||||
@@ -132,7 +124,7 @@ Watch and restart MySQL replication after errors.
|
|||||||
|
|
||||||
=item pt-stalk
|
=item pt-stalk
|
||||||
|
|
||||||
Gather forensic data about MySQL when a problem occurs.
|
Collect forensic data about MySQL when problems occur.
|
||||||
|
|
||||||
=item pt-summary
|
=item pt-summary
|
||||||
|
|
||||||
@@ -150,17 +142,9 @@ Synchronize MySQL table data efficiently.
|
|||||||
|
|
||||||
Analyze how queries use tables.
|
Analyze how queries use tables.
|
||||||
|
|
||||||
=item pt-tcp-model
|
|
||||||
|
|
||||||
Transform tcpdump into metrics that permit performance and scalability modeling.
|
|
||||||
|
|
||||||
=item pt-trend
|
|
||||||
|
|
||||||
(DEPRECATED) Compute statistics over a set of time-series data points.
|
|
||||||
|
|
||||||
=item pt-upgrade
|
=item pt-upgrade
|
||||||
|
|
||||||
Execute queries on multiple servers and check for differences.
|
Verify that query results are identical on different servers.
|
||||||
|
|
||||||
=item pt-variable-advisor
|
=item pt-variable-advisor
|
||||||
|
|
||||||
@@ -574,6 +558,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
|||||||
|
|
||||||
=head1 VERSION
|
=head1 VERSION
|
||||||
|
|
||||||
Percona Toolkit v2.1.8 released 2012-12-21
|
Percona Toolkit v2.2.1 released 2013-03-14
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
@@ -1,6 +1,270 @@
|
|||||||
Release Notes
|
Release Notes
|
||||||
*************
|
*************
|
||||||
|
|
||||||
|
v2.2.1 released 2013-03-14
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Percona Toolkit 2.2.1 has been released. This is the first release in
|
||||||
|
the new 2.2 series which supersedes the 2.1 series and renders the 2.0
|
||||||
|
series obsolete. We plan to do one more bug fix release for 2.1 (2.1.10),
|
||||||
|
but otherwise all new development and fixes and will now focus on 2.2.
|
||||||
|
|
||||||
|
Percona Toolkit 2.2 has been several months in the making, and it turned
|
||||||
|
out very well, with many more new features, changes, and improvements than
|
||||||
|
originally anticipated. Here are the highlights:
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
* Official support for MySQL 5.6
|
||||||
|
|
||||||
|
We started beta support for MySQL 5.6 in 2.1.8 when 5.6 was still beta.
|
||||||
|
Now that 5.6 is GA, so is our support for it. Check out the Percona Toolkit
|
||||||
|
supported platforms and versions:
|
||||||
|
http://www.percona.com/mysql-support/policies/percona-toolkit-supported-platforms-and-versions
|
||||||
|
|
||||||
|
When you upgrade to MySQL 5.6, be sure to upgrade to Percona Toolkit 2.2, too.
|
||||||
|
|
||||||
|
* Official support for Percona XtraDB Cluster (PXC)
|
||||||
|
|
||||||
|
We also started beta support for Percona XtraDB Cluster in 2.1.8, but
|
||||||
|
now that support is official in 2.2 because we have had many months to
|
||||||
|
work with PXC and figure out which tools work with it and how. There's
|
||||||
|
still one noticeable omission: pt-table-sync. It's still unclear if
|
||||||
|
or how one would sync a cluster that, in theory, doesn't become out-of-sync.
|
||||||
|
As Percona XtraDB Cluster develops, Percona Toolkit will continue to
|
||||||
|
evolve to support it.
|
||||||
|
|
||||||
|
* pt-online-schema-change (pt-osc) is much more resilient
|
||||||
|
|
||||||
|
pt-online-schema-change 2.1 has been a great success, and people have been
|
||||||
|
using it for evermore difficult and challenging tasks. Consequently, we
|
||||||
|
needed to make it "try harder", even though it already tried pretty hard
|
||||||
|
to keep working despite recoverable errors and such. Whereas pt-osc 2.1
|
||||||
|
only retries certain operations, pt-osc 2.2 retries every critical operation,
|
||||||
|
and its tries and wait time between tries for all operations are configurable.
|
||||||
|
Also, we removed --lock-wait-timeout which set innodb_lock_wait_timeout
|
||||||
|
because that now conflicts, or is at least confused with, lock_wait_timeout
|
||||||
|
(introduced in MySQL 5.5) for metadata locks. Now --set-vars is used to
|
||||||
|
set both of these (or any) system variables. For a quick intro to metadata
|
||||||
|
locks and how they may affect you, see Ovais's article:
|
||||||
|
http://www.mysqlperformanceblog.com/2013/02/01/implications-of-metadata-locking-changes-in-mysql-5-5/
|
||||||
|
|
||||||
|
What does this all mean? In short: pt-online-schema-change 2.2 is far more
|
||||||
|
resilient out of the box. It's also aware of metadata locks now, whereas
|
||||||
|
2.1 was not really aware of them. And it's highly configurable, so you can
|
||||||
|
make the tool try _very_ hard to keep working.
|
||||||
|
|
||||||
|
* pt-upgrade is brand-new
|
||||||
|
|
||||||
|
pt-upgrade was written once long ago, thrown into the world, and then never
|
||||||
|
heard from again... until now. Now that we have four base versions of
|
||||||
|
MySQL (5.0, 5.1, 5.5, and 5.6), plus at least four major forks (Percona
|
||||||
|
Server, MariaDB, Percona XtraDB Cluster, and MariaDB Galera Cluster),
|
||||||
|
upgrades are fashionable, so to speak. Problem is: "original" pt-upgrade
|
||||||
|
was too noisy and too complex. pt-upgrade 2.2 is far simpler and far
|
||||||
|
easier to use. It's basically what you expect from such a tool.
|
||||||
|
|
||||||
|
Moreover, it has a really helpful new feature: "reference results", i.e.
|
||||||
|
saved results from running queries on a server. Granted, this can take
|
||||||
|
_a lot_ of disk space, but it allows you to "run now, compare later."
|
||||||
|
|
||||||
|
If you're thinking about upgrading, give pt-upgrade a try. It also reads
|
||||||
|
every type of log now (slow, general, binary, and tcpdump), so you shouldn't
|
||||||
|
have a problem finding queries to run and compare.
|
||||||
|
|
||||||
|
* pt-query-digest is simpler
|
||||||
|
|
||||||
|
pt-query-digest 2.2 has fewer options now. Basically, we re-focused it
|
||||||
|
on its primary objective: analyzing MySQL query logs. So the ability
|
||||||
|
to parse memcached, Postgres, Apache, and other logs was removed. We
|
||||||
|
also removed several options that probably nobody ever used, and
|
||||||
|
changed/renamed other options to be more logical. The result is a simpler,
|
||||||
|
more focused tool, i.e. less overwhelming.
|
||||||
|
|
||||||
|
Also, pt-query-digest 2.2 can save results in JSON format (--output=json).
|
||||||
|
This feature is still in development while we determine the optimal
|
||||||
|
JSON structure.
|
||||||
|
|
||||||
|
* Version check is on by default
|
||||||
|
|
||||||
|
Way back in 2.1.4, released September/October 2012, we introduced a feature
|
||||||
|
called "version check" into most tools: http://percona.com/version-check
|
||||||
|
It's like a lot of software that automatically checks for updates, but
|
||||||
|
it's also more: it's a free service from Percona that advises when certain
|
||||||
|
programs (Percona Toolkit tools, MySQL, Perl, etc.) are either out of date
|
||||||
|
or are known bad versions. For example, there are two versions of the
|
||||||
|
DBD::mysql Perl module that have problems. And there are certain versions
|
||||||
|
of MySQL that have critical bugs. Version check will warn you about these
|
||||||
|
if your system is running them.
|
||||||
|
|
||||||
|
What's new in 2.2 is that, whereas this feature (specifically, the option
|
||||||
|
in tools: --version-check) was off by default, now it's on by default.
|
||||||
|
If the IO::Socket::SSL Perl module is installed (easily available through
|
||||||
|
your package manager), it will use a secure (https) connection over the web,
|
||||||
|
else it will use a standard (http) connection.
|
||||||
|
|
||||||
|
Check out http://percona.com/version-check for more information.
|
||||||
|
|
||||||
|
* pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player are gone
|
||||||
|
|
||||||
|
We removed pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player.
|
||||||
|
Granted, no tool is ever really gone: if you need one of these tools,
|
||||||
|
get it from 2.1. pt-log-player is now superseded by Percona Playback
|
||||||
|
(http://www.percona.com/doc/percona-playback/). pt-query-advisor was
|
||||||
|
removed so that we can focus our efforts on its online counterpart instead:
|
||||||
|
https://tools.percona.com/query-advisor. The other tools were special
|
||||||
|
projects that were not widely used.
|
||||||
|
|
||||||
|
* pt-stalk and pt-mysql-summary have built-in MySQL options
|
||||||
|
|
||||||
|
No more "pt-stalk -- -h db1 -u me". pt-stalk 2.2 and pt-mysql-summary 2.2
|
||||||
|
have all the standard MySQL options built-in, like other tools: --user,
|
||||||
|
--host, --port, --password, --socket, --defaults-file. So now the command
|
||||||
|
line is what you expect: pt-stalk -h dhb1 -u me.
|
||||||
|
|
||||||
|
* pt-stalk --no-stalk is no longer magical
|
||||||
|
|
||||||
|
Originally, pt-stalk --no-stalk was meant to simulate pt-collect, i.e.
|
||||||
|
collect once and exit. To do that, the tool magically set some options
|
||||||
|
and clobbered others, resulting in no way to do repeated collections
|
||||||
|
at intervals. Now --no-stalk means only that: don't stalk, just collect,
|
||||||
|
respecting --interval and --iterations as usual. So to collect once
|
||||||
|
and exit: pt-stalk --no-stalk --iterations 1.
|
||||||
|
|
||||||
|
* pt-fk-error-logger and pt-deadlock-logger are standardized
|
||||||
|
|
||||||
|
Similar to the pt-stalk --no-stalk changes, pt-fk-error-logger and
|
||||||
|
pt-deadlock-logger received mini overhauls in 2.2 to make their
|
||||||
|
run-related options (--run-time, --interval, --iterations) standard.
|
||||||
|
If you hadn't noticed, one tool would run forever by default, while
|
||||||
|
the other would run once and exit. And each treated their run-related
|
||||||
|
options a little differently. This magic is gone now: both tools run
|
||||||
|
forever by default, so specify --iterations or --run-time to limit how
|
||||||
|
long they run.
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
There were other miscellaneous bug fixes, too. See
|
||||||
|
https://launchpad.net/percona-toolkit/+milestone/2.2.1 for the full list.
|
||||||
|
|
||||||
|
As the first release in a new series, 2.2 features are not yet finalized.
|
||||||
|
In other words, we may change things like the pt-query-digest --output json
|
||||||
|
format in future releases after receiving real-world feedback.
|
||||||
|
|
||||||
|
Percona Toolkit 2.2 is an exciting release with many helpful new
|
||||||
|
features. Users are encouraged to begin upgrading, particularly given
|
||||||
|
that, except for the forthcoming 2.1.10 release, no more work will be
|
||||||
|
done on 2.1 (unless you're a Percona customer with a support contract or
|
||||||
|
other agreement).
|
||||||
|
|
||||||
|
If you upgrade from 2.1 to 2.2, be sure to re-read tools' documentation
|
||||||
|
to see what has changed because much as changed for certain tools.
|
||||||
|
|
||||||
|
Percona Toolkit packages can be downloaded from
|
||||||
|
http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
|
||||||
|
Repositories (http://www.percona.com/software/repositories/).
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
---------
|
||||||
|
|
||||||
|
* Official support for MySQL 5.6
|
||||||
|
* Official support for Percona XtraDB Cluster
|
||||||
|
* Redesigned pt-query-digest
|
||||||
|
* Redesigned pt-upgrade
|
||||||
|
* Redesigned pt-fk-error-logger
|
||||||
|
* Redesigned pt-deadlock-logger
|
||||||
|
* Changed --set-vars in all tools
|
||||||
|
* Renamed --retries to --tries in pt-online-schema-change
|
||||||
|
* Added --check-read-only to pt-heartbeat
|
||||||
|
* Added MySQL options to pt-mysql-summary
|
||||||
|
* Added MySQL options to pt-stalk
|
||||||
|
* Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars)
|
||||||
|
* Removed --lock-wait-timeout from pt-table-checksum (use --set-vars)
|
||||||
|
* Removed pt-query-advisor
|
||||||
|
* Removed pt-tcp-model
|
||||||
|
* Removed pt-trend
|
||||||
|
* Removed pt-log-player
|
||||||
|
* Enabled --version-check by default in all tools
|
||||||
|
* Fixed bug 1008796: Several tools don't have --database
|
||||||
|
* Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values
|
||||||
|
* Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options
|
||||||
|
* Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time
|
||||||
|
* Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE
|
||||||
|
* Fixed bug 1113301: pt-online-schema-change blocks on metadata locks
|
||||||
|
* Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically
|
||||||
|
* Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions
|
||||||
|
* Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found
|
||||||
|
|
||||||
|
v2.1.9 released 2013-02-14
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Percona Toolkit 2.1.9 has been released. This release primarily aims to
|
||||||
|
restore backwards-compatibility with pt-heartbeat 2.1.7 and older, but it
|
||||||
|
also has important bug fixes for other tools.
|
||||||
|
|
||||||
|
* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
|
||||||
|
* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
|
||||||
|
|
||||||
|
The previous release switched the time authority from Perl to MySQL, and from
|
||||||
|
local time to UTC. Unfortunately, these changes caused a loss of precision and,
|
||||||
|
if mixing versions of pt-heartbeat, made the tool report a huge amount of
|
||||||
|
replication lag. This release makes the tool compatible with pt-heartbeat
|
||||||
|
2.1.7 and older again, but the UTC behavior introduced in 2.1.8 is now only
|
||||||
|
available by specifying the new --utc option.
|
||||||
|
|
||||||
|
* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
|
||||||
|
|
||||||
|
This is an important bug fix for pt-table-sync: certain chunks from
|
||||||
|
pt-table-checksum resulted in an impossible WHERE, causing the false-positive
|
||||||
|
"Cannot nibble" error, if those chunks had diffs.
|
||||||
|
|
||||||
|
* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
|
||||||
|
|
||||||
|
MariaDB 5.5.28 (https://kb.askmonty.org/en/mariadb-5528-changelog/) fixed
|
||||||
|
a bug: "Added warnings for duplicate key errors when using INSERT IGNORE".
|
||||||
|
However, standard MySQL does not warn in this case, despite the docs saying
|
||||||
|
that it should. Since pt-online-schema-change has always intended to ignore
|
||||||
|
duplicate entry errors by using "INSERT IGNORE", it now handles the MariaDB
|
||||||
|
case by also ignoring duplicate entry errors in the code.
|
||||||
|
|
||||||
|
* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
|
||||||
|
|
||||||
|
pt-online-schema-change 2.1.9 handles another case of changing the primary key.
|
||||||
|
However, since changing the primary key is tricky, the tool stops if --alter
|
||||||
|
contains "DROP PRIMARY KEY", and you have to specify --no-check-alter to
|
||||||
|
acknowledge this case.
|
||||||
|
|
||||||
|
* Fixed bug 1099933: pt-stalk is too verbose, fills up log
|
||||||
|
|
||||||
|
Previously, pt-stalk printed a line for every check. Since the tool is
|
||||||
|
designed to be a long-running daemon, this could result in huge log files
|
||||||
|
with "matched=no" lines. The tool has a new --verbose option which makes it
|
||||||
|
quieter by default.
|
||||||
|
|
||||||
|
All users should upgrade, but in particular, users of versions 2.1.7 and
|
||||||
|
older are strongly recommended to skip 2.1.8 and go directly to 2.1.9.
|
||||||
|
|
||||||
|
Users of pt-heartbeat in 2.1.8 who prefer the UTC behavior should keep in
|
||||||
|
mind that they will have to use the --utc option after upgrading.
|
||||||
|
|
||||||
|
Percona Toolkit packages can be downloaded from
|
||||||
|
http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
|
||||||
|
Repositories (http://www.percona.com/software/repositories/).
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
---------
|
||||||
|
|
||||||
|
* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
|
||||||
|
* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
|
||||||
|
* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
|
||||||
|
* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
|
||||||
|
* Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function
|
||||||
|
* Fixed bug 823411: pt-query-digest shouldn't print "Error: none" for tcpdump
|
||||||
|
* Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors
|
||||||
|
* Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave
|
||||||
|
* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
|
||||||
|
* Fixed bug 1099933: pt-stalk is too verbose, fills up log
|
||||||
|
|
||||||
v2.1.8 released 2012-12-21
|
v2.1.8 released 2012-12-21
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
|
@@ -1,3 +1,22 @@
|
|||||||
|
# This program is copyright 2013 Percona Ireland Ltd.
|
||||||
|
# Feedback and improvements are welcome.
|
||||||
|
#
|
||||||
|
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
|
||||||
|
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
|
||||||
|
# licenses.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
|
# Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
# ###########################################################################
|
||||||
|
# Lmo::Meta package
|
||||||
|
# ###########################################################################
|
||||||
{
|
{
|
||||||
package Lmo::Meta;
|
package Lmo::Meta;
|
||||||
use strict;
|
use strict;
|
||||||
@@ -43,3 +62,6 @@ sub attributes_for_new {
|
|||||||
|
|
||||||
1;
|
1;
|
||||||
}
|
}
|
||||||
|
# ###########################################################################
|
||||||
|
# End Lmo::Meta package
|
||||||
|
# ###########################################################################
|
||||||
|
@@ -1,4 +1,24 @@
|
|||||||
# Mo::Object is the parent of every Mo-derived object. Here's where new
|
# This program is copyright 2013 Percona Ireland Ltd.
|
||||||
|
# Feedback and improvements are welcome.
|
||||||
|
#
|
||||||
|
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
|
||||||
|
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
|
||||||
|
# licenses.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
|
# Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
# ###########################################################################
|
||||||
|
# Lmo::Object package
|
||||||
|
# ###########################################################################
|
||||||
|
|
||||||
|
# Lmo::Object is the parent of every Mo-derived object. Here's where new
|
||||||
# and BUILDARGS gets inherited from.
|
# and BUILDARGS gets inherited from.
|
||||||
package Lmo::Object;
|
package Lmo::Object;
|
||||||
|
|
||||||
@@ -93,5 +113,7 @@ sub meta {
|
|||||||
return Lmo::Meta->new(class => $class);
|
return Lmo::Meta->new(class => $class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
# ###########################################################################
|
||||||
|
# End Lmo::Object package
|
||||||
|
# ###########################################################################
|
||||||
|
@@ -1,3 +1,23 @@
|
|||||||
|
# This program is copyright 2013 Percona Ireland Ltd.
|
||||||
|
# Feedback and improvements are welcome.
|
||||||
|
#
|
||||||
|
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
|
||||||
|
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
|
||||||
|
# licenses.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
|
# Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
# ###########################################################################
|
||||||
|
# Lmo::Role package
|
||||||
|
# ###########################################################################
|
||||||
|
|
||||||
package Lmo::Role;
|
package Lmo::Role;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
@@ -70,3 +90,6 @@ sub unimport {
|
|||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
# ###########################################################################
|
||||||
|
# End Lmo::Role package
|
||||||
|
# ###########################################################################
|
||||||
|
@@ -1,3 +1,22 @@
|
|||||||
|
# This program is copyright 2013 Percona Ireland Ltd.
|
||||||
|
# Feedback and improvements are welcome.
|
||||||
|
#
|
||||||
|
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
|
||||||
|
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
|
||||||
|
# licenses.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
|
# Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
# ###########################################################################
|
||||||
|
# Lmo::Types package
|
||||||
|
# ###########################################################################
|
||||||
package Lmo::Types;
|
package Lmo::Types;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
@@ -96,3 +115,6 @@ sub _nested_constraints {
|
|||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
# ###########################################################################
|
||||||
|
# End Lmo::Types package
|
||||||
|
# ###########################################################################
|
||||||
|
@@ -1,4 +1,24 @@
|
|||||||
|
# This program is copyright 2013 Percona Ireland Ltd.
|
||||||
|
# Feedback and improvements are welcome.
|
||||||
|
#
|
||||||
|
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
|
||||||
|
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
|
||||||
|
# licenses.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
|
# Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
# ###########################################################################
|
||||||
|
# Lmo::Types package
|
||||||
|
# ###########################################################################
|
||||||
package Lmo::Utils;
|
package Lmo::Utils;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings qw( FATAL all );
|
use warnings qw( FATAL all );
|
||||||
require Exporter;
|
require Exporter;
|
||||||
@@ -6,7 +26,12 @@ our (@ISA, @EXPORT, @EXPORT_OK);
|
|||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
@ISA = qw(Exporter);
|
@ISA = qw(Exporter);
|
||||||
@EXPORT = @EXPORT_OK = qw(_install_coderef _unimport_coderefs _glob_for _stash_for);
|
@EXPORT = @EXPORT_OK = qw(
|
||||||
|
_install_coderef
|
||||||
|
_unimport_coderefs
|
||||||
|
_glob_for
|
||||||
|
_stash_for
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -44,3 +69,6 @@ sub _unimport_coderefs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
# ###########################################################################
|
||||||
|
# End Lmo::Utils package
|
||||||
|
# ###########################################################################
|
||||||
|
@@ -238,6 +238,41 @@ is(
|
|||||||
"No slave error"
|
"No slave error"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
# #############################################################################
|
||||||
|
# --check-read-only
|
||||||
|
# #############################################################################
|
||||||
|
|
||||||
|
diag(`/tmp/12345/use -u root -e "GRANT ALL ON *.* TO 'bob'\@'%' IDENTIFIED BY 'msandbox'"`);
|
||||||
|
diag(`/tmp/12345/use -u root -e "REVOKE SUPER ON *.* FROM 'bob'\@'%'"`);
|
||||||
|
|
||||||
|
$output = output(
|
||||||
|
sub { pt_heartbeat::main("u=bob,F=/tmp/12346/my.sandbox.cnf",
|
||||||
|
qw(-D test --update --replace --run-time 1))
|
||||||
|
},
|
||||||
|
stderr => 1
|
||||||
|
);
|
||||||
|
|
||||||
|
like(
|
||||||
|
$output,
|
||||||
|
qr/--read-only/,
|
||||||
|
"By default, fails if the server is read_only=1"
|
||||||
|
);
|
||||||
|
|
||||||
|
$output = output(
|
||||||
|
sub { pt_heartbeat::main("u=bob,F=/tmp/12346/my.sandbox.cnf",
|
||||||
|
qw(-D test --update --replace --run-time 1 --check-read-only))
|
||||||
|
},
|
||||||
|
stderr => 1
|
||||||
|
);
|
||||||
|
|
||||||
|
unlike(
|
||||||
|
$output,
|
||||||
|
qr/--read-only/,
|
||||||
|
"...but just skips doing any work and waits if --check-read-only was specified"
|
||||||
|
);
|
||||||
|
|
||||||
|
diag(`/tmp/12345/use -u root -e "DROP USER 'bob'\@'%'"`);
|
||||||
|
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
# Done.
|
# Done.
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
|
@@ -358,6 +358,7 @@ build_rpm() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p rpm rpm/BUILD rpm/SOURCES rpm/RPMS rpm/SRPMS
|
mkdir -p rpm rpm/BUILD rpm/SOURCES rpm/RPMS rpm/SRPMS
|
||||||
|
mkdir -p RPM
|
||||||
cd rpm
|
cd rpm
|
||||||
local topdir=`pwd`
|
local topdir=`pwd`
|
||||||
|
|
||||||
@@ -375,7 +376,7 @@ build_rpm() {
|
|||||||
if [ ! -f "RPMS/noarch/$PKG-1.noarch.rpm" ]; then
|
if [ ! -f "RPMS/noarch/$PKG-1.noarch.rpm" ]; then
|
||||||
die "RPMS/noarch/$PKG-1.noarch.rpm did not build"
|
die "RPMS/noarch/$PKG-1.noarch.rpm did not build"
|
||||||
fi
|
fi
|
||||||
mv "RPMS/noarch/$PKG-1.noarch.rpm" $RELEASE_DIR
|
mv "RPMS/noarch/$PKG-1.noarch.rpm" $RELEASE_DIR/RPM
|
||||||
rm -rf $RELEASE_DIR/rpm
|
rm -rf $RELEASE_DIR/rpm
|
||||||
|
|
||||||
echo "OK"
|
echo "OK"
|
||||||
@@ -398,9 +399,9 @@ build_deb() {
|
|||||||
fi
|
fi
|
||||||
cp $BRANCH/config/deb/* $RELEASE_DIR/$PKG/debian/
|
cp $BRANCH/config/deb/* $RELEASE_DIR/$PKG/debian/
|
||||||
|
|
||||||
# Build Debian "binary" package.
|
# Build Debian binary and source packages.
|
||||||
cd $RELEASE_DIR/$PKG
|
cd $RELEASE_DIR/$PKG
|
||||||
dpkg-buildpackage -b -us -uc >$tmpdir/dpkg-buildpackage 2>&1
|
dpkg-buildpackage -us -uc >$tmpdir/dpkg-buildpackage 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
warn "dpkg-buildpackage has warnings; see $tmpdir/dpkg-buildpackage"
|
warn "dpkg-buildpackage has warnings; see $tmpdir/dpkg-buildpackage"
|
||||||
fi
|
fi
|
||||||
@@ -410,6 +411,9 @@ build_deb() {
|
|||||||
cd $RELEASE_DIR
|
cd $RELEASE_DIR
|
||||||
rm -rf *.changes >/dev/null
|
rm -rf *.changes >/dev/null
|
||||||
|
|
||||||
|
mkdir -p deb
|
||||||
|
mv percona-toolkit_* deb/
|
||||||
|
|
||||||
echo "OK"
|
echo "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -6,21 +6,21 @@ use English qw(-no_match_vars);
|
|||||||
|
|
||||||
eval {
|
eval {
|
||||||
my ($year, $copyright) = @ARGV;
|
my ($year, $copyright) = @ARGV;
|
||||||
my ($years) = $copyright =~ m/(\S+) Percona Inc./;
|
my ($years) = $copyright =~ m/(\S+) Percona Ireland Ltd/;
|
||||||
my ($first_year, $last_year) = split /-/, $years;
|
my ($first_year, $last_year) = split /-/, $years;
|
||||||
|
|
||||||
my $new_copyright;
|
my $new_copyright;
|
||||||
if ( $first_year && $last_year ) {
|
if ( $first_year && $last_year ) {
|
||||||
$new_copyright = "$first_year-$year Percona Inc."
|
$new_copyright = "$first_year-$year Percona Ireland Ltd"
|
||||||
}
|
}
|
||||||
elsif ( $first_year < $year ) {
|
elsif ( $first_year < $year ) {
|
||||||
$new_copyright = "$first_year-$year Percona Inc."
|
$new_copyright = "$first_year-$year Percona Ireland Ltd"
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$new_copyright = "$first_year Percona Inc."
|
$new_copyright = "$first_year Percona Ireland Ltd"
|
||||||
}
|
}
|
||||||
|
|
||||||
$copyright =~ s/\S+ Percona Inc./$new_copyright/;
|
$copyright =~ s/\S+ Percona Ireland Ltd/$new_copyright/;
|
||||||
print $copyright;
|
print $copyright;
|
||||||
};
|
};
|
||||||
die $EVAL_ERROR if $EVAL_ERROR;
|
die $EVAL_ERROR if $EVAL_ERROR;
|
||||||
|
@@ -6,8 +6,6 @@ use English qw(-no_match_vars);
|
|||||||
|
|
||||||
use IO::File;
|
use IO::File;
|
||||||
|
|
||||||
use HTML::Entities;
|
|
||||||
|
|
||||||
use File::Basename qw(basename);
|
use File::Basename qw(basename);
|
||||||
use Pod::POM::View::Restructured;
|
use Pod::POM::View::Restructured;
|
||||||
|
|
||||||
|
5771
util/pod2rst-fixed.packed
Executable file
5771
util/pod2rst-fixed.packed
Executable file
File diff suppressed because it is too large
Load Diff
@@ -68,18 +68,20 @@ RST_DIR=$DOCS_DIR/user
|
|||||||
|
|
||||||
fix_html () {
|
fix_html () {
|
||||||
local name="$1"
|
local name="$1"
|
||||||
perl -MFile::Basename=basename -MFile::Slurp=read_file,write_file -le '
|
perl -MFile::Basename=basename -le '
|
||||||
my $f = shift;
|
my $f = shift;
|
||||||
my $tool = basename($f);
|
my $tool = basename($f);
|
||||||
$tool =~ s/\.html//;
|
$tool =~ s/\.html//;
|
||||||
my $out = read_file($f);
|
my $out = do { open my $fh, '<', $f or die $!; local $/; <$fh> };
|
||||||
$out =~ s{
|
$out =~ s{
|
||||||
\Q<dt id="\E(cmdoption-$tool--)\Q">\E\s*
|
\Q<dt id="\E(cmdoption-$tool--)\Q">\E\s*
|
||||||
\Q<tt class="descname">--</tt><tt class="descclassname">\E([^<]+)
|
\Q<tt class="descname">--</tt><tt class="descclassname">\E([^<]+)
|
||||||
\Q</tt><a class="headerlink" href="\E[^"]+"
|
\Q</tt><a class="headerlink" href="\E[^"]+"
|
||||||
}{<dt id="$1$2">
|
}{<dt id="$1$2">
|
||||||
<tt class="descname">--$2</tt><tt class="descclassname"></tt><a class="headerlink" href="#$1$2"}xg;
|
<tt class="descname">--$2</tt><tt class="descclassname"></tt><a class="headerlink" href="#$1$2"}xg;
|
||||||
write_file($f, $out);
|
open my $fh, '>', $f or die "Cannot open $f for writing: $!";
|
||||||
|
print { $f } $out;
|
||||||
|
close $fh or die "Cannot close $f: $!";
|
||||||
' $RST_DIR/html/$name.html
|
' $RST_DIR/html/$name.html
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +93,7 @@ write_rst() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$BRANCH/util/pod2rst-fixed $file > $RST_DIR/$tool.rst
|
$BRANCH/util/pod2rst-fixed.packed $file > $RST_DIR/$tool.rst
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "Wrote $RST_DIR/$tool.rst"
|
echo "Wrote $RST_DIR/$tool.rst"
|
||||||
else
|
else
|
||||||
@@ -121,7 +123,7 @@ write_sections() {
|
|||||||
$BRANCH/util/extract-text $DOCS_DIR/percona-toolkit.pod "^=head1 $header" "^=head1|=cut" > /tmp/$filename.pod
|
$BRANCH/util/extract-text $DOCS_DIR/percona-toolkit.pod "^=head1 $header" "^=head1|=cut" > /tmp/$filename.pod
|
||||||
|
|
||||||
# Convert POD to RST and remove all the Perl highlight blocks.
|
# Convert POD to RST and remove all the Perl highlight blocks.
|
||||||
cat /tmp/$filename.pod | pod2rst | sed -e 's/.. highlight:: perl//g' > /tmp/$filename.tmp
|
$BRANCH/util/pod2rst-fixed.packed /tmp/$filename.pod | sed -e 's/.. highlight:: perl//g' > /tmp/$filename.tmp
|
||||||
|
|
||||||
# Remove extra blank lines.
|
# Remove extra blank lines.
|
||||||
cat -s /tmp/$filename.tmp > $RST_DIR/$filename.rst
|
cat -s /tmp/$filename.tmp > $RST_DIR/$filename.rst
|
||||||
|
Reference in New Issue
Block a user