Merge lp:~percona-toolkit-dev/percona-toolkit/pt-online-schema-change-not-properly-detecting-foreign-keys-1315130 into lp:~percona-toolkit-dev/percona-toolkit/release-2.2.9

Proposed by Frank Cizmich
Status: Merged
Merged at revision: 609
Proposed branch: lp:~percona-toolkit-dev/percona-toolkit/pt-online-schema-change-not-properly-detecting-foreign-keys-1315130
Merge into: lp:~percona-toolkit-dev/percona-toolkit/release-2.2.9
Diff against target: 2558 lines (+2492/-1) (has conflicts)
6 files modified
Changelog (+5/-0)
bin/pt-online-schema-change (+1/-1)
config/deb/changelog (+17/-0)
docs/percona-toolkit.pod (+4/-0)
docs/release_notes.rst (+2387/-0)
t/pt-online-schema-change/bug-1315130.t (+78/-0)
Text conflict in Changelog
Text conflict in config/deb/changelog
Text conflict in docs/percona-toolkit.pod
Text conflict in docs/release_notes.rst
To merge this branch: bzr merge lp:~percona-toolkit-dev/percona-toolkit/pt-online-schema-change-not-properly-detecting-foreign-keys-1315130
Reviewer Review Type Date Requested Status
Frank Cizmich Pending
Review via email: mp+225539@code.launchpad.net

Description of the change

Instead of looking for the parent table in the child table's own schema (where the parent table might not actually be) we now look for it in the contraints "referenced_schema", where it actually is.
This lookup is done in table: information_schema.key_column_usage

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Changelog'
--- Changelog 2014-06-05 07:24:48 +0000
+++ Changelog 2014-07-03 18:13:52 +0000
@@ -1,7 +1,12 @@
1Changelog for Percona Toolkit1Changelog for Percona Toolkit
22
3<<<<<<< TREE
3v2.2.8 released 2014-06-044v2.2.8 released 2014-06-04
45
6=======
7v2.2.8 released 2014-05-30
8
9>>>>>>> MERGE-SOURCE
5 * Removed pt-agent10 * Removed pt-agent
6 * Added pt-slave-restart GTID support11 * Added pt-slave-restart GTID support
7 * Added pt-table-checksum --plugin12 * Added pt-table-checksum --plugin
813
=== modified file 'bin/pt-online-schema-change'
--- bin/pt-online-schema-change 2014-06-05 07:24:48 +0000
+++ bin/pt-online-schema-change 2014-07-03 18:13:52 +0000
@@ -9815,7 +9815,7 @@
9815 9815
9816 my $sql = "SELECT table_schema, table_name "9816 my $sql = "SELECT table_schema, table_name "
9817 . "FROM information_schema.key_column_usage "9817 . "FROM information_schema.key_column_usage "
9818 . "WHERE constraint_schema='$tbl->{db}' "9818 . "WHERE referenced_table_schema='$tbl->{db}' "
9819 . "AND referenced_table_name='$tbl->{tbl}'";9819 . "AND referenced_table_name='$tbl->{tbl}'";
9820 PTDEBUG && _d($sql);9820 PTDEBUG && _d($sql);
9821 my $rows = $cxn->dbh()->selectall_arrayref($sql);9821 my $rows = $cxn->dbh()->selectall_arrayref($sql);
98229822
=== modified file 'config/deb/changelog'
--- config/deb/changelog 2014-06-05 07:24:48 +0000
+++ config/deb/changelog 2014-07-03 18:13:52 +0000
@@ -1,3 +1,4 @@
1<<<<<<< TREE
1percona-toolkit (2.2.8) unstable; urgency=low2percona-toolkit (2.2.8) unstable; urgency=low
23
3 * Removed pt-agent4 * Removed pt-agent
@@ -12,6 +13,22 @@
1213
13 -- Percona Toolkit Developers <toolkit-dev@percona.com> Thu, 05 Jun 2014 07:07:52 +000014 -- Percona Toolkit Developers <toolkit-dev@percona.com> Thu, 05 Jun 2014 07:07:52 +0000
1415
16=======
17percona-toolkit (2.2.8) unstable; urgency=low
18
19 * Removed pt-agent
20 * Added pt-slave-restart GTID support
21 * Added pt-table-checksum --plugin
22 * Fixed bug 1304062: --ignore-tables does not work correctly
23 * Fixed bug 1295667: pt-deadlock-logger logs incorrect ts
24 * Fixed bug 1254233: pt-mysql-summary blank InnoDB section for 5.6
25 * Fixed bug 1286250: pt-online-schema-change requests password twice
26 * Fixed bug 965553: pt-query-digest dosn't fingerprint true/false literals correctly
27 * Fixed bug 290911: pt-show-grant --ask-pass prints "Enter password" to STDOUT
28
29 -- Percona Toolkit Developers <toolkit-dev@percona.com> Fri, 30 May 2014 16:14:53 +0000
30
31>>>>>>> MERGE-SOURCE
15percona-toolkit (2.2.7) unstable; urgency=low32percona-toolkit (2.2.7) unstable; urgency=low
1633
17 * Fixed bug 1279502: --version-check behaves like spyware34 * Fixed bug 1279502: --version-check behaves like spyware
1835
=== modified file 'docs/percona-toolkit.pod'
--- docs/percona-toolkit.pod 2014-06-05 07:24:48 +0000
+++ docs/percona-toolkit.pod 2014-07-03 18:13:52 +0000
@@ -557,6 +557,10 @@
557557
558=head1 VERSION558=head1 VERSION
559559
560<<<<<<< TREE
560Percona Toolkit v2.2.8 released 2014-06-05561Percona Toolkit v2.2.8 released 2014-06-05
562=======
563Percona Toolkit v2.2.8 released 2014-05-30
564>>>>>>> MERGE-SOURCE
561565
562=cut566=cut
563567
=== modified file 'docs/release_notes.rst'
--- docs/release_notes.rst 2014-06-05 07:24:48 +0000
+++ docs/release_notes.rst 2014-07-03 18:13:52 +0000
@@ -1,3 +1,4 @@
1<<<<<<< TREE
1Release Notes2Release Notes
2*************3*************
34
@@ -2395,3 +2396,2389 @@
2395---------2396---------
23962397
2397* Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit.2398* Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit.
2399=======
2400Release Notes
2401*************
2402
2403v2.2.8 released 2014-06-04
2404==========================
2405
2406Percona Toolkit 2.2.8 has been released. This release has two new features and six bug fixes.
2407
2408New Features:
2409
2410* pt-agent has been replaced by percona-agent. More information on percona-agent can be found in the `Introducing the 3-Minute MySQL Monitor <http://www.mysqlperformanceblog.com/2014/05/23/3-minute-mysql-monitor/>`_ blogpost.
2411* pt-slave-restart now supports MySQL 5.6 global transaction IDs.
2412
2413* pt-table-checkum now has new --plugin option which is similar to pt-online-schema-change --plugin
2414
2415Bugs Fixed:
2416
2417* Fixed bug 1254233: pt-mysql-summary was showing blank InnoDB section for 5.6 because it was using ``have_innodb`` variable which was removed in MySQL 5.6.
2418
2419* Fixed bug 965553: pt-query-digest didn't fingerprint true/false literals correctly.
2420
2421* Fixed bug 1286250: pt-online-schema-change was requesting password twice.
2422
2423* Fixed bug 1295667: pt-deadlock-logger was logging incorrect timestamp because tool wasn't aware of the time-zones.
2424
2425* Fixed bug 1304062: when multiple tables were specified with pt-table-checksum --ignore-tables, only one of them would be ignored.
2426
2427* Fixed bug : pt-show-grant --ask-pass option was asking for password in ``STDOUT`` instead of ``STDERR`` where it could be seen.
2428
2429Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
2430
2431v2.2.7 released 2014-02-20
2432==========================
2433
2434Percona Toolkit 2.2.7 has been released. This release has only one bug fix.
2435
2436* Fixed bug 1279502: --version-check behaves like spyware
2437
2438Although never used, --version-check had the ability to get any local program's version. This fix removed that ability.
2439
2440Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
2441
2442v2.2.6 released 2013-12-18
2443==========================
2444
2445Percona Toolkit 2.2.6 has been released. This release has 16 bug fixes and a few new features. One bug fix is very important, so 2.2 users are strongly encouraged to upgrade:
2446
2447* Fixed bug 1223458: pt-table-sync deletes child table rows
2448
2449Buried in the pt-table-sync docs is this warning:
2450
2451 Also be careful with tables that have foreign key constraints with C<ON DELETE>
2452 or C<ON UPDATE> definitions because these might cause unintended changes on the
2453 child tables.
2454
2455Until recently, either no one had this problem, or no one reported it, or no one realized that pt-table-sync caused it. In the worst case, pt-table-sync could delete all rows in child tables, which is quite surprising and bad. As of 2.2.6, pt-table-sync has option --[no]check-child-tables which is on by default. In cases were this "bug" can happen, pt-table-sync prints a warning and skips the table. Read the option's docs to learn more.
2456
2457Another good bug fix is:
2458
2459* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes
2460
2461After saying "pt-duplicate-key-checker hasn't had a bug in years" at enough conferences, users proved us wrong--thanks! The tool is better now.
2462
2463* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table
2464
2465This was poor feedback from the tool more than a bug. There was a point in the tool where it waited forever for slaves to catch up, but it did this silently. Now the tool reports --progress while it's waiting and it reports which slaves, if any, it found and intends to check. In short: its feedback delivers a better user experience.
2466
2467Finally, this bug (more like a feature request/change) might be a backwards-incompatible change:
2468
2469* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled
2470
2471The change is that pt-mysql-summary no longer prompts to dump and summarize schemas. To do this, you must specify --databases or, a new option, --all-databases. Several users said this behavior was better, so we made the change even though some might consider it a backwards-incompatible change.
2472
2473Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
2474
2475Changelog
2476---------
2477
2478* Added pt-query-digest support for Percona Server slow log rate limiting
2479* Added pt-agent --ping
2480* Added pt-mysql-summary --all-databases
2481* Added pt-stalk --sleep-collect
2482* Added pt-table-sync --[no]check-child-tables
2483* Fixed bug 1249150: PTDEBUG prints some info to STDOUT
2484* Fixed bug 1248363: pt-agent requires restart after changing MySQL options
2485* Fixed bug 1248778: pt-agent --install on PXC is not documented
2486* Fixed bug 1250973: pt-agent --install doesn't check for previous install
2487* Fixed bug 1250968: pt-agent --install suggest MySQL user isn't quoted
2488* Fixed bug 1251004: pt-agent --install error about slave is confusing
2489* Fixed bug 1251726: pt-agent --uninstall fails if agent is running
2490* Fixed bug 1248785: pt-agent docs don't list privs required for its MySQL user
2491* Fixed bug 1215016: pt-deadlock-logger docs use pt-fk-error-logger
2492* Fixed bug 1201443: pt-duplicate-key-checker error when EXPLAIN key_len=0
2493* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes
2494* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled
2495* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table
2496* Fixed bug 1249149: pt-query-digest stats prints to STDOUT instead of STDERR
2497* Fixed bug 1071979: pt-stak error parsing df with NFS
2498* Fixed bug 1223458: pt-table-sync deletes child table rows
2499
2500v2.2.5 released 2013-10-16
2501==========================
2502
2503Percona Toolkit 2.2.5 has been released. This release has four new features and a number of bugfixes.
2504
2505Query_time histogram has been added to the pt-query-digest JSON output, not the actual chart but the values necessary to render the chart later, so the values for each bucket.
2506
2507As of pt-table-checksum 2.2.5, skipped chunks cause a non-zero exit status. An exit status of zero or 32 is equivalent to a zero exit status with skipped chunks in previous versions of the tool.
2508
2509New --no-drop-triggers option has been implemented for pt-online-schema-change in case users want to rename the tables manually, when the load is low.
2510
2511New --new-table-name option has been added to pt-online-schema-change which can be used to specify the temporary table name.
2512
2513* Fixed bug #1199589: pt-archiver would delete the data even with the --dry-run option.
2514
2515* Fixed bug #821692: pt-query-digest didn't distill LOAD DATA correctly.
2516
2517* Fixed bug #984053: pt-query-digest didn't distill INSERT/REPLACE without INTO correctly.
2518
2519* Fixed bug #1206677: pt-agent docs were referencing wrong web address.
2520
2521* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster would crash if no nodes were found.
2522
2523Percona Toolkit packages can be downloaded from
2524http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
2525Repositories (http://www.percona.com/software/repositories
2526
2527Changelog
2528---------
2529
2530* Added Query_time histogram bucket counts to pt-query-digest JSON output
2531* Added pt-online-schema-change --[no]drop-triggers option
2532* Fixed bug #1199589: pt-archiver deletes data despite --dry-run
2533* Fixed bug #944051: pt-table-checksum has ambiguous exit status
2534* Fixed bug #1209436: pt-kill --log-dsn may not work on Perl 5.8
2535* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster crashes if no nodes are found
2536* Fixed bug #1215608: pt-online-schema-change new table suffix is hard-coded
2537* Fixed bug #1229861: pt-table-sync quotes float values, can't sync
2538* Fixed bug #821692: pt-query-digest doesn't distill LOAD DATA correctly
2539* Fixed bug #984053: pt-query-digest doesn't distill INSERT/REPLACE without INTO correctly
2540* Fixed bug #1206728: pt-deadlock-logger 2.2 requires DSN on command line
2541* Fixed bug #1226721: pt-agent on CentOS 5 fails to send data
2542* Fixed bug #821690: pt-query-digest doesn't distill IF EXISTS correctly
2543* Fixed bug #1206677: pt-agent docs reference clodu.percona.com
2544
2545v2.2.4 released 2013-07-18
2546==========================
2547
2548Percona Toolkit 2.2.4 has been released. This release two new features and a number of bugfixes.
2549
2550pt-query-digest --output json includes query examples as of v2.2.3. Some people might not want this because it exposes real data. New option, --output json-anon, has been implemented. This option will provide the same data without query examples. It's "anonymous" in the sense that there's no identifying data; nothing more than schema and table structs can be inferred from fingerprints.
2551
2552When using drop swap with pt-online-schema-change there is some production impact. This impact can be measured because tool outputs the current timestamp on lines for operations that may take awhile.
2553
2554* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6
2555pt-table-checksum would fail if variable explicit_defaults_for_timestamp was enabled in MySQL 5.6.
2556
2557* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0"
2558Trying to assign 0 to any variable by using --set-vars option would cause “Invalid --set-vars value” message.
2559
2560* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get
2561Fixed the typo in the pt-online-schema-change code that could lead to a tool crash when copying the rows.
2562
2563* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality
2564pt-table-checksum was using the first non-unique index instead of the one with the highest cardinality due to a sorting bug.
2565
2566Percona Toolkit packages can be downloaded from
2567http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
2568Repositories (http://www.percona.com/software/repositories
2569
2570Changelog
2571---------
2572
2573* Added pt-query-digest anonymous JSON output
2574* Added pt-online-schema-change timestamp output
2575* Fixed bug #1136559: pt-table-checksum: Deep recursion on subroutine "SchemaIterator::_iterate_dbh"
2576* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6
2577* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0"
2578* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get
2579* Fixed bug #1195034: pt-deadlock-logger error: Use of uninitialized value $ts in pattern match (m//)
2580* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality
2581* Fixed bug #1168434: pt-upgrade reports differences on NULL
2582* Fixed bug #1172317: pt-sift does not work if pt-stalk did not collect due to a full disk
2583* Fixed bug #1176010: pt-query-digest doesn't group db and `db` together
2584* Fixed bug #1137556: pt-heartbeat docs don't account for --utc
2585* Fixed bug #1168106: pt-variable-advisor has the wrong default value for innodb_max_dirty_pages_pct in 5.5 and 5.6
2586* Fixed bug #1168110: pt-variable-advisor shows key_buffer_size in 5.6 as unconfigured (even though it is)
2587* Fixed bug #1171968: pt-query-digest docs don't mention --type=rawlog
2588* Fixed bug #1174956: pt-query-digest and pt-fingerprint don't strip some multi-line comments
2589
2590
2591v2.2.3 released 2013-06-17
2592==========================
2593
2594Percona Toolkit 2.2.3 has been released which has only two changes: pt-agent
2595and a bug fix for pt-online-schema-change. pt-agent is not a command line
2596tool but a client-side agent for Percona Cloud Tools. Visit
2597https://cloud.percona.com for more information. The pt-online-schema-change
2598bug fix is bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02):
2599"Table 'db._t_new' doesn't exist". This happens when the tool's triggers
2600cannot be dropped.
2601
2602Percona Toolkit packages can be downloaded from
2603http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
2604Repositories (http://www.percona.com/software/repositories/).
2605
2606Changelog
2607---------
2608
2609* Added new tool: pt-agent
2610* Fixed bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02): Table 'db._t_new' doesn't exist"
2611
2612v2.2.2 released 2013-04-24
2613==========================
2614
2615Percona Toolkit 2.2.2 has been released. This is the second release of
2616the 2.2 series and aims to fix bugs in the previous release and provide
2617usability enhacements to the toolkit.
2618
2619Users may note the revival of the --show-all option in pt-query-digest.
2620This had been removed in 2.2.1, but resulted in too much output in
2621certain cases.
2622
2623A new --recursion-method was added to pt-table-checksum: cluster. This
2624method attempts to auto-discover cluster nodes, alleviating the need to
2625specify cluster node DSNs in a DSN table (--recursion-method=dsn).
2626
2627The following highlights some of the more interesting and "hot" bugs in
2628this release:
2629
2630* Bug #1127450: pt-archiver --bulk-insert may corrupt data
2631
2632pt-archiver --bulk-insert didn't work with --charset UTF-8. This revealed
2633a case where the tool could corrupt data by double-encoding. This is now
2634fixed, but remains relatively dangerous if using DBD::mysql 3.0007 which
2635does not handle UTF-8 properly.
2636
2637* Bug #1163372: pt-heartbeat --utc --check always returns 0
2638
2639Unfortunately, the relatively new --utc option for pt-heart was still
2640broken because "[MySQL] interprets date as a value in the current time zone
2641and converts it to an internal value in UTC." Now the tool works correctly
2642with --utc by specifying "SET time_zone='+0:00'", and older versions of
2643the tool can be made to work by specifying --set-vars "time_zone='+0:00'".
2644
2645* Bug #821502: Some tools don't have --help or --version
2646
2647pt-align, pt-mext, pt-pmp and pt-sift now have both options.
2648
2649This is another solid bug fix release, and all users are encouraged to upgrade.
2650
2651Percona Toolkit packages can be downloaded from
2652http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
2653Repositories (http://www.percona.com/software/repositories/).
2654
2655Changelog
2656---------
2657
2658* Added --show-all to pt-query-digest
2659* Added --recursion-method=cluster to pt-table-checksum
2660* Fixed bug 1127450: pt-archiver --bulk-insert may corrupt data
2661* Fixed bug 1163372: pt-heartbeat --utc --check always returns 0
2662* Fixed bug 1156901: pt-query-digest --processlist reports duplicate queries for replication thread
2663* Fixed bug 1160338: pt-query-digest 2.2 prints unwanted debug info on tcpdump parsing errors
2664* Fixed bug 1160918: pt-query-digest 2.2 prints too many string values
2665* Fixed bug 1156867: pt-stalk prints the wrong variable name in verbose mode when --function is used
2666* Fixed bug 1081733: pt-stalk plugins can't access the real --prefix
2667* Fixed bug 1099845: pt-table-checksum pxc same_node function incorrectly uses wsrep_sst_receive_address
2668* Fixed bug 821502: Some tools don't have --help or --version
2669* Fixed bug 947893: Some tools use @@hostname without /*!50038*/
2670* Fixed bug 1082406: An explicitly set wsrep_node_incoming_address may make SHOW STATUS LIKE 'wsrep_incoming_addresses' return a portless address
2671
2672v2.2.1 released 2013-03-14
2673==========================
2674
2675Percona Toolkit 2.2.1 has been released. This is the first release in
2676the new 2.2 series which supersedes the 2.1 series and renders the 2.0
2677series obsolete. We plan to do one more bug fix release for 2.1 (2.1.10),
2678but otherwise all new development and fixes and will now focus on 2.2.
2679
2680Percona Toolkit 2.2 has been several months in the making, and it turned
2681out very well, with many more new features, changes, and improvements than
2682originally anticipated. Here are the highlights:
2683
2684----
2685
2686* Official support for MySQL 5.6
2687
2688We started beta support for MySQL 5.6 in 2.1.8 when 5.6 was still beta.
2689Now that 5.6 is GA, so is our support for it. Check out the Percona Toolkit
2690supported platforms and versions:
2691http://www.percona.com/mysql-support/policies/percona-toolkit-supported-platforms-and-versions
2692
2693When you upgrade to MySQL 5.6, be sure to upgrade to Percona Toolkit 2.2, too.
2694
2695* Official support for Percona XtraDB Cluster (PXC)
2696
2697We also started beta support for Percona XtraDB Cluster in 2.1.8, but
2698now that support is official in 2.2 because we have had many months to
2699work with PXC and figure out which tools work with it and how. There's
2700still one noticeable omission: pt-table-sync. It's still unclear if
2701or how one would sync a cluster that, in theory, doesn't become out-of-sync.
2702As Percona XtraDB Cluster develops, Percona Toolkit will continue to
2703evolve to support it.
2704
2705* pt-online-schema-change (pt-osc) is much more resilient
2706
2707pt-online-schema-change 2.1 has been a great success, and people have been
2708using it for evermore difficult and challenging tasks. Consequently, we
2709needed to make it "try harder", even though it already tried pretty hard
2710to keep working despite recoverable errors and such. Whereas pt-osc 2.1
2711only retries certain operations, pt-osc 2.2 retries every critical operation,
2712and its tries and wait time between tries for all operations are configurable.
2713Also, we removed --lock-wait-timeout which set innodb_lock_wait_timeout
2714because that now conflicts, or is at least confused with, lock_wait_timeout
2715(introduced in MySQL 5.5) for metadata locks. Now --set-vars is used to
2716set both of these (or any) system variables. For a quick intro to metadata
2717locks and how they may affect you, see Ovais's article:
2718http://www.mysqlperformanceblog.com/2013/02/01/implications-of-metadata-locking-changes-in-mysql-5-5/
2719
2720What does this all mean? In short: pt-online-schema-change 2.2 is far more
2721resilient out of the box. It's also aware of metadata locks now, whereas
27222.1 was not really aware of them. And it's highly configurable, so you can
2723make the tool try _very_ hard to keep working.
2724
2725* pt-upgrade is brand-new
2726
2727pt-upgrade was written once long ago, thrown into the world, and then never
2728heard from again... until now. Now that we have four base versions of
2729MySQL (5.0, 5.1, 5.5, and 5.6), plus at least four major forks (Percona
2730Server, MariaDB, Percona XtraDB Cluster, and MariaDB Galera Cluster),
2731upgrades are fashionable, so to speak. Problem is: "original" pt-upgrade
2732was too noisy and too complex. pt-upgrade 2.2 is far simpler and far
2733easier to use. It's basically what you expect from such a tool.
2734
2735Moreover, it has a really helpful new feature: "reference results", i.e.
2736saved results from running queries on a server. Granted, this can take
2737_a lot_ of disk space, but it allows you to "run now, compare later."
2738
2739If you're thinking about upgrading, give pt-upgrade a try. It also reads
2740every type of log now (slow, general, binary, and tcpdump), so you shouldn't
2741have a problem finding queries to run and compare.
2742
2743* pt-query-digest is simpler
2744
2745pt-query-digest 2.2 has fewer options now. Basically, we re-focused it
2746on its primary objective: analyzing MySQL query logs. So the ability
2747to parse memcached, Postgres, Apache, and other logs was removed. We
2748also removed several options that probably nobody ever used, and
2749changed/renamed other options to be more logical. The result is a simpler,
2750more focused tool, i.e. less overwhelming.
2751
2752Also, pt-query-digest 2.2 can save results in JSON format (--output=json).
2753This feature is still in development while we determine the optimal
2754JSON structure.
2755
2756* Version check is on by default
2757
2758Way back in 2.1.4, released September/October 2012, we introduced a feature
2759called "version check" into most tools: http://percona.com/version-check
2760It's like a lot of software that automatically checks for updates, but
2761it's also more: it's a free service from Percona that advises when certain
2762programs (Percona Toolkit tools, MySQL, Perl, etc.) are either out of date
2763or are known bad versions. For example, there are two versions of the
2764DBD::mysql Perl module that have problems. And there are certain versions
2765of MySQL that have critical bugs. Version check will warn you about these
2766if your system is running them.
2767
2768What's new in 2.2 is that, whereas this feature (specifically, the option
2769in tools: --version-check) was off by default, now it's on by default.
2770If the IO::Socket::SSL Perl module is installed (easily available through
2771your package manager), it will use a secure (https) connection over the web,
2772else it will use a standard (http) connection.
2773
2774Check out http://percona.com/version-check for more information.
2775
2776* pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player are gone
2777
2778We removed pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player.
2779Granted, no tool is ever really gone: if you need one of these tools,
2780get it from 2.1. pt-log-player is now superseded by Percona Playback
2781(http://www.percona.com/doc/percona-playback/). pt-query-advisor was
2782removed so that we can focus our efforts on its online counterpart instead:
2783https://tools.percona.com/query-advisor. The other tools were special
2784projects that were not widely used.
2785
2786* pt-stalk and pt-mysql-summary have built-in MySQL options
2787
2788No more "pt-stalk -- -h db1 -u me". pt-stalk 2.2 and pt-mysql-summary 2.2
2789have all the standard MySQL options built-in, like other tools: --user,
2790--host, --port, --password, --socket, --defaults-file. So now the command
2791line is what you expect: pt-stalk -h dhb1 -u me.
2792
2793* pt-stalk --no-stalk is no longer magical
2794
2795Originally, pt-stalk --no-stalk was meant to simulate pt-collect, i.e.
2796collect once and exit. To do that, the tool magically set some options
2797and clobbered others, resulting in no way to do repeated collections
2798at intervals. Now --no-stalk means only that: don't stalk, just collect,
2799respecting --interval and --iterations as usual. So to collect once
2800and exit: pt-stalk --no-stalk --iterations 1.
2801
2802* pt-fk-error-logger and pt-deadlock-logger are standardized
2803
2804Similar to the pt-stalk --no-stalk changes, pt-fk-error-logger and
2805pt-deadlock-logger received mini overhauls in 2.2 to make their
2806run-related options (--run-time, --interval, --iterations) standard.
2807If you hadn't noticed, one tool would run forever by default, while
2808the other would run once and exit. And each treated their run-related
2809options a little differently. This magic is gone now: both tools run
2810forever by default, so specify --iterations or --run-time to limit how
2811long they run.
2812
2813----
2814
2815There were other miscellaneous bug fixes, too. See
2816https://launchpad.net/percona-toolkit/+milestone/2.2.1 for the full list.
2817
2818As the first release in a new series, 2.2 features are not yet finalized.
2819In other words, we may change things like the pt-query-digest --output json
2820format in future releases after receiving real-world feedback.
2821
2822Percona Toolkit 2.2 is an exciting release with many helpful new
2823features. Users are encouraged to begin upgrading, particularly given
2824that, except for the forthcoming 2.1.10 release, no more work will be
2825done on 2.1 (unless you're a Percona customer with a support contract or
2826other agreement).
2827
2828If you upgrade from 2.1 to 2.2, be sure to re-read tools' documentation
2829to see what has changed because much as changed for certain tools.
2830
2831Percona Toolkit packages can be downloaded from
2832http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
2833Repositories (http://www.percona.com/software/repositories/).
2834
2835Changelog
2836---------
2837
2838* Official support for MySQL 5.6
2839* Official support for Percona XtraDB Cluster
2840* Redesigned pt-query-digest
2841* Redesigned pt-upgrade
2842* Redesigned pt-fk-error-logger
2843* Redesigned pt-deadlock-logger
2844* Changed --set-vars in all tools
2845* Renamed --retries to --tries in pt-online-schema-change
2846* Added --check-read-only to pt-heartbeat
2847* Added MySQL options to pt-mysql-summary
2848* Added MySQL options to pt-stalk
2849* Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars)
2850* Removed --lock-wait-timeout from pt-table-checksum (use --set-vars)
2851* Removed pt-query-advisor
2852* Removed pt-tcp-model
2853* Removed pt-trend
2854* Removed pt-log-player
2855* Enabled --version-check by default in all tools
2856* Fixed bug 1008796: Several tools don't have --database
2857* Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values
2858* Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options
2859* Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time
2860* Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE
2861* Fixed bug 1113301: pt-online-schema-change blocks on metadata locks
2862* Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically
2863* Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions
2864* Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found
2865
2866v2.1.9 released 2013-02-14
2867==========================
2868
2869Percona Toolkit 2.1.9 has been released. This release primarily aims to
2870restore backwards-compatibility with pt-heartbeat 2.1.7 and older, but it
2871also has important bug fixes for other tools.
2872
2873* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
2874* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
2875
2876The previous release switched the time authority from Perl to MySQL, and from
2877local time to UTC. Unfortunately, these changes caused a loss of precision and,
2878if mixing versions of pt-heartbeat, made the tool report a huge amount of
2879replication lag. This release makes the tool compatible with pt-heartbeat
28802.1.7 and older again, but the UTC behavior introduced in 2.1.8 is now only
2881available by specifying the new --utc option.
2882
2883* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
2884
2885This is an important bug fix for pt-table-sync: certain chunks from
2886pt-table-checksum resulted in an impossible WHERE, causing the false-positive
2887"Cannot nibble" error, if those chunks had diffs.
2888
2889* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
2890
2891MariaDB 5.5.28 (https://kb.askmonty.org/en/mariadb-5528-changelog/) fixed
2892a bug: "Added warnings for duplicate key errors when using INSERT IGNORE".
2893However, standard MySQL does not warn in this case, despite the docs saying
2894that it should. Since pt-online-schema-change has always intended to ignore
2895duplicate entry errors by using "INSERT IGNORE", it now handles the MariaDB
2896case by also ignoring duplicate entry errors in the code.
2897
2898* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
2899
2900pt-online-schema-change 2.1.9 handles another case of changing the primary key.
2901However, since changing the primary key is tricky, the tool stops if --alter
2902contains "DROP PRIMARY KEY", and you have to specify --no-check-alter to
2903acknowledge this case.
2904
2905* Fixed bug 1099933: pt-stalk is too verbose, fills up log
2906
2907Previously, pt-stalk printed a line for every check. Since the tool is
2908designed to be a long-running daemon, this could result in huge log files
2909with "matched=no" lines. The tool has a new --verbose option which makes it
2910quieter by default.
2911
2912All users should upgrade, but in particular, users of versions 2.1.7 and
2913older are strongly recommended to skip 2.1.8 and go directly to 2.1.9.
2914
2915Users of pt-heartbeat in 2.1.8 who prefer the UTC behavior should keep in
2916mind that they will have to use the --utc option after upgrading.
2917
2918Percona Toolkit packages can be downloaded from
2919http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
2920Repositories (http://www.percona.com/software/repositories/).
2921
2922Changelog
2923---------
2924
2925* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
2926* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
2927* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
2928* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
2929* Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function
2930* Fixed bug 823411: pt-query-digest shouldn't print "Error: none" for tcpdump
2931* Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors
2932* Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave
2933* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
2934* Fixed bug 1099933: pt-stalk is too verbose, fills up log
2935
2936v2.1.8 released 2012-12-21
2937==========================
2938
2939Percona Toolkit 2.1.8 has been released. This release includes 28 bug fixes, beta support for MySQL 5.6, and extensive support for Percona XtraDB Cluster (PXC). Users intending on running the tools on Percona XtraDB Cluster or MySQL 5.6 should upgrade. The following tools have been verified to work on PXC versions 5.5.28 and newer:
2940
2941* pt-table-chcecksum
2942* pt-online-schema-change
2943* pt-archive
2944* pt-mysql-summary
2945* pt-heartbeat
2946* pt-variable-advisor
2947* pt-config-diff
2948* pt-deadlock-logger
2949
2950However, there are limitations when running these tools on PXC; see the Percona XtraDB Cluster section in each tool's documentation for further details. All other tools, with the exception of pt-slave-find, pt-slave-delay and pt-slave-restart, should also work correctly, but in some cases they have not been modified to take advantage of PXC features, so they may behave differently in future releases.
2951
2952The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
2953
2954* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query
2955
2956Slow logs which include timestamps but no query--which can happen if using slow_query_log_timestamp_always in Percona Server--were misparsed, resulting in an erroneous report. Now such no-query events show up in reports as ``/* No query */``.
2957
2958* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user"
2959
2960The "as" was misparsed and the following word would end up reported as the database; pt-query-digest now handles this correctly.
2961
2962* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5
2963
2964Some renamed variables had caused the Percona Server section to work unreliably.
2965
2966* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only
2967
2968When using --replicate-check-only, filter options like --databases and --tables were not applied.
2969
2970* Fixed bug 886059: pt-heartbeat handles timezones inconsistently
2971
2972Previously, pt-heartbeat respected the MySQL time zone, but this caused false readings (e.g. very high lag) with slaves running in different time zones. Now pt-heartbeat uses UTC regardless of the server or MySQL time zone.
2973
2974* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables
2975
2976Since MyISAM tables can't have foreign keys, and the tool uses the information_schema to find child tables, this could cause unnecessary load on the server.
2977
29782.1.8 continues the trend of solid bug fix releases, and all 2.1 users are encouraged to upgrade.
2979
2980Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
2981
2982Changelog
2983---------
2984
2985* Beta support for MySQL 5.6
2986* Beta support for Percona XtraDB Cluster
2987* pt-online-schema-change: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
2988* pt-table-checksum: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
2989* pt-upgrade: Added --[no]disable-query-cache
2990* Fixed bug 927955: Bad pod2rst transformation
2991* Fixed bug 898665: Bad online docs formatting for --[no]vars
2992* Fixed bug 1022622: pt-config-diff is case-sensitive
2993* Fixed bug 1007938: pt-config-diff doesn't handle end-of-line comments
2994* Fixed bug 917770: pt-config-diff Use of uninitialized value in substitution (s///) at line 1996
2995* Fixed bug 1082104: pt-deadlock-logger doesn't handle usernames with dashes
2996* Fixed bug 886059: pt-heartbeat handles timezones inconsistently
2997* Fixed bug 1086259: pt-kill --log-dsn timestamp is wrong
2998* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5
2999* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables
3000* Fixed bug 823431: pt-query-advisor hangs on big queries
3001* Fixed bug 996069: pt-query-advisor RES.001 is incorrect
3002* Fixed bug 933465: pt-query-advisor false positive on RES.001
3003* Fixed bug 937234: pt-query-advisor issues wrong RES.001
3004* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query
3005* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user"
3006* Fixed bug 957442: pt-query-digest with custom --group-by throws error
3007* Fixed bug 887638: pt-query-digest prints negative byte offset
3008* Fixed bug 831525: pt-query-digest help output mangled
3009* Fixed bug 932614: pt-slave-restart CHANGE MASTER query causes error
3010* Fixed bug 1046440: pt-stalk purge_samples slows down checks
3011* Fixed bug 986847: pt-stalk does not report NFS iostat
3012* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only
3013* Fixed bug 911385: pt-table-checksum v2 fails when --resume + --ignore-database is used
3014* Fixed bug 1041391: pt-table-checksum debug statement for "Chosen hash func" prints undef
3015* Fixed bug 1075638: pt-table-checksum Illegal division by zero at line 7950
3016* Fixed bug 1052475: pt-table-checksum uninitialized value in numeric lt (<) at line 8611
3017* Fixed bug 1078887: Tools let --set-vars clobber the required SQL mode
3018
3019v2.1.7 released 2012-11-19
3020==========================
3021
3022Percona Toolkit 2.1.7 has been released which is a hotfix for two bugs when using pt-table-checksum with Percona XtraDB Cluster:
3023
3024* Bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG
3025* Bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes
3026
3027If you're using pt-table-checksum with a Percona XtraDB Cluster, you should upgrade. Otherwise, users can wait until the next full release.
3028
3029Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
3030
3031Changelog
3032---------
3033
3034* Fixed bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG
3035* Fixed bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes
3036
3037v2.1.6 released 2012-11-13
3038==========================
3039
3040Percona Toolkit 2.1.6 has been released. This release includes 33 bug fixes and three new features: pt-online-schema-change now handles renaming columns without losing data, removing one of the tool's limitations. pt-online-schema-change also got two new options: --default-engine and --statistics. Finally, pt-stalk now has a plugin hook interface, available through the --plugin option. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
3041
3042* Bug 978133: pt-query-digest review table privilege checks don't work
3043
3044The same checks were removed from pt-table-checksum on 2.1.3 and pt-table-sync on 2.1.4, so this just follows suit.
3045
3046* Bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
3047
3048A particularly important fix, as it may stop pt-table-checksum from breaking replication in these setups.
3049
3050* Bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag
3051
3052If you run multiple instances of pt-table-checksum on a badly lagged server, actually respecting --run-time stops the instances from divebombing the server when the replica catches up.
3053
3054* Bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key
3055
3056Fixed by choosing a key on the new table for the DELETE trigger.
3057
3058* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
3059
3060A follow up to the same fix in the previous release, this adds to warnings for cases in which pt-table-checksum may work incorrectly and require some user intervention: One for the case of master -> cluster, and one for cluster1 -> cluster2.
3061
3062* Bug 821715: LOAD DATA LOCAL INFILE broken in some platforms
3063
3064This bug has hounded the toolkit for quite some time. In some platforms, trying to use LOAD DATA LOCAL INFILE would fail as if the user didn't have enough privileges to perform the operation. This was a misdiagnoses from MySQL; The actual problem was that the libmysqlclient.so provided by some vendors was compiled in a way that disallowed users from using the statement without some extra work. This fix adds an 'L' option to the DSNs the toolkit uses, tells the the tools to explicitly enables LOAD DATA LOCAL INFILE. This affected two pt-archiver and pt-upgrade, so if you are on an effected OS and need to use those, you can simply tag an L=1 to your DSN and everything should start working.
3065
3066* Bug 866075: pt-show-grant doesn't support column-level grants
3067
3068This was actually the 'hottest' bug in the tracker.
3069
3070This is another solid bug fix release, and all 2.1 users are encouraged to upgrade.
3071
3072Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
3073
3074Changelog
3075---------
3076
3077* pt-online-schema-change: Columns can now be renamed without data loss
3078* pt-online-schema-change: New --default-engine option
3079* pt-stalk: Plugin hooks available through the --plugin option to extend the tool's functionality
3080* Fixed bug 1069951: --version-check default should be explicitly "off"
3081* Fixed bug 821715: LOAD DATA LOCAL INFILE broken in some platforms
3082* Fixed bug 995896: Useless use of cat in Daemon.pm
3083* Fixed bug 1039074: Tools exit 0 on error parsing options, should exit non-zero
3084* Fixed bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
3085* Fixed bug 1009510: pt-table-checksum breaks replication if a slave table is missing or different
3086* Fixed bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag
3087* Fixed bug 1073532: pt-table-checksum error: Use of uninitialized value in int at line 2778
3088* Fixed bug 1016131: pt-table-checksum can crash with --columns if none match
3089* Fixed bug 1039569: pt-table-checksum dies if creating the --replicate table fails
3090* Fixed bug 1059732: pt-table-checksum doesn't test all hash functions
3091* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
3092* Fixed bug 1043528: pt-deadlock-logger can't parse db/tbl/index on partitioned tables
3093* Fixed bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key
3094* Fixed bug 1058285: pt-online-schema-change fails if sql_mode explicitly or implicitly uses ANSI_QUOTES
3095* Fixed bug 1073996: pt-online-schema-change fails with "I need a max_rows argument"
3096* Fixed bug 1039541: pt-online-schema-change --quiet doesn't disable --progress
3097* Fixed bug 1045317: pt-online-schema-change doesn't report how many warnings it suppressed
3098* Fixed bug 1060774: pt-upgrade fails if select column > 64 chars
3099* Fixed bug 1070916: pt-mysql-summary may report the wrong cnf file
3100* Fixed bug 903229: pt-mysql-summary incorrectly categorizes databases
3101* Fixed bug 866075: pt-show-grant doesn't support column-level grants
3102* Fixed bug 978133: pt-query-digest review table privilege checks don't work
3103* Fixed bug 956981: pt-query-digest docs for event attributes link to defunct Maatkit wiki
3104* Fixed bug 1047335: pt-duplicate-key-checker fails when it encounters a crashed table
3105* Fixed bug 1047701: pt-stalk deletes non-empty files
3106* Fixed bug 1070434: pt-stalk --no-stalk and --iterations 1 don't wait for the collect
3107* Fixed bug 1052722: pt-fifo-split is processing n-1 rows initially
3108* Fixed bug 1013407: pt-find documentation error with mtime and InnoDB
3109* Fixed bug 1059757: pt-trend output has no header
3110* Fixed bug 1063933: pt-visual-explain docs link to missing pdf
3111* Fixed bug 1075773: pt-fk-error-logger crashes if there's no foreign key error
3112* Fixed bug 1075775: pt-fk-error-logger --dest table example doesn't work
3113
3114v2.1.5 released 2012-10-08
3115==========================
3116
3117Percona Toolkit 2.1.5 has been released. This release is less than two weeks after the release of 2.1.4 because we wanted to address these bugs quickly:
3118
3119* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
3120
3121* Bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes
3122
3123* Bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL
3124
3125The first two bugs fix how pt-table-checksum works with Percona XtraDB Cluster (PXC). Although the 2.1.4 release did introduce support for PXC, these bugs prevented pt-table-checksum from working correctly with a cluster.
3126
3127The third bug is also related to a feature new in 2.1.4: --version-check. The feature uses HTTPS/SSL by default, but some modules in pt-table-sync weren't update which could prevent it from working on older systems. Related, the version check web page mentioned in tools' documentation was also created.
3128
3129If you're using pt-table-checksum with a Percona XtraDB Cluster, you should definitely upgrade. Otherwise, users can wait until 2.1.6 for another full release.
3130
3131Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
3132
3133Changelog
3134---------
3135
3136* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
3137* Fixed bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes
3138* Fixed bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL
3139* Fixed bug 1060423: Missing version-check page
3140
3141v2.1.4 released 2012-09-20
3142==========================
3143
3144Percona Toolkit 2.1.4 has been released. This release includes 26 bug fixes and three new features: Making pt-table-checksum work with Percona XtraDB Cluster, adding a --run-time option to pt-table-checksum, and implementing the "Version Check" feature, enabled through the --version-check switch. For further information on --version-check, see http://www.mysqlperformanceblog.com/2012/09/10/introducing-the-version-check-feature-in-percona-toolkit/. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
3145
3146* Fixed bug 1017626: pt-table-checksum doesn't work with Percona XtraDB Cluster
3147
3148Note that this requires Percona XtraDB Cluster 5.5.27-23.6 or newer, as the fix depends on this bug https://bugs.launchpad.net/codership-mysql/+bug/1023911 being resolved.
3149
3150* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves
3151
3152Previously, users had no recourse but using --recursion-method in conjunction with a dsn table to sidestep this bug, so this fix is a huge usability gain. This was caused by the toolkit not copying the -F portion of the main dsn.
3153
3154* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument"
3155
3156Which were stopping pt-upgrade from working on a MySQL 4.1 host.
3157
3158* Fixed bug 1036747: pt-table-sync priv checks need to be removed
3159
3160The same checks were removed in the previous release from pt-table-checksum, so this continues the trend.
3161
3162* Fixed bug 1038995: pt-stalk --notify-by-email fails
3163
3164This was a bug in our shell option parsing library, and would potentially affect any option starting with 'no'.
3165
3166Like 2.1.3, this is another solid bug fix release, and 2.1 users are encouraged to upgrade.
3167
3168Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
3169
3170Changelog
3171---------
3172
3173* pt-table-checksum: Percona XtraDB Cluster support
3174* pt-table-checksum: Implemented the standard --run-time option
3175* Implemented the version-check feature in several tools, enabled with the --version-check option
3176* Fixed bug 856060: Document gdb dependency
3177* Fixed bug 1041394: Unquoted arguments to tr break the bash tools
3178* Fixed bug 1035311: pt-diskstats shows wrong device names
3179* Fixed bug 1036804: pt-duplicate-key-checker error parsing InnoDB table with no PK or unique keys
3180* Fixed bug 1022658: pt-online-schema-change dropping FK limitation isn't documented
3181* Fixed bug 1041372: pt-online-schema-changes fails if db+tbl name exceeds 64 characters
3182* Fixed bug 1029178: pt-query-digest --type tcpdump memory usage keeps increasing
3183* Fixed bug 1037211: pt-query-digest won't distill LOCK TABLES in lowercase
3184* Fixed bug 942114: pt-stalk warns about bad "find" usage
3185* Fixed bug 1035319: pt-stalk df -h throws away needed details
3186* Fixed bug 1038995: pt-stalk --notify-by-email fails
3187* Fixed bug 1038995: pt-stalk does not get all InnoDB lock data
3188* Fixed bug 952722: pt-summary should show information about Fusion-io cards
3189* Fixed bug 899415: pt-table-checksum doesn't work if slaves use RBR
3190* Fixed bug 954588: pt-table-checksum --check-slave-lag docs aren't clear
3191* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves
3192* Fixed bug 930693: pt-table-sync and text columns with just whitespace
3193* Fixed bug 1028710: pt-table-sync base_count fails on n = 1000, base = 10
3194* Fixed bug 1034717: pt-table-sync division by zero error with varchar primary key
3195* Fixed bug 1036747: pt-table-sync priv checks need to be removed
3196* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument"
3197* Fixed bug 1035260: sh warnings in pt-summary and pt-mysql-summary
3198* Fixed bug 1038276: ChangeHandler doesn't quote varchar columns with hex-looking values
3199* Fixed bug 916925: CentOS 5 yum dependency resolution for perl module is wrong
3200* Fixed bug 1035950: Percona Toolkit RPM should contain a dependency on perl-Time-HiRes
3201
3202v2.1.3 released 2012-08-03
3203==========================
3204
3205Percona Toolkit 2.1.3 has been released. This release includes 31 bug fixes and one new feature: pt-kill --log-dsn to log information about killed queries to a table. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
3206
3207* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5
3208
3209pt-table-checksum used to check the user's privileges, but the method was not always reliable, and due to http://bugs.mysql.com/bug.php?id=61846 it became quite unreliable on MySQL 5.5. So the privs check was removed altogether, meaning that the tool may fail later if the user's privileges are insufficient.
3210
3211* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS
3212
3213In certain cases where the master and replicas have different schemas and/or tables, pt-table-checksum could break replication because the checksums table did not exist on a replica.
3214
3215* Fixed bug 821703: pt-query-digest --processlist may crash
3216* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns
3217
3218Certain distributions of MySQL add extra columns to SHOW PROCESSLIST which caused pt-query-digest --processlist to crash at times.
3219
3220* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost
3221
3222pt-kill is meant to be a long-running daemon, so naturally it's important that it stays connected to MySQL.
3223
3224* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error
3225
3226The combination of these pt-heartbeat options could cause replication to break due to a duplicate key error.
3227
3228* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519
3229
3230This bug was related to how --quiet was handled, and it could happen even if --quiet wasn't given on the command line.
3231
3232All in all, this is solid bug fix release, and 2.1 users are encouraged to upgrade.
3233
3234Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
3235
3236Changelog
3237---------
3238
3239* pt-kill: Implemented --log-dsn to log info about killed queries to a table
3240* Fixed bug 1016127: Install hint for DBD::mysql is wrong
3241* Fixed bug 984915: DSNParser does not check success of --set-vars
3242* Fixed bug 889739: pt-config-diff doesn't diff quoted strings properly
3243* Fixed bug 969669: pt-duplicate-key-checker --key-types=k doesn't work
3244* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error
3245* Fixed bug 1028614: pt-index-usage ignores --database
3246* Fixed bug 940733: pt-ioprofile leaves behind temp directory
3247* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost
3248* Fixed bug 1016114: pt-online-schema-change docs don't mention default values
3249* Fixed bug 1020997: pt-online-schema-change fails when table is empty
3250* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519
3251* Fixed bug 937225: pt-query-advisor OUTER JOIN advice in JOI.003 is confusing
3252* Fixed bug 821703: pt-query-digest --processlist may crash
3253* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns
3254* Fixed bug 924950: pt-query-digest --group-by db may crash profile report
3255* Fixed bug 1022851: pt-sift error: PREFIX: unbound variable
3256* Fixed bug 969703: pt-sift defaults to '.' instead of '/var/lib/pt-talk'
3257* Fixed bug 962330: pt-slave-delay incorrectly computes lag if started when slave is already lagging
3258* Fixed bug 954990: pt-stalk --nostalk does not work
3259* Fixed bug 977226: pt-summary doesn't detect LSI RAID control
3260* Fixed bug 1030031: pt-table-checksum reports wrong number of DIFFS
3261* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5
3262* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS
3263* Fixed bug 953141: pt-table-checksum ignores its default and explicit --recursion-method
3264* Fixed bug 1030975: pt-table-sync crashes if sql_mode includes ANSI_QUOTES
3265* Fixed bug 869005: pt-table-sync should always set REPEATABLE READ
3266* Fixed bug 903510: pt-tcp-model crashes in --type=requests mode on empty file
3267* Fixed bug 934310: pt-tcp-model --quantile docs wrong
3268* Fixed bug 980318: pt-upgrade results truncated if hostnames are long
3269* Fixed bug 821696: pt-variable-advisor shows too long of a snippet
3270* Fixed bug 844880: pt-variable-advisor shows binary logging as both enabled and disabled
3271
3272v2.1.2 released 2012-06-12
3273==========================
3274
3275Percona Toolkit 2.1.2 has been released. This is a very important release because it fixes a critical bug in pt-table-sync (bug 1003014) which caused various failures. All users of Percona Toolkit 2.1 should upgrade to this release. There were 47 other bug fixes, several new options, and other changes. The following is a high-level summary of the most important changes.
3276
3277In addition to the critical bug fix mentioned above, another important pt-table-sync bug was fixed, bug 1002365: --ignore-* options did not work with --replicate. The --lock-and-rename feature of the tool was also disabled unless running MySQL 5.5 or newer because it did not work reliably in earlier versions of MySQL.
3278
3279Several important pt-table-checksum bugs were fixed. First, a bug caused the tool to ignore the primary key. Second, the tool did not wait for the checksum table to replicate, so it could select from a nonexistent table on a replica and crash. Third, it did not check if all checksum queries were safe and chunk index with more than 3 columns could cause MySQL to scan many more rows than expected.
3280
3281pt-online-schema-change received many improvements and fixes: it did not retry deadlocks, but now it does; --no-swap-tables caused an error; it did not handle column renames; it did not allow disabling foreign key checks; --dry-run always failed on tables with foreign keys; it used different keys for chunking and triggers; etc. In short: pt-online-schema-change 2.1.2 is superior to 2.1.1.
3282
3283Two pt-archiver bugs were fixed: bug 979092, --sleep conflicts with bulk operations; and bug 903379, --file doesn't create a file.
3284
3285--recursion-method=none was implemented in pt-heartbeat, pt-online-schema-change, pt-slave-find, pt-slave-restart, pt-table-checksum, and pt-table-sync. This allows these tools to avoid executing SHOW SLAVE STATUS which requires a privilege not available to Amazon RDS users.
3286
3287Other bugs were fixed in pt-stalk, pt-variable-advisor, pt-duplicate-key-checker, pt-diskstats, pt-query-digest, pt-sift, pt-kill, pt-summary, and pt-deadlock-logger.
3288
3289Percona Toolkit 2.1.2 should be backwards-compatible with 2.1.1, so users are strongly encouraged to upgrade.
3290
3291Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
3292
3293Changelog
3294---------
3295
3296* pt-heartbeat: Implemented --recursion-method=none
3297* pt-index-usage: MySQL 5.5 compatibility fixes
3298* pt-log-player: MySQL 5.5 compatibility fixes
3299* pt-online-schema-change: Added --chunk-index-columns
3300* pt-online-schema-change: Added --[no]check-plan
3301* pt-online-schema-change: Added --[no]drop-new-table
3302* pt-online-schema-change: Implemented --recursion-method=none
3303* pt-query-advisor: Added --report-type for JSON output
3304* pt-query-digest: Removed --[no]zero-bool
3305* pt-slave-delay: Added --database
3306* pt-slave-find: Implemented --recursion-method=none
3307* pt-slave-restart: Implemented --recursion-method=none
3308* pt-table-checksum: Added --chunk-index-columns
3309* pt-table-checksum: Added --[no]check-plan
3310* pt-table-checksum: Implemented --recursion-method=none
3311* pt-table-sync: Disabled --lock-and-rename except for MySQL 5.5 and newer
3312* pt-table-sync: Implemented --recursion-method=none
3313* Fixed bug 945079: Shell tools TMPDIR may break
3314* Fixed bug 912902: Some shell tools still use basename
3315* Fixed bug 987694: There is no --recursion-method=none option
3316* Fixed bug 886077: Passwords with commas don't work, expose part of password
3317* Fixed bug 856024: Lintian warnings when building percona-toolkit Debian package
3318* Fixed bug 903379: pt-archiver --file doesn't create a file
3319* Fixed bug 979092: pt-archiver --sleep conflicts with bulk operations
3320* Fixed bug 903443: pt-deadlock-logger crashes on MySQL 5.5
3321* Fixed bug 941064: pt-deadlock-logger can't clear deadlocks on 5.5
3322* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
3323* Fixed bug 994176: pt-diskstats --group-by=all --headers=scroll prints a header for every sample
3324* Fixed bug 894140: pt-duplicate-key-checker sometimes recreates a key it shouldn't
3325* Fixed bug 923896: pt-kill: uninitialized value causes script to exit
3326* Fixed bug 1003003: pt-online-schema-change uses different keys for chunking and triggers
3327* Fixed bug 1003315: pt-online-schema-change --dry-run always fails on table with foreign keys
3328* Fixed bug 1004551: pt-online-schema-change --no-swap-tables causes error
3329* Fixed bug 976108: pt-online-schema-change doesn't allow to disable foreign key checks
3330* Fixed bug 976109: pt-online-schema-change doesn't handle column renames
3331* Fixed bug 988036: pt-online-schema-change causes deadlocks under heavy write load
3332* Fixed bug 989227: pt-online-schema-change crashes with PTDEBUG
3333* Fixed bug 994002: pt-online-schema-change 2.1.1 doesn't choose the PRIMARY KEY
3334* Fixed bug 994010: pt-online-schema-change 2.1.1 crashes without InnoDB
3335* Fixed bug 996915: pt-online-schema-change crashes with invalid --max-load and --critical-load
3336* Fixed bug 998831: pt-online-schema-change -- Should have an option to NOT drop tables on failure
3337* Fixed bug 1002448: pt-online-schema-change: typo for finding usable indexes
3338* Fixed bug 885382: pt-query-digest --embedded-attributes doesn't check cardinality
3339* Fixed bug 888114: pt-query-digest report crashes with infinite loop
3340* Fixed bug 949630: pt-query-digest mentions a Subversion repository
3341* Fixed bug 844034: pt-show-grants --separate fails with proxy user
3342* Fixed bug 946707: pt-sift loses STDIN after pt-diskstats
3343* Fixed bug 994947: pt-stalk doesn't reset cycles_true after collection
3344* Fixed bug 986151: pt-stalk-has mktemp error
3345* Fixed bug 993436: pt-summary Memory: Total reports M instead of G
3346* Fixed bug 1008778: pt-table-checksum doesn't wait for checksum table to replicate
3347* Fixed bug 1010232: pt-table-checksum doesn't check the size of checksum chunks
3348* Fixed bug 1011738: pt-table-checksum SKIPPED is zero but chunks were skipped
3349* Fixed bug 919499: pt-table-checksum fails with binary log error in mysql >= 5.5.18
3350* Fixed bug 972399: pt-table-checksum docs are not rendered right
3351* Fixed bug 978432: pt-table-checksum ignoring primary key
3352* Fixed bug 995274: pt-table-checksum can't use an undefined value as an ARRAY reference at line 2206
3353* Fixed bug 996110: pt-table-checksum crashes if InnoDB is disabled
3354* Fixed bug 987393: pt-table-checksum: Empy tables cause "undefined value as an ARRAY" errors
3355* Fixed bug 1002365: pt-table-sync --ignore-* options don't work with --replicate
3356* Fixed bug 1003014: pt-table-sync --replicate and --sync-to-master error "index does not exist"
3357* Fixed bug 823403: pt-table-sync --lock-and-rename doesn't work on 5.1
3358* Fixed bug 898138: pt-variable-advisor doesn't recognize 5.5.3+ concurrent_insert values
3359
3360v2.1.1 released 2012-04-03
3361==========================
3362
3363Percona Toolkit 2.1.1 has been released. This is the first release in the
3364new 2.1 series which supersedes the 2.0 series. We will continue to fix bugs
3365in 2.0, but 2.1 is now the focus of development.
3366
33672.1 introduces a lot of new code for:
3368
3369* pt-online-schema-change (completely redesigned)
3370* pt-mysql-summary (completely redesigned)
3371* pt-summary (completely redesigned)
3372* pt-fingerprint (new tool)
3373* pt-table-usage (new tool)
3374
3375There were also several bug fixes.
3376
3377The redesigned tools are meant to replace their 2.0 counterparts because
3378the 2.1 versions have the same or more functionality and they are simpler
3379and more reliable. pt-online-schema-change was particularly enhanced to
3380be as safe as possible given that the tool is inherently risky.
3381
3382Percona Toolkit packages can be downloaded from
3383http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
3384Repositories (http://www.percona.com/software/repositories/).
3385
3386Changelog
3387---------
3388
3389* Completely redesigned pt-online-schema-change
3390* Completely redesigned pt-mysql-summary
3391* Completely redesigned pt-summary
3392* Added new tool: pt-table-usage
3393* Added new tool: pt-fingerprint
3394* Fixed bug 955860: pt-stalk doesn't run vmstat, iostat, and mpstat for --run-time
3395* Fixed bug 960513: SHOW TABLE STATUS is used needlessly
3396* Fixed bug 969726: pt-online-schema-change loses foreign keys
3397* Fixed bug 846028: pt-online-schema-change does not show progress until completed
3398* Fixed bug 898695: pt-online-schema-change add useless ORDER BY
3399* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
3400* Fixed bug 963225: pt-query-digest fails to set history columns for disk tmp tables and disk filesort
3401* Fixed bug 967451: Char chunking doesn't quote column name
3402* Fixed bug 972399: pt-table-checksum docs are not rendered right
3403* Fixed bug 896553: Various documentation spelling fixes
3404* Fixed bug 949154: pt-variable-advisor advice for relay-log-space-limit
3405* Fixed bug 953461: pt-upgrade manual broken 'output' section
3406* Fixed bug 949653: pt-table-checksum docs don't mention risks posed by inconsistent schemas
3407
3408v2.0.4 released 2012-03-07
3409==========================
3410
3411Percona Toolkit 2.0.4 has been released. 23 bugs were fixed in this release,
3412and three new features were implemented. First, --filter was added to pt-kill
3413which allows for arbitrary --group-by. Second, pt-online-schema-change now
3414requires that its new --execute option be given, else the tool will just check
3415the tables and exit. This is a safeguard to encourage users to read the
3416documentation, particularly when replication is involved. Third, pt-stalk
3417also received a new option: --[no]stalk. To collect immediately without
3418stalking, specify --no-stalk and the tool will collect once and exit.
3419
3420This release is completely backwards compatible with previous 2.0 releases.
3421Given the number of bug fixes, it's worth upgrading to 2.0.4.
3422
3423Changelog
3424---------
3425
3426* Added --filter to pt-kill to allow arbitrary --group-by
3427* Added --[no]stalk to pt-stalk (bug 932331)
3428* Added --execute to pt-online-schema-change (bug 933232)
3429* Fixed bug 873598: pt-online-schema-change doesn't like reserved words in column names
3430* Fixed bug 928966: pt-pmp still uses insecure /tmp
3431* Fixed bug 933232: pt-online-schema-change can break replication
3432* Fixed bug 941225: Use of qw(...) as parentheses is deprecated at pt-kill line 3511
3433* Fixed bug 821694: pt-query-digest doesn't recognize hex InnoDB txn IDs
3434* Fixed bug 894255: pt-kill shouldn't check if STDIN is a tty when --daemonize is given
3435* Fixed bug 916999: pt-table-checksum error: DBD::mysql::st execute failed: called with 2 bind variables when 6 are needed
3436* Fixed bug 926598: DBD::mysql bug causes pt-upgrade to use wrong precision (M) and scale (D)
3437* Fixed bug 928226: pt-diskstats illegal division by zero
3438* Fixed bug 928415: Typo in pt-stalk doc: --trigger should be --function
3439* Fixed bug 930317: pt-archiver doc refers to nonexistent pt-query-profiler
3440* Fixed bug 930533: pt-sift looking for *-processlist1; broken compatibility with pt-stalk
3441* Fixed bug 932331: pt-stalk cannot collect without stalking
3442* Fixed bug 932442: pt-table-checksum error when column name has two spaces
3443* Fixed bug 932883: File Debian bug after each release
3444* Fixed bug 940503: pt-stalk disk space checks wrong on 32bit platforms
3445* Fixed bug 944420: --daemonize doesn't always close STDIN
3446* Fixed bug 945834: pt-sift invokes pt-diskstats with deprecated argument
3447* Fixed bug 945836: pt-sift prints awk error if there are no stack traces to aggregate
3448* Fixed bug 945842: pt-sift generates wrong state sum during processlist analysis
3449* Fixed bug 946438: pt-query-digest should print a better message when an unsupported log format is specified
3450* Fixed bug 946776: pt-table-checksum ignores --lock-wait-timeout
3451* Fixed bug 940440: Bad grammar in pt-kill docs
3452
3453v2.0.3 released 2012-02-03
3454==========================
3455
3456Percona Toolkit 2.0.3 has been released. The development team was very
3457busy last month making this release significant: two completely
3458redesigned and improved tools, pt-diskstats and pt-stalk, and 20 bug fixes.
3459
3460Both pt-diskstats and pt-stalk were redesigned and rewritten from the ground
3461up. This allowed us to greatly improve these tools' functionality and
3462increase testing for them. The accuracy and output of pt-diskstats was
3463enhanced, and the tool was rewritten in Perl. pt-collect was removed and
3464its functionality was put into a new, enhanced pt-stalk. pt-stalk is now
3465designed to be a stable, long-running daemon on a variety of common platforms.
3466It is worth re-reading the documentation for each of these tools.
3467
3468The 20 bug fixes cover a wide range of problems. The most important are
3469fixes to pt-table-checksum, pt-iostats, and pt-kill. Apart from pt-diskstats,
3470pt-stalk, and pt-collect (which was removed), no other tools were changed
3471in backwards-incompatible ways, so it is worth reviewing the full changelog
3472for this release and upgrading if you use any tools which had bug fixes.
3473
3474Thank you to the many people who reported bugs and submitted patches.
3475
3476Download the latest release of Percona Toolkit 2.0 from
3477http://www.percona.com/software/percona-toolkit/
3478or the Percona Software Repositories
3479(http://www.percona.com/docs/wiki/repositories:start).
3480
3481Changelog
3482---------
3483
3484* Completely redesigned pt-diskstats
3485* Completely redesigned pt-stalk
3486* Removed pt-collect and put its functionality in pt-stalk
3487* Fixed bug 871438: Bash tools are insecure
3488* Fixed bug 897758: Failed to prepare TableSyncChunk plugin: Use of uninitialized value $args{"chunk_range"} in lc at pt-table-sync line 3055
3489* Fixed bug 919819: pt-kill --execute-command creates zombies
3490* Fixed bug 925778: pt-ioprofile doesn't run without a file
3491* Fixed bug 925477: pt-ioprofile docs refer to pt-iostats
3492* Fixed bug 857091: pt-sift downloads http://percona.com/get/pt-pmp, which does not work
3493* Fixed bug 857104: pt-sift tries to invoke mext, should be pt-mext
3494* Fixed bug 872699: pt-diskstats: rd_avkb & wr_avkb derived incorrectly
3495* Fixed bug 897029: pt-diskstats computes wrong values for md0
3496* Fixed bug 882918: pt-stalk spams warning if oprofile isn't installed
3497* Fixed bug 884504: pt-stalk doesn't check pt-collect
3498* Fixed bug 897483: pt-online-schema-change "uninitialized value" due to update-foreign-keys-method
3499* Fixed bug 925007: pt-online-schema-change Use of uninitialized value $tables{"old_table"} in concatenation (.) or string at line 4330
3500* Fixed bug 915598: pt-config-diff ignores --ask-pass option
3501* Fixed bug 919352: pt-table-checksum changes binlog_format even if already set to statement
3502* Fixed bug 921700: pt-table-checksum doesn't add --where to chunk size test on replicas
3503* Fixed bug 921802: pt-table-checksum does not recognize --recursion-method=processlist
3504* Fixed bug 925855: pt-table-checksum index check is case-sensitive
3505* Fixed bug 821709: pt-show-grants --revoke and --separate don't work together
3506* Fixed bug 918247: Some tools use VALUE instead of VALUES
3507
3508v2.0.2 released 2012-01-05
3509==========================
3510
3511Percona Toolkit 2.0.2 fixes one critical bug: pt-table-sync --replicate
3512did not work with character values, causing an "Unknown column" error.
3513If using Percona Toolkit 2.0.1, you should upgrade to 2.0.2.
3514
3515Download the latest release of Percona Toolkit 2.0 from
3516http://www.percona.com/software/percona-toolkit/
3517or the Percona Software Repositories
3518(http://www.percona.com/docs/wiki/repositories:start).
3519
3520Changelog
3521---------
3522
3523* Fixed bug 911996: pt-table-sync --replicate causes "Unknown column" error
3524
3525v2.0.1 released 2011-12-30
3526==========================
3527
3528The Percona Toolkit development team is proud to announce a new major version:
35292.0. Beginning with Percona Toolkit 2.0, we are overhauling, redesigning, and
3530improving the major tools. 2.0 tools are therefore not backwards compatible
3531with 1.0 tools, which we still support but will not continue to develop.
3532
3533New in Percona Toolkit 2.0.1 is a completely redesigned pt-table-checksum.
3534The original pt-table-checksum 1.0 was rather complex, but it worked well
3535for many years. By contrast, the new pt-table-checksum 2.0 is much simpler but
3536also much more efficient and reliable. We spent months rethinking, redesigning,
3537and testing every aspect of the tool. The three most significant changes:
3538pt-table-checksum 2.0 does only --replicate, it has only one chunking algorithm,
3539and its memory usage is stable even with hundreds of thousands of tables and
3540trillions of rows. The tool is now dedicated to verifying MySQL replication
3541integrity, nothing else, which it does extremely well.
3542
3543In Percona Toolkit 2.0.1 we also fixed various small bugs and forked ioprofile
3544and align (as pt-ioprofile and pt-align) from Aspersa.
3545
3546If you still need functionalities in the original pt-table-checksum,
3547the latest Percona Toolkit 1.0 release remains available for download.
3548Otherwise, all new development in Percona Toolkit will happen in 2.0.
3549
3550Download the latest release of Percona Toolkit 2.0 from
3551http://www.percona.com/software/percona-toolkit/
3552or the Percona Software Repositories
3553(http://www.percona.com/docs/wiki/repositories:start).
3554
3555Changelog
3556---------
3557
3558* Completely redesigned pt-table-checksum
3559* Fixed bug 856065: pt-trend does not work
3560* Fixed bug 887688: Prepared statements crash pt-query-digest
3561* Fixed bug 888286: align not part of percona-toolkit
3562* Fixed bug 897961: ptc 2.0 replicate-check error does not include hostname
3563* Fixed bug 898318: ptc 2.0 --resume with --tables does not always work
3564* Fixed bug 903513: MKDEBUG should be PTDEBUG
3565* Fixed bug 908256: Percona Toolkit should include pt-ioprofile
3566* Fixed bug 821717: pt-tcp-model --type=requests crashes
3567* Fixed bug 844038: pt-online-schema-change documentation example w/drop-tmp-table does not work
3568* Fixed bug 864205: Remove the query to reset @crc from pt-table-checksum
3569* Fixed bug 898663: Typo in pt-log-player documentation
3570
3571v1.0.1 released 2011-09-01
3572==========================
3573
3574Percona Toolkit 1.0.1 has been released. In July, Baron announced planned
3575changes to Maatkit and Aspersa development;[1] Percona Toolkit is the
3576result. In brief, Percona Toolkit is the combined fork of Maatkit and
3577Aspersa, so although the toolkit is new, the programs are not. That means
3578Percona Toolkit 1.0.1 is mature, stable, and production-ready. In fact,
3579it's even a little more stable because we fixed a few bugs in this release.
3580
3581Percona Toolkit packages can be downloaded from
3582http://www.percona.com/downloads/percona-toolkit/
3583or the Percona Software Repositories
3584(http://www.percona.com/docs/wiki/repositories:start).
3585
3586Although Maatkit and Aspersa development use Google Code, Percona Toolkit
3587uses Launchpad: https://launchpad.net/percona-toolkit
3588
3589[1] http://www.xaprb.com/blog/2011/07/06/planned-change-in-maatkit-aspersa-development/
3590
3591Changelog
3592---------
3593
3594* Fixed bug 819421: MasterSlave::is_replication_thread() doesn't match all
3595* Fixed bug 821673: pt-table-checksum doesn't include --where in min max queries
3596* Fixed bug 821688: pt-table-checksum SELECT MIN MAX for char chunking is wrong
3597* Fixed bug 838211: pt-collect: line 24: [: : integer expression expected
3598* Fixed bug 838248: pt-collect creates a "5.1" file
3599
3600v0.9.5 released 2011-08-04
3601==========================
3602
3603Percona Toolkit 0.9.5 represents the completed transition from Maatkit and Aspersa. There are no bug fixes or new features, but some features have been removed (like --save-results from pt-query-digest). This release is the starting point for the 1.0 series where new development will happen, and no more changes will be made to the 0.9 series.
3604
3605Changelog
3606---------
3607
3608* Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit.
3609
3610Changelog
3611---------
3612
3613* Fixed bug 1279502: --version-check behaves like spyware
3614
3615=======
3616>>>>>>> MERGE-SOURCE
3617v2.2.6 released 2013-12-18
3618==========================
3619
3620Percona Toolkit 2.2.6 has been released. This release has 16 bug fixes and a few new features. One bug fix is very important, so 2.2 users are strongly encouraged to upgrade:
3621
3622* Fixed bug 1223458: pt-table-sync deletes child table rows
3623
3624Buried in the pt-table-sync docs is this warning:
3625
3626 Also be careful with tables that have foreign key constraints with C<ON DELETE>
3627 or C<ON UPDATE> definitions because these might cause unintended changes on the
3628 child tables.
3629
3630Until recently, either no one had this problem, or no one reported it, or no one realized that pt-table-sync caused it. In the worst case, pt-table-sync could delete all rows in child tables, which is quite surprising and bad. As of 2.2.6, pt-table-sync has option --[no]check-child-tables which is on by default. In cases were this "bug" can happen, pt-table-sync prints a warning and skips the table. Read the option's docs to learn more.
3631
3632Another good bug fix is:
3633
3634* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes
3635
3636After saying "pt-duplicate-key-checker hasn't had a bug in years" at enough conferences, users proved us wrong--thanks! The tool is better now.
3637
3638* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table
3639
3640This was poor feedback from the tool more than a bug. There was a point in the tool where it waited forever for slaves to catch up, but it did this silently. Now the tool reports --progress while it's waiting and it reports which slaves, if any, it found and intends to check. In short: its feedback delivers a better user experience.
3641
3642Finally, this bug (more like a feature request/change) might be a backwards-incompatible change:
3643
3644* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled
3645
3646The change is that pt-mysql-summary no longer prompts to dump and summarize schemas. To do this, you must specify --databases or, a new option, --all-databases. Several users said this behavior was better, so we made the change even though some might consider it a backwards-incompatible change.
3647
3648Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
3649
3650Changelog
3651---------
3652
3653* Added pt-query-digest support for Percona Server slow log rate limiting
3654* Added pt-agent --ping
3655* Added pt-mysql-summary --all-databases
3656* Added pt-stalk --sleep-collect
3657* Added pt-table-sync --[no]check-child-tables
3658* Fixed bug 1249150: PTDEBUG prints some info to STDOUT
3659* Fixed bug 1248363: pt-agent requires restart after changing MySQL options
3660* Fixed bug 1248778: pt-agent --install on PXC is not documented
3661* Fixed bug 1250973: pt-agent --install doesn't check for previous install
3662* Fixed bug 1250968: pt-agent --install suggest MySQL user isn't quoted
3663* Fixed bug 1251004: pt-agent --install error about slave is confusing
3664* Fixed bug 1251726: pt-agent --uninstall fails if agent is running
3665* Fixed bug 1248785: pt-agent docs don't list privs required for its MySQL user
3666* Fixed bug 1215016: pt-deadlock-logger docs use pt-fk-error-logger
3667* Fixed bug 1201443: pt-duplicate-key-checker error when EXPLAIN key_len=0
3668* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes
3669* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled
3670* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table
3671* Fixed bug 1249149: pt-query-digest stats prints to STDOUT instead of STDERR
3672* Fixed bug 1071979: pt-stak error parsing df with NFS
3673* Fixed bug 1223458: pt-table-sync deletes child table rows
3674
3675v2.2.5 released 2013-10-16
3676==========================
3677
3678Percona Toolkit 2.2.5 has been released. This release has four new features and a number of bugfixes.
3679
3680Query_time histogram has been added to the pt-query-digest JSON output, not the actual chart but the values necessary to render the chart later, so the values for each bucket.
3681
3682As of pt-table-checksum 2.2.5, skipped chunks cause a non-zero exit status. An exit status of zero or 32 is equivalent to a zero exit status with skipped chunks in previous versions of the tool.
3683
3684New --no-drop-triggers option has been implemented for pt-online-schema-change in case users want to rename the tables manually, when the load is low.
3685
3686New --new-table-name option has been added to pt-online-schema-change which can be used to specify the temporary table name.
3687
3688* Fixed bug #1199589: pt-archiver would delete the data even with the --dry-run option.
3689
3690* Fixed bug #821692: pt-query-digest didn't distill LOAD DATA correctly.
3691
3692* Fixed bug #984053: pt-query-digest didn't distill INSERT/REPLACE without INTO correctly.
3693
3694* Fixed bug #1206677: pt-agent docs were referencing wrong web address.
3695
3696* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster would crash if no nodes were found.
3697
3698Percona Toolkit packages can be downloaded from
3699http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
3700Repositories (http://www.percona.com/software/repositories
3701
3702Changelog
3703---------
3704
3705* Added Query_time histogram bucket counts to pt-query-digest JSON output
3706* Added pt-online-schema-change --[no]drop-triggers option
3707* Fixed bug #1199589: pt-archiver deletes data despite --dry-run
3708* Fixed bug #944051: pt-table-checksum has ambiguous exit status
3709* Fixed bug #1209436: pt-kill --log-dsn may not work on Perl 5.8
3710* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster crashes if no nodes are found
3711* Fixed bug #1215608: pt-online-schema-change new table suffix is hard-coded
3712* Fixed bug #1229861: pt-table-sync quotes float values, can't sync
3713* Fixed bug #821692: pt-query-digest doesn't distill LOAD DATA correctly
3714* Fixed bug #984053: pt-query-digest doesn't distill INSERT/REPLACE without INTO correctly
3715* Fixed bug #1206728: pt-deadlock-logger 2.2 requires DSN on command line
3716* Fixed bug #1226721: pt-agent on CentOS 5 fails to send data
3717* Fixed bug #821690: pt-query-digest doesn't distill IF EXISTS correctly
3718* Fixed bug #1206677: pt-agent docs reference clodu.percona.com
3719
3720v2.2.4 released 2013-07-18
3721==========================
3722
3723Percona Toolkit 2.2.4 has been released. This release two new features and a number of bugfixes.
3724
3725pt-query-digest --output json includes query examples as of v2.2.3. Some people might not want this because it exposes real data. New option, --output json-anon, has been implemented. This option will provide the same data without query examples. It's "anonymous" in the sense that there's no identifying data; nothing more than schema and table structs can be inferred from fingerprints.
3726
3727When using drop swap with pt-online-schema-change there is some production impact. This impact can be measured because tool outputs the current timestamp on lines for operations that may take awhile.
3728
3729* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6
3730pt-table-checksum would fail if variable explicit_defaults_for_timestamp was enabled in MySQL 5.6.
3731
3732* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0"
3733Trying to assign 0 to any variable by using --set-vars option would cause “Invalid --set-vars value” message.
3734
3735* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get
3736Fixed the typo in the pt-online-schema-change code that could lead to a tool crash when copying the rows.
3737
3738* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality
3739pt-table-checksum was using the first non-unique index instead of the one with the highest cardinality due to a sorting bug.
3740
3741Percona Toolkit packages can be downloaded from
3742http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
3743Repositories (http://www.percona.com/software/repositories
3744
3745Changelog
3746---------
3747
3748* Added pt-query-digest anonymous JSON output
3749* Added pt-online-schema-change timestamp output
3750* Fixed bug #1136559: pt-table-checksum: Deep recursion on subroutine "SchemaIterator::_iterate_dbh"
3751* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6
3752* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0"
3753* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get
3754* Fixed bug #1195034: pt-deadlock-logger error: Use of uninitialized value $ts in pattern match (m//)
3755* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality
3756* Fixed bug #1168434: pt-upgrade reports differences on NULL
3757* Fixed bug #1172317: pt-sift does not work if pt-stalk did not collect due to a full disk
3758* Fixed bug #1176010: pt-query-digest doesn't group db and `db` together
3759* Fixed bug #1137556: pt-heartbeat docs don't account for --utc
3760* Fixed bug #1168106: pt-variable-advisor has the wrong default value for innodb_max_dirty_pages_pct in 5.5 and 5.6
3761* Fixed bug #1168110: pt-variable-advisor shows key_buffer_size in 5.6 as unconfigured (even though it is)
3762* Fixed bug #1171968: pt-query-digest docs don't mention --type=rawlog
3763* Fixed bug #1174956: pt-query-digest and pt-fingerprint don't strip some multi-line comments
3764
3765
3766v2.2.3 released 2013-06-17
3767==========================
3768
3769Percona Toolkit 2.2.3 has been released which has only two changes: pt-agent
3770and a bug fix for pt-online-schema-change. pt-agent is not a command line
3771tool but a client-side agent for Percona Cloud Tools. Visit
3772https://cloud.percona.com for more information. The pt-online-schema-change
3773bug fix is bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02):
3774"Table 'db._t_new' doesn't exist". This happens when the tool's triggers
3775cannot be dropped.
3776
3777Percona Toolkit packages can be downloaded from
3778http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
3779Repositories (http://www.percona.com/software/repositories/).
3780
3781Changelog
3782---------
3783
3784* Added new tool: pt-agent
3785* Fixed bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02): Table 'db._t_new' doesn't exist"
3786
3787v2.2.2 released 2013-04-24
3788==========================
3789
3790Percona Toolkit 2.2.2 has been released. This is the second release of
3791the 2.2 series and aims to fix bugs in the previous release and provide
3792usability enhacements to the toolkit.
3793
3794Users may note the revival of the --show-all option in pt-query-digest.
3795This had been removed in 2.2.1, but resulted in too much output in
3796certain cases.
3797
3798A new --recursion-method was added to pt-table-checksum: cluster. This
3799method attempts to auto-discover cluster nodes, alleviating the need to
3800specify cluster node DSNs in a DSN table (--recursion-method=dsn).
3801
3802The following highlights some of the more interesting and "hot" bugs in
3803this release:
3804
3805* Bug #1127450: pt-archiver --bulk-insert may corrupt data
3806
3807pt-archiver --bulk-insert didn't work with --charset UTF-8. This revealed
3808a case where the tool could corrupt data by double-encoding. This is now
3809fixed, but remains relatively dangerous if using DBD::mysql 3.0007 which
3810does not handle UTF-8 properly.
3811
3812* Bug #1163372: pt-heartbeat --utc --check always returns 0
3813
3814Unfortunately, the relatively new --utc option for pt-heart was still
3815broken because "[MySQL] interprets date as a value in the current time zone
3816and converts it to an internal value in UTC." Now the tool works correctly
3817with --utc by specifying "SET time_zone='+0:00'", and older versions of
3818the tool can be made to work by specifying --set-vars "time_zone='+0:00'".
3819
3820* Bug #821502: Some tools don't have --help or --version
3821
3822pt-align, pt-mext, pt-pmp and pt-sift now have both options.
3823
3824This is another solid bug fix release, and all users are encouraged to upgrade.
3825
3826Percona Toolkit packages can be downloaded from
3827http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
3828Repositories (http://www.percona.com/software/repositories/).
3829
3830Changelog
3831---------
3832
3833* Added --show-all to pt-query-digest
3834* Added --recursion-method=cluster to pt-table-checksum
3835* Fixed bug 1127450: pt-archiver --bulk-insert may corrupt data
3836* Fixed bug 1163372: pt-heartbeat --utc --check always returns 0
3837* Fixed bug 1156901: pt-query-digest --processlist reports duplicate queries for replication thread
3838* Fixed bug 1160338: pt-query-digest 2.2 prints unwanted debug info on tcpdump parsing errors
3839* Fixed bug 1160918: pt-query-digest 2.2 prints too many string values
3840* Fixed bug 1156867: pt-stalk prints the wrong variable name in verbose mode when --function is used
3841* Fixed bug 1081733: pt-stalk plugins can't access the real --prefix
3842* Fixed bug 1099845: pt-table-checksum pxc same_node function incorrectly uses wsrep_sst_receive_address
3843* Fixed bug 821502: Some tools don't have --help or --version
3844* Fixed bug 947893: Some tools use @@hostname without /*!50038*/
3845* Fixed bug 1082406: An explicitly set wsrep_node_incoming_address may make SHOW STATUS LIKE 'wsrep_incoming_addresses' return a portless address
3846
3847v2.2.1 released 2013-03-14
3848==========================
3849
3850Percona Toolkit 2.2.1 has been released. This is the first release in
3851the new 2.2 series which supersedes the 2.1 series and renders the 2.0
3852series obsolete. We plan to do one more bug fix release for 2.1 (2.1.10),
3853but otherwise all new development and fixes and will now focus on 2.2.
3854
3855Percona Toolkit 2.2 has been several months in the making, and it turned
3856out very well, with many more new features, changes, and improvements than
3857originally anticipated. Here are the highlights:
3858
3859----
3860
3861* Official support for MySQL 5.6
3862
3863We started beta support for MySQL 5.6 in 2.1.8 when 5.6 was still beta.
3864Now that 5.6 is GA, so is our support for it. Check out the Percona Toolkit
3865supported platforms and versions:
3866http://www.percona.com/mysql-support/policies/percona-toolkit-supported-platforms-and-versions
3867
3868When you upgrade to MySQL 5.6, be sure to upgrade to Percona Toolkit 2.2, too.
3869
3870* Official support for Percona XtraDB Cluster (PXC)
3871
3872We also started beta support for Percona XtraDB Cluster in 2.1.8, but
3873now that support is official in 2.2 because we have had many months to
3874work with PXC and figure out which tools work with it and how. There's
3875still one noticeable omission: pt-table-sync. It's still unclear if
3876or how one would sync a cluster that, in theory, doesn't become out-of-sync.
3877As Percona XtraDB Cluster develops, Percona Toolkit will continue to
3878evolve to support it.
3879
3880* pt-online-schema-change (pt-osc) is much more resilient
3881
3882pt-online-schema-change 2.1 has been a great success, and people have been
3883using it for evermore difficult and challenging tasks. Consequently, we
3884needed to make it "try harder", even though it already tried pretty hard
3885to keep working despite recoverable errors and such. Whereas pt-osc 2.1
3886only retries certain operations, pt-osc 2.2 retries every critical operation,
3887and its tries and wait time between tries for all operations are configurable.
3888Also, we removed --lock-wait-timeout which set innodb_lock_wait_timeout
3889because that now conflicts, or is at least confused with, lock_wait_timeout
3890(introduced in MySQL 5.5) for metadata locks. Now --set-vars is used to
3891set both of these (or any) system variables. For a quick intro to metadata
3892locks and how they may affect you, see Ovais's article:
3893http://www.mysqlperformanceblog.com/2013/02/01/implications-of-metadata-locking-changes-in-mysql-5-5/
3894
3895What does this all mean? In short: pt-online-schema-change 2.2 is far more
3896resilient out of the box. It's also aware of metadata locks now, whereas
38972.1 was not really aware of them. And it's highly configurable, so you can
3898make the tool try _very_ hard to keep working.
3899
3900* pt-upgrade is brand-new
3901
3902pt-upgrade was written once long ago, thrown into the world, and then never
3903heard from again... until now. Now that we have four base versions of
3904MySQL (5.0, 5.1, 5.5, and 5.6), plus at least four major forks (Percona
3905Server, MariaDB, Percona XtraDB Cluster, and MariaDB Galera Cluster),
3906upgrades are fashionable, so to speak. Problem is: "original" pt-upgrade
3907was too noisy and too complex. pt-upgrade 2.2 is far simpler and far
3908easier to use. It's basically what you expect from such a tool.
3909
3910Moreover, it has a really helpful new feature: "reference results", i.e.
3911saved results from running queries on a server. Granted, this can take
3912_a lot_ of disk space, but it allows you to "run now, compare later."
3913
3914If you're thinking about upgrading, give pt-upgrade a try. It also reads
3915every type of log now (slow, general, binary, and tcpdump), so you shouldn't
3916have a problem finding queries to run and compare.
3917
3918* pt-query-digest is simpler
3919
3920pt-query-digest 2.2 has fewer options now. Basically, we re-focused it
3921on its primary objective: analyzing MySQL query logs. So the ability
3922to parse memcached, Postgres, Apache, and other logs was removed. We
3923also removed several options that probably nobody ever used, and
3924changed/renamed other options to be more logical. The result is a simpler,
3925more focused tool, i.e. less overwhelming.
3926
3927Also, pt-query-digest 2.2 can save results in JSON format (--output=json).
3928This feature is still in development while we determine the optimal
3929JSON structure.
3930
3931* Version check is on by default
3932
3933Way back in 2.1.4, released September/October 2012, we introduced a feature
3934called "version check" into most tools: http://percona.com/version-check
3935It's like a lot of software that automatically checks for updates, but
3936it's also more: it's a free service from Percona that advises when certain
3937programs (Percona Toolkit tools, MySQL, Perl, etc.) are either out of date
3938or are known bad versions. For example, there are two versions of the
3939DBD::mysql Perl module that have problems. And there are certain versions
3940of MySQL that have critical bugs. Version check will warn you about these
3941if your system is running them.
3942
3943What's new in 2.2 is that, whereas this feature (specifically, the option
3944in tools: --version-check) was off by default, now it's on by default.
3945If the IO::Socket::SSL Perl module is installed (easily available through
3946your package manager), it will use a secure (https) connection over the web,
3947else it will use a standard (http) connection.
3948
3949Check out http://percona.com/version-check for more information.
3950
3951* pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player are gone
3952
3953We removed pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player.
3954Granted, no tool is ever really gone: if you need one of these tools,
3955get it from 2.1. pt-log-player is now superseded by Percona Playback
3956(http://www.percona.com/doc/percona-playback/). pt-query-advisor was
3957removed so that we can focus our efforts on its online counterpart instead:
3958https://tools.percona.com/query-advisor. The other tools were special
3959projects that were not widely used.
3960
3961* pt-stalk and pt-mysql-summary have built-in MySQL options
3962
3963No more "pt-stalk -- -h db1 -u me". pt-stalk 2.2 and pt-mysql-summary 2.2
3964have all the standard MySQL options built-in, like other tools: --user,
3965--host, --port, --password, --socket, --defaults-file. So now the command
3966line is what you expect: pt-stalk -h dhb1 -u me.
3967
3968* pt-stalk --no-stalk is no longer magical
3969
3970Originally, pt-stalk --no-stalk was meant to simulate pt-collect, i.e.
3971collect once and exit. To do that, the tool magically set some options
3972and clobbered others, resulting in no way to do repeated collections
3973at intervals. Now --no-stalk means only that: don't stalk, just collect,
3974respecting --interval and --iterations as usual. So to collect once
3975and exit: pt-stalk --no-stalk --iterations 1.
3976
3977* pt-fk-error-logger and pt-deadlock-logger are standardized
3978
3979Similar to the pt-stalk --no-stalk changes, pt-fk-error-logger and
3980pt-deadlock-logger received mini overhauls in 2.2 to make their
3981run-related options (--run-time, --interval, --iterations) standard.
3982If you hadn't noticed, one tool would run forever by default, while
3983the other would run once and exit. And each treated their run-related
3984options a little differently. This magic is gone now: both tools run
3985forever by default, so specify --iterations or --run-time to limit how
3986long they run.
3987
3988----
3989
3990There were other miscellaneous bug fixes, too. See
3991https://launchpad.net/percona-toolkit/+milestone/2.2.1 for the full list.
3992
3993As the first release in a new series, 2.2 features are not yet finalized.
3994In other words, we may change things like the pt-query-digest --output json
3995format in future releases after receiving real-world feedback.
3996
3997Percona Toolkit 2.2 is an exciting release with many helpful new
3998features. Users are encouraged to begin upgrading, particularly given
3999that, except for the forthcoming 2.1.10 release, no more work will be
4000done on 2.1 (unless you're a Percona customer with a support contract or
4001other agreement).
4002
4003If you upgrade from 2.1 to 2.2, be sure to re-read tools' documentation
4004to see what has changed because much as changed for certain tools.
4005
4006Percona Toolkit packages can be downloaded from
4007http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
4008Repositories (http://www.percona.com/software/repositories/).
4009
4010Changelog
4011---------
4012
4013* Official support for MySQL 5.6
4014* Official support for Percona XtraDB Cluster
4015* Redesigned pt-query-digest
4016* Redesigned pt-upgrade
4017* Redesigned pt-fk-error-logger
4018* Redesigned pt-deadlock-logger
4019* Changed --set-vars in all tools
4020* Renamed --retries to --tries in pt-online-schema-change
4021* Added --check-read-only to pt-heartbeat
4022* Added MySQL options to pt-mysql-summary
4023* Added MySQL options to pt-stalk
4024* Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars)
4025* Removed --lock-wait-timeout from pt-table-checksum (use --set-vars)
4026* Removed pt-query-advisor
4027* Removed pt-tcp-model
4028* Removed pt-trend
4029* Removed pt-log-player
4030* Enabled --version-check by default in all tools
4031* Fixed bug 1008796: Several tools don't have --database
4032* Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values
4033* Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options
4034* Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time
4035* Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE
4036* Fixed bug 1113301: pt-online-schema-change blocks on metadata locks
4037* Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically
4038* Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions
4039* Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found
4040
4041v2.1.9 released 2013-02-14
4042==========================
4043
4044Percona Toolkit 2.1.9 has been released. This release primarily aims to
4045restore backwards-compatibility with pt-heartbeat 2.1.7 and older, but it
4046also has important bug fixes for other tools.
4047
4048* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
4049* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
4050
4051The previous release switched the time authority from Perl to MySQL, and from
4052local time to UTC. Unfortunately, these changes caused a loss of precision and,
4053if mixing versions of pt-heartbeat, made the tool report a huge amount of
4054replication lag. This release makes the tool compatible with pt-heartbeat
40552.1.7 and older again, but the UTC behavior introduced in 2.1.8 is now only
4056available by specifying the new --utc option.
4057
4058* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
4059
4060This is an important bug fix for pt-table-sync: certain chunks from
4061pt-table-checksum resulted in an impossible WHERE, causing the false-positive
4062"Cannot nibble" error, if those chunks had diffs.
4063
4064* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
4065
4066MariaDB 5.5.28 (https://kb.askmonty.org/en/mariadb-5528-changelog/) fixed
4067a bug: "Added warnings for duplicate key errors when using INSERT IGNORE".
4068However, standard MySQL does not warn in this case, despite the docs saying
4069that it should. Since pt-online-schema-change has always intended to ignore
4070duplicate entry errors by using "INSERT IGNORE", it now handles the MariaDB
4071case by also ignoring duplicate entry errors in the code.
4072
4073* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
4074
4075pt-online-schema-change 2.1.9 handles another case of changing the primary key.
4076However, since changing the primary key is tricky, the tool stops if --alter
4077contains "DROP PRIMARY KEY", and you have to specify --no-check-alter to
4078acknowledge this case.
4079
4080* Fixed bug 1099933: pt-stalk is too verbose, fills up log
4081
4082Previously, pt-stalk printed a line for every check. Since the tool is
4083designed to be a long-running daemon, this could result in huge log files
4084with "matched=no" lines. The tool has a new --verbose option which makes it
4085quieter by default.
4086
4087All users should upgrade, but in particular, users of versions 2.1.7 and
4088older are strongly recommended to skip 2.1.8 and go directly to 2.1.9.
4089
4090Users of pt-heartbeat in 2.1.8 who prefer the UTC behavior should keep in
4091mind that they will have to use the --utc option after upgrading.
4092
4093Percona Toolkit packages can be downloaded from
4094http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
4095Repositories (http://www.percona.com/software/repositories/).
4096
4097Changelog
4098---------
4099
4100* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps
4101* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP
4102* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB
4103* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns
4104* Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function
4105* Fixed bug 823411: pt-query-digest shouldn't print "Error: none" for tcpdump
4106* Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors
4107* Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave
4108* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index"
4109* Fixed bug 1099933: pt-stalk is too verbose, fills up log
4110
4111v2.1.8 released 2012-12-21
4112==========================
4113
4114Percona Toolkit 2.1.8 has been released. This release includes 28 bug fixes, beta support for MySQL 5.6, and extensive support for Percona XtraDB Cluster (PXC). Users intending on running the tools on Percona XtraDB Cluster or MySQL 5.6 should upgrade. The following tools have been verified to work on PXC versions 5.5.28 and newer:
4115
4116* pt-table-chcecksum
4117* pt-online-schema-change
4118* pt-archive
4119* pt-mysql-summary
4120* pt-heartbeat
4121* pt-variable-advisor
4122* pt-config-diff
4123* pt-deadlock-logger
4124
4125However, there are limitations when running these tools on PXC; see the Percona XtraDB Cluster section in each tool's documentation for further details. All other tools, with the exception of pt-slave-find, pt-slave-delay and pt-slave-restart, should also work correctly, but in some cases they have not been modified to take advantage of PXC features, so they may behave differently in future releases.
4126
4127The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
4128
4129* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query
4130
4131Slow logs which include timestamps but no query--which can happen if using slow_query_log_timestamp_always in Percona Server--were misparsed, resulting in an erroneous report. Now such no-query events show up in reports as ``/* No query */``.
4132
4133* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user"
4134
4135The "as" was misparsed and the following word would end up reported as the database; pt-query-digest now handles this correctly.
4136
4137* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5
4138
4139Some renamed variables had caused the Percona Server section to work unreliably.
4140
4141* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only
4142
4143When using --replicate-check-only, filter options like --databases and --tables were not applied.
4144
4145* Fixed bug 886059: pt-heartbeat handles timezones inconsistently
4146
4147Previously, pt-heartbeat respected the MySQL time zone, but this caused false readings (e.g. very high lag) with slaves running in different time zones. Now pt-heartbeat uses UTC regardless of the server or MySQL time zone.
4148
4149* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables
4150
4151Since MyISAM tables can't have foreign keys, and the tool uses the information_schema to find child tables, this could cause unnecessary load on the server.
4152
41532.1.8 continues the trend of solid bug fix releases, and all 2.1 users are encouraged to upgrade.
4154
4155Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
4156
4157Changelog
4158---------
4159
4160* Beta support for MySQL 5.6
4161* Beta support for Percona XtraDB Cluster
4162* pt-online-schema-change: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
4163* pt-table-checksum: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer
4164* pt-upgrade: Added --[no]disable-query-cache
4165* Fixed bug 927955: Bad pod2rst transformation
4166* Fixed bug 898665: Bad online docs formatting for --[no]vars
4167* Fixed bug 1022622: pt-config-diff is case-sensitive
4168* Fixed bug 1007938: pt-config-diff doesn't handle end-of-line comments
4169* Fixed bug 917770: pt-config-diff Use of uninitialized value in substitution (s///) at line 1996
4170* Fixed bug 1082104: pt-deadlock-logger doesn't handle usernames with dashes
4171* Fixed bug 886059: pt-heartbeat handles timezones inconsistently
4172* Fixed bug 1086259: pt-kill --log-dsn timestamp is wrong
4173* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5
4174* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables
4175* Fixed bug 823431: pt-query-advisor hangs on big queries
4176* Fixed bug 996069: pt-query-advisor RES.001 is incorrect
4177* Fixed bug 933465: pt-query-advisor false positive on RES.001
4178* Fixed bug 937234: pt-query-advisor issues wrong RES.001
4179* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query
4180* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user"
4181* Fixed bug 957442: pt-query-digest with custom --group-by throws error
4182* Fixed bug 887638: pt-query-digest prints negative byte offset
4183* Fixed bug 831525: pt-query-digest help output mangled
4184* Fixed bug 932614: pt-slave-restart CHANGE MASTER query causes error
4185* Fixed bug 1046440: pt-stalk purge_samples slows down checks
4186* Fixed bug 986847: pt-stalk does not report NFS iostat
4187* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only
4188* Fixed bug 911385: pt-table-checksum v2 fails when --resume + --ignore-database is used
4189* Fixed bug 1041391: pt-table-checksum debug statement for "Chosen hash func" prints undef
4190* Fixed bug 1075638: pt-table-checksum Illegal division by zero at line 7950
4191* Fixed bug 1052475: pt-table-checksum uninitialized value in numeric lt (<) at line 8611
4192* Fixed bug 1078887: Tools let --set-vars clobber the required SQL mode
4193
4194v2.1.7 released 2012-11-19
4195==========================
4196
4197Percona Toolkit 2.1.7 has been released which is a hotfix for two bugs when using pt-table-checksum with Percona XtraDB Cluster:
4198
4199* Bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG
4200* Bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes
4201
4202If you're using pt-table-checksum with a Percona XtraDB Cluster, you should upgrade. Otherwise, users can wait until the next full release.
4203
4204Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
4205
4206Changelog
4207---------
4208
4209* Fixed bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG
4210* Fixed bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes
4211
4212v2.1.6 released 2012-11-13
4213==========================
4214
4215Percona Toolkit 2.1.6 has been released. This release includes 33 bug fixes and three new features: pt-online-schema-change now handles renaming columns without losing data, removing one of the tool's limitations. pt-online-schema-change also got two new options: --default-engine and --statistics. Finally, pt-stalk now has a plugin hook interface, available through the --plugin option. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
4216
4217* Bug 978133: pt-query-digest review table privilege checks don't work
4218
4219The same checks were removed from pt-table-checksum on 2.1.3 and pt-table-sync on 2.1.4, so this just follows suit.
4220
4221* Bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
4222
4223A particularly important fix, as it may stop pt-table-checksum from breaking replication in these setups.
4224
4225* Bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag
4226
4227If you run multiple instances of pt-table-checksum on a badly lagged server, actually respecting --run-time stops the instances from divebombing the server when the replica catches up.
4228
4229* Bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key
4230
4231Fixed by choosing a key on the new table for the DELETE trigger.
4232
4233* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
4234
4235A follow up to the same fix in the previous release, this adds to warnings for cases in which pt-table-checksum may work incorrectly and require some user intervention: One for the case of master -> cluster, and one for cluster1 -> cluster2.
4236
4237* Bug 821715: LOAD DATA LOCAL INFILE broken in some platforms
4238
4239This bug has hounded the toolkit for quite some time. In some platforms, trying to use LOAD DATA LOCAL INFILE would fail as if the user didn't have enough privileges to perform the operation. This was a misdiagnoses from MySQL; The actual problem was that the libmysqlclient.so provided by some vendors was compiled in a way that disallowed users from using the statement without some extra work. This fix adds an 'L' option to the DSNs the toolkit uses, tells the the tools to explicitly enables LOAD DATA LOCAL INFILE. This affected two pt-archiver and pt-upgrade, so if you are on an effected OS and need to use those, you can simply tag an L=1 to your DSN and everything should start working.
4240
4241* Bug 866075: pt-show-grant doesn't support column-level grants
4242
4243This was actually the 'hottest' bug in the tracker.
4244
4245This is another solid bug fix release, and all 2.1 users are encouraged to upgrade.
4246
4247Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
4248
4249Changelog
4250---------
4251
4252* pt-online-schema-change: Columns can now be renamed without data loss
4253* pt-online-schema-change: New --default-engine option
4254* pt-stalk: Plugin hooks available through the --plugin option to extend the tool's functionality
4255* Fixed bug 1069951: --version-check default should be explicitly "off"
4256* Fixed bug 821715: LOAD DATA LOCAL INFILE broken in some platforms
4257* Fixed bug 995896: Useless use of cat in Daemon.pm
4258* Fixed bug 1039074: Tools exit 0 on error parsing options, should exit non-zero
4259* Fixed bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
4260* Fixed bug 1009510: pt-table-checksum breaks replication if a slave table is missing or different
4261* Fixed bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag
4262* Fixed bug 1073532: pt-table-checksum error: Use of uninitialized value in int at line 2778
4263* Fixed bug 1016131: pt-table-checksum can crash with --columns if none match
4264* Fixed bug 1039569: pt-table-checksum dies if creating the --replicate table fails
4265* Fixed bug 1059732: pt-table-checksum doesn't test all hash functions
4266* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
4267* Fixed bug 1043528: pt-deadlock-logger can't parse db/tbl/index on partitioned tables
4268* Fixed bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key
4269* Fixed bug 1058285: pt-online-schema-change fails if sql_mode explicitly or implicitly uses ANSI_QUOTES
4270* Fixed bug 1073996: pt-online-schema-change fails with "I need a max_rows argument"
4271* Fixed bug 1039541: pt-online-schema-change --quiet doesn't disable --progress
4272* Fixed bug 1045317: pt-online-schema-change doesn't report how many warnings it suppressed
4273* Fixed bug 1060774: pt-upgrade fails if select column > 64 chars
4274* Fixed bug 1070916: pt-mysql-summary may report the wrong cnf file
4275* Fixed bug 903229: pt-mysql-summary incorrectly categorizes databases
4276* Fixed bug 866075: pt-show-grant doesn't support column-level grants
4277* Fixed bug 978133: pt-query-digest review table privilege checks don't work
4278* Fixed bug 956981: pt-query-digest docs for event attributes link to defunct Maatkit wiki
4279* Fixed bug 1047335: pt-duplicate-key-checker fails when it encounters a crashed table
4280* Fixed bug 1047701: pt-stalk deletes non-empty files
4281* Fixed bug 1070434: pt-stalk --no-stalk and --iterations 1 don't wait for the collect
4282* Fixed bug 1052722: pt-fifo-split is processing n-1 rows initially
4283* Fixed bug 1013407: pt-find documentation error with mtime and InnoDB
4284* Fixed bug 1059757: pt-trend output has no header
4285* Fixed bug 1063933: pt-visual-explain docs link to missing pdf
4286* Fixed bug 1075773: pt-fk-error-logger crashes if there's no foreign key error
4287* Fixed bug 1075775: pt-fk-error-logger --dest table example doesn't work
4288
4289v2.1.5 released 2012-10-08
4290==========================
4291
4292Percona Toolkit 2.1.5 has been released. This release is less than two weeks after the release of 2.1.4 because we wanted to address these bugs quickly:
4293
4294* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
4295
4296* Bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes
4297
4298* Bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL
4299
4300The first two bugs fix how pt-table-checksum works with Percona XtraDB Cluster (PXC). Although the 2.1.4 release did introduce support for PXC, these bugs prevented pt-table-checksum from working correctly with a cluster.
4301
4302The third bug is also related to a feature new in 2.1.4: --version-check. The feature uses HTTPS/SSL by default, but some modules in pt-table-sync weren't update which could prevent it from working on older systems. Related, the version check web page mentioned in tools' documentation was also created.
4303
4304If you're using pt-table-checksum with a Percona XtraDB Cluster, you should definitely upgrade. Otherwise, users can wait until 2.1.6 for another full release.
4305
4306Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
4307
4308Changelog
4309---------
4310
4311* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes
4312* Fixed bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes
4313* Fixed bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL
4314* Fixed bug 1060423: Missing version-check page
4315
4316v2.1.4 released 2012-09-20
4317==========================
4318
4319Percona Toolkit 2.1.4 has been released. This release includes 26 bug fixes and three new features: Making pt-table-checksum work with Percona XtraDB Cluster, adding a --run-time option to pt-table-checksum, and implementing the "Version Check" feature, enabled through the --version-check switch. For further information on --version-check, see http://www.mysqlperformanceblog.com/2012/09/10/introducing-the-version-check-feature-in-percona-toolkit/. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
4320
4321* Fixed bug 1017626: pt-table-checksum doesn't work with Percona XtraDB Cluster
4322
4323Note that this requires Percona XtraDB Cluster 5.5.27-23.6 or newer, as the fix depends on this bug https://bugs.launchpad.net/codership-mysql/+bug/1023911 being resolved.
4324
4325* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves
4326
4327Previously, users had no recourse but using --recursion-method in conjunction with a dsn table to sidestep this bug, so this fix is a huge usability gain. This was caused by the toolkit not copying the -F portion of the main dsn.
4328
4329* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument"
4330
4331Which were stopping pt-upgrade from working on a MySQL 4.1 host.
4332
4333* Fixed bug 1036747: pt-table-sync priv checks need to be removed
4334
4335The same checks were removed in the previous release from pt-table-checksum, so this continues the trend.
4336
4337* Fixed bug 1038995: pt-stalk --notify-by-email fails
4338
4339This was a bug in our shell option parsing library, and would potentially affect any option starting with 'no'.
4340
4341Like 2.1.3, this is another solid bug fix release, and 2.1 users are encouraged to upgrade.
4342
4343Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
4344
4345Changelog
4346---------
4347
4348* pt-table-checksum: Percona XtraDB Cluster support
4349* pt-table-checksum: Implemented the standard --run-time option
4350* Implemented the version-check feature in several tools, enabled with the --version-check option
4351* Fixed bug 856060: Document gdb dependency
4352* Fixed bug 1041394: Unquoted arguments to tr break the bash tools
4353* Fixed bug 1035311: pt-diskstats shows wrong device names
4354* Fixed bug 1036804: pt-duplicate-key-checker error parsing InnoDB table with no PK or unique keys
4355* Fixed bug 1022658: pt-online-schema-change dropping FK limitation isn't documented
4356* Fixed bug 1041372: pt-online-schema-changes fails if db+tbl name exceeds 64 characters
4357* Fixed bug 1029178: pt-query-digest --type tcpdump memory usage keeps increasing
4358* Fixed bug 1037211: pt-query-digest won't distill LOCK TABLES in lowercase
4359* Fixed bug 942114: pt-stalk warns about bad "find" usage
4360* Fixed bug 1035319: pt-stalk df -h throws away needed details
4361* Fixed bug 1038995: pt-stalk --notify-by-email fails
4362* Fixed bug 1038995: pt-stalk does not get all InnoDB lock data
4363* Fixed bug 952722: pt-summary should show information about Fusion-io cards
4364* Fixed bug 899415: pt-table-checksum doesn't work if slaves use RBR
4365* Fixed bug 954588: pt-table-checksum --check-slave-lag docs aren't clear
4366* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves
4367* Fixed bug 930693: pt-table-sync and text columns with just whitespace
4368* Fixed bug 1028710: pt-table-sync base_count fails on n = 1000, base = 10
4369* Fixed bug 1034717: pt-table-sync division by zero error with varchar primary key
4370* Fixed bug 1036747: pt-table-sync priv checks need to be removed
4371* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument"
4372* Fixed bug 1035260: sh warnings in pt-summary and pt-mysql-summary
4373* Fixed bug 1038276: ChangeHandler doesn't quote varchar columns with hex-looking values
4374* Fixed bug 916925: CentOS 5 yum dependency resolution for perl module is wrong
4375* Fixed bug 1035950: Percona Toolkit RPM should contain a dependency on perl-Time-HiRes
4376
4377v2.1.3 released 2012-08-03
4378==========================
4379
4380Percona Toolkit 2.1.3 has been released. This release includes 31 bug fixes and one new feature: pt-kill --log-dsn to log information about killed queries to a table. The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs:
4381
4382* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5
4383
4384pt-table-checksum used to check the user's privileges, but the method was not always reliable, and due to http://bugs.mysql.com/bug.php?id=61846 it became quite unreliable on MySQL 5.5. So the privs check was removed altogether, meaning that the tool may fail later if the user's privileges are insufficient.
4385
4386* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS
4387
4388In certain cases where the master and replicas have different schemas and/or tables, pt-table-checksum could break replication because the checksums table did not exist on a replica.
4389
4390* Fixed bug 821703: pt-query-digest --processlist may crash
4391* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns
4392
4393Certain distributions of MySQL add extra columns to SHOW PROCESSLIST which caused pt-query-digest --processlist to crash at times.
4394
4395* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost
4396
4397pt-kill is meant to be a long-running daemon, so naturally it's important that it stays connected to MySQL.
4398
4399* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error
4400
4401The combination of these pt-heartbeat options could cause replication to break due to a duplicate key error.
4402
4403* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519
4404
4405This bug was related to how --quiet was handled, and it could happen even if --quiet wasn't given on the command line.
4406
4407All in all, this is solid bug fix release, and 2.1 users are encouraged to upgrade.
4408
4409Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
4410
4411Changelog
4412---------
4413
4414* pt-kill: Implemented --log-dsn to log info about killed queries to a table
4415* Fixed bug 1016127: Install hint for DBD::mysql is wrong
4416* Fixed bug 984915: DSNParser does not check success of --set-vars
4417* Fixed bug 889739: pt-config-diff doesn't diff quoted strings properly
4418* Fixed bug 969669: pt-duplicate-key-checker --key-types=k doesn't work
4419* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error
4420* Fixed bug 1028614: pt-index-usage ignores --database
4421* Fixed bug 940733: pt-ioprofile leaves behind temp directory
4422* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost
4423* Fixed bug 1016114: pt-online-schema-change docs don't mention default values
4424* Fixed bug 1020997: pt-online-schema-change fails when table is empty
4425* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519
4426* Fixed bug 937225: pt-query-advisor OUTER JOIN advice in JOI.003 is confusing
4427* Fixed bug 821703: pt-query-digest --processlist may crash
4428* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns
4429* Fixed bug 924950: pt-query-digest --group-by db may crash profile report
4430* Fixed bug 1022851: pt-sift error: PREFIX: unbound variable
4431* Fixed bug 969703: pt-sift defaults to '.' instead of '/var/lib/pt-talk'
4432* Fixed bug 962330: pt-slave-delay incorrectly computes lag if started when slave is already lagging
4433* Fixed bug 954990: pt-stalk --nostalk does not work
4434* Fixed bug 977226: pt-summary doesn't detect LSI RAID control
4435* Fixed bug 1030031: pt-table-checksum reports wrong number of DIFFS
4436* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5
4437* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS
4438* Fixed bug 953141: pt-table-checksum ignores its default and explicit --recursion-method
4439* Fixed bug 1030975: pt-table-sync crashes if sql_mode includes ANSI_QUOTES
4440* Fixed bug 869005: pt-table-sync should always set REPEATABLE READ
4441* Fixed bug 903510: pt-tcp-model crashes in --type=requests mode on empty file
4442* Fixed bug 934310: pt-tcp-model --quantile docs wrong
4443* Fixed bug 980318: pt-upgrade results truncated if hostnames are long
4444* Fixed bug 821696: pt-variable-advisor shows too long of a snippet
4445* Fixed bug 844880: pt-variable-advisor shows binary logging as both enabled and disabled
4446
4447v2.1.2 released 2012-06-12
4448==========================
4449
4450Percona Toolkit 2.1.2 has been released. This is a very important release because it fixes a critical bug in pt-table-sync (bug 1003014) which caused various failures. All users of Percona Toolkit 2.1 should upgrade to this release. There were 47 other bug fixes, several new options, and other changes. The following is a high-level summary of the most important changes.
4451
4452In addition to the critical bug fix mentioned above, another important pt-table-sync bug was fixed, bug 1002365: --ignore-* options did not work with --replicate. The --lock-and-rename feature of the tool was also disabled unless running MySQL 5.5 or newer because it did not work reliably in earlier versions of MySQL.
4453
4454Several important pt-table-checksum bugs were fixed. First, a bug caused the tool to ignore the primary key. Second, the tool did not wait for the checksum table to replicate, so it could select from a nonexistent table on a replica and crash. Third, it did not check if all checksum queries were safe and chunk index with more than 3 columns could cause MySQL to scan many more rows than expected.
4455
4456pt-online-schema-change received many improvements and fixes: it did not retry deadlocks, but now it does; --no-swap-tables caused an error; it did not handle column renames; it did not allow disabling foreign key checks; --dry-run always failed on tables with foreign keys; it used different keys for chunking and triggers; etc. In short: pt-online-schema-change 2.1.2 is superior to 2.1.1.
4457
4458Two pt-archiver bugs were fixed: bug 979092, --sleep conflicts with bulk operations; and bug 903379, --file doesn't create a file.
4459
4460--recursion-method=none was implemented in pt-heartbeat, pt-online-schema-change, pt-slave-find, pt-slave-restart, pt-table-checksum, and pt-table-sync. This allows these tools to avoid executing SHOW SLAVE STATUS which requires a privilege not available to Amazon RDS users.
4461
4462Other bugs were fixed in pt-stalk, pt-variable-advisor, pt-duplicate-key-checker, pt-diskstats, pt-query-digest, pt-sift, pt-kill, pt-summary, and pt-deadlock-logger.
4463
4464Percona Toolkit 2.1.2 should be backwards-compatible with 2.1.1, so users are strongly encouraged to upgrade.
4465
4466Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/).
4467
4468Changelog
4469---------
4470
4471* pt-heartbeat: Implemented --recursion-method=none
4472* pt-index-usage: MySQL 5.5 compatibility fixes
4473* pt-log-player: MySQL 5.5 compatibility fixes
4474* pt-online-schema-change: Added --chunk-index-columns
4475* pt-online-schema-change: Added --[no]check-plan
4476* pt-online-schema-change: Added --[no]drop-new-table
4477* pt-online-schema-change: Implemented --recursion-method=none
4478* pt-query-advisor: Added --report-type for JSON output
4479* pt-query-digest: Removed --[no]zero-bool
4480* pt-slave-delay: Added --database
4481* pt-slave-find: Implemented --recursion-method=none
4482* pt-slave-restart: Implemented --recursion-method=none
4483* pt-table-checksum: Added --chunk-index-columns
4484* pt-table-checksum: Added --[no]check-plan
4485* pt-table-checksum: Implemented --recursion-method=none
4486* pt-table-sync: Disabled --lock-and-rename except for MySQL 5.5 and newer
4487* pt-table-sync: Implemented --recursion-method=none
4488* Fixed bug 945079: Shell tools TMPDIR may break
4489* Fixed bug 912902: Some shell tools still use basename
4490* Fixed bug 987694: There is no --recursion-method=none option
4491* Fixed bug 886077: Passwords with commas don't work, expose part of password
4492* Fixed bug 856024: Lintian warnings when building percona-toolkit Debian package
4493* Fixed bug 903379: pt-archiver --file doesn't create a file
4494* Fixed bug 979092: pt-archiver --sleep conflicts with bulk operations
4495* Fixed bug 903443: pt-deadlock-logger crashes on MySQL 5.5
4496* Fixed bug 941064: pt-deadlock-logger can't clear deadlocks on 5.5
4497* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
4498* Fixed bug 994176: pt-diskstats --group-by=all --headers=scroll prints a header for every sample
4499* Fixed bug 894140: pt-duplicate-key-checker sometimes recreates a key it shouldn't
4500* Fixed bug 923896: pt-kill: uninitialized value causes script to exit
4501* Fixed bug 1003003: pt-online-schema-change uses different keys for chunking and triggers
4502* Fixed bug 1003315: pt-online-schema-change --dry-run always fails on table with foreign keys
4503* Fixed bug 1004551: pt-online-schema-change --no-swap-tables causes error
4504* Fixed bug 976108: pt-online-schema-change doesn't allow to disable foreign key checks
4505* Fixed bug 976109: pt-online-schema-change doesn't handle column renames
4506* Fixed bug 988036: pt-online-schema-change causes deadlocks under heavy write load
4507* Fixed bug 989227: pt-online-schema-change crashes with PTDEBUG
4508* Fixed bug 994002: pt-online-schema-change 2.1.1 doesn't choose the PRIMARY KEY
4509* Fixed bug 994010: pt-online-schema-change 2.1.1 crashes without InnoDB
4510* Fixed bug 996915: pt-online-schema-change crashes with invalid --max-load and --critical-load
4511* Fixed bug 998831: pt-online-schema-change -- Should have an option to NOT drop tables on failure
4512* Fixed bug 1002448: pt-online-schema-change: typo for finding usable indexes
4513* Fixed bug 885382: pt-query-digest --embedded-attributes doesn't check cardinality
4514* Fixed bug 888114: pt-query-digest report crashes with infinite loop
4515* Fixed bug 949630: pt-query-digest mentions a Subversion repository
4516* Fixed bug 844034: pt-show-grants --separate fails with proxy user
4517* Fixed bug 946707: pt-sift loses STDIN after pt-diskstats
4518* Fixed bug 994947: pt-stalk doesn't reset cycles_true after collection
4519* Fixed bug 986151: pt-stalk-has mktemp error
4520* Fixed bug 993436: pt-summary Memory: Total reports M instead of G
4521* Fixed bug 1008778: pt-table-checksum doesn't wait for checksum table to replicate
4522* Fixed bug 1010232: pt-table-checksum doesn't check the size of checksum chunks
4523* Fixed bug 1011738: pt-table-checksum SKIPPED is zero but chunks were skipped
4524* Fixed bug 919499: pt-table-checksum fails with binary log error in mysql >= 5.5.18
4525* Fixed bug 972399: pt-table-checksum docs are not rendered right
4526* Fixed bug 978432: pt-table-checksum ignoring primary key
4527* Fixed bug 995274: pt-table-checksum can't use an undefined value as an ARRAY reference at line 2206
4528* Fixed bug 996110: pt-table-checksum crashes if InnoDB is disabled
4529* Fixed bug 987393: pt-table-checksum: Empy tables cause "undefined value as an ARRAY" errors
4530* Fixed bug 1002365: pt-table-sync --ignore-* options don't work with --replicate
4531* Fixed bug 1003014: pt-table-sync --replicate and --sync-to-master error "index does not exist"
4532* Fixed bug 823403: pt-table-sync --lock-and-rename doesn't work on 5.1
4533* Fixed bug 898138: pt-variable-advisor doesn't recognize 5.5.3+ concurrent_insert values
4534
4535v2.1.1 released 2012-04-03
4536==========================
4537
4538Percona Toolkit 2.1.1 has been released. This is the first release in the
4539new 2.1 series which supersedes the 2.0 series. We will continue to fix bugs
4540in 2.0, but 2.1 is now the focus of development.
4541
45422.1 introduces a lot of new code for:
4543
4544* pt-online-schema-change (completely redesigned)
4545* pt-mysql-summary (completely redesigned)
4546* pt-summary (completely redesigned)
4547* pt-fingerprint (new tool)
4548* pt-table-usage (new tool)
4549
4550There were also several bug fixes.
4551
4552The redesigned tools are meant to replace their 2.0 counterparts because
4553the 2.1 versions have the same or more functionality and they are simpler
4554and more reliable. pt-online-schema-change was particularly enhanced to
4555be as safe as possible given that the tool is inherently risky.
4556
4557Percona Toolkit packages can be downloaded from
4558http://www.percona.com/downloads/percona-toolkit/ or the Percona Software
4559Repositories (http://www.percona.com/software/repositories/).
4560
4561Changelog
4562---------
4563
4564* Completely redesigned pt-online-schema-change
4565* Completely redesigned pt-mysql-summary
4566* Completely redesigned pt-summary
4567* Added new tool: pt-table-usage
4568* Added new tool: pt-fingerprint
4569* Fixed bug 955860: pt-stalk doesn't run vmstat, iostat, and mpstat for --run-time
4570* Fixed bug 960513: SHOW TABLE STATUS is used needlessly
4571* Fixed bug 969726: pt-online-schema-change loses foreign keys
4572* Fixed bug 846028: pt-online-schema-change does not show progress until completed
4573* Fixed bug 898695: pt-online-schema-change add useless ORDER BY
4574* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s
4575* Fixed bug 963225: pt-query-digest fails to set history columns for disk tmp tables and disk filesort
4576* Fixed bug 967451: Char chunking doesn't quote column name
4577* Fixed bug 972399: pt-table-checksum docs are not rendered right
4578* Fixed bug 896553: Various documentation spelling fixes
4579* Fixed bug 949154: pt-variable-advisor advice for relay-log-space-limit
4580* Fixed bug 953461: pt-upgrade manual broken 'output' section
4581* Fixed bug 949653: pt-table-checksum docs don't mention risks posed by inconsistent schemas
4582
4583v2.0.4 released 2012-03-07
4584==========================
4585
4586Percona Toolkit 2.0.4 has been released. 23 bugs were fixed in this release,
4587and three new features were implemented. First, --filter was added to pt-kill
4588which allows for arbitrary --group-by. Second, pt-online-schema-change now
4589requires that its new --execute option be given, else the tool will just check
4590the tables and exit. This is a safeguard to encourage users to read the
4591documentation, particularly when replication is involved. Third, pt-stalk
4592also received a new option: --[no]stalk. To collect immediately without
4593stalking, specify --no-stalk and the tool will collect once and exit.
4594
4595This release is completely backwards compatible with previous 2.0 releases.
4596Given the number of bug fixes, it's worth upgrading to 2.0.4.
4597
4598Changelog
4599---------
4600
4601* Added --filter to pt-kill to allow arbitrary --group-by
4602* Added --[no]stalk to pt-stalk (bug 932331)
4603* Added --execute to pt-online-schema-change (bug 933232)
4604* Fixed bug 873598: pt-online-schema-change doesn't like reserved words in column names
4605* Fixed bug 928966: pt-pmp still uses insecure /tmp
4606* Fixed bug 933232: pt-online-schema-change can break replication
4607* Fixed bug 941225: Use of qw(...) as parentheses is deprecated at pt-kill line 3511
4608* Fixed bug 821694: pt-query-digest doesn't recognize hex InnoDB txn IDs
4609* Fixed bug 894255: pt-kill shouldn't check if STDIN is a tty when --daemonize is given
4610* Fixed bug 916999: pt-table-checksum error: DBD::mysql::st execute failed: called with 2 bind variables when 6 are needed
4611* Fixed bug 926598: DBD::mysql bug causes pt-upgrade to use wrong precision (M) and scale (D)
4612* Fixed bug 928226: pt-diskstats illegal division by zero
4613* Fixed bug 928415: Typo in pt-stalk doc: --trigger should be --function
4614* Fixed bug 930317: pt-archiver doc refers to nonexistent pt-query-profiler
4615* Fixed bug 930533: pt-sift looking for *-processlist1; broken compatibility with pt-stalk
4616* Fixed bug 932331: pt-stalk cannot collect without stalking
4617* Fixed bug 932442: pt-table-checksum error when column name has two spaces
4618* Fixed bug 932883: File Debian bug after each release
4619* Fixed bug 940503: pt-stalk disk space checks wrong on 32bit platforms
4620* Fixed bug 944420: --daemonize doesn't always close STDIN
4621* Fixed bug 945834: pt-sift invokes pt-diskstats with deprecated argument
4622* Fixed bug 945836: pt-sift prints awk error if there are no stack traces to aggregate
4623* Fixed bug 945842: pt-sift generates wrong state sum during processlist analysis
4624* Fixed bug 946438: pt-query-digest should print a better message when an unsupported log format is specified
4625* Fixed bug 946776: pt-table-checksum ignores --lock-wait-timeout
4626* Fixed bug 940440: Bad grammar in pt-kill docs
4627
4628v2.0.3 released 2012-02-03
4629==========================
4630
4631Percona Toolkit 2.0.3 has been released. The development team was very
4632busy last month making this release significant: two completely
4633redesigned and improved tools, pt-diskstats and pt-stalk, and 20 bug fixes.
4634
4635Both pt-diskstats and pt-stalk were redesigned and rewritten from the ground
4636up. This allowed us to greatly improve these tools' functionality and
4637increase testing for them. The accuracy and output of pt-diskstats was
4638enhanced, and the tool was rewritten in Perl. pt-collect was removed and
4639its functionality was put into a new, enhanced pt-stalk. pt-stalk is now
4640designed to be a stable, long-running daemon on a variety of common platforms.
4641It is worth re-reading the documentation for each of these tools.
4642
4643The 20 bug fixes cover a wide range of problems. The most important are
4644fixes to pt-table-checksum, pt-iostats, and pt-kill. Apart from pt-diskstats,
4645pt-stalk, and pt-collect (which was removed), no other tools were changed
4646in backwards-incompatible ways, so it is worth reviewing the full changelog
4647for this release and upgrading if you use any tools which had bug fixes.
4648
4649Thank you to the many people who reported bugs and submitted patches.
4650
4651Download the latest release of Percona Toolkit 2.0 from
4652http://www.percona.com/software/percona-toolkit/
4653or the Percona Software Repositories
4654(http://www.percona.com/docs/wiki/repositories:start).
4655
4656Changelog
4657---------
4658
4659* Completely redesigned pt-diskstats
4660* Completely redesigned pt-stalk
4661* Removed pt-collect and put its functionality in pt-stalk
4662* Fixed bug 871438: Bash tools are insecure
4663* Fixed bug 897758: Failed to prepare TableSyncChunk plugin: Use of uninitialized value $args{"chunk_range"} in lc at pt-table-sync line 3055
4664* Fixed bug 919819: pt-kill --execute-command creates zombies
4665* Fixed bug 925778: pt-ioprofile doesn't run without a file
4666* Fixed bug 925477: pt-ioprofile docs refer to pt-iostats
4667* Fixed bug 857091: pt-sift downloads http://percona.com/get/pt-pmp, which does not work
4668* Fixed bug 857104: pt-sift tries to invoke mext, should be pt-mext
4669* Fixed bug 872699: pt-diskstats: rd_avkb & wr_avkb derived incorrectly
4670* Fixed bug 897029: pt-diskstats computes wrong values for md0
4671* Fixed bug 882918: pt-stalk spams warning if oprofile isn't installed
4672* Fixed bug 884504: pt-stalk doesn't check pt-collect
4673* Fixed bug 897483: pt-online-schema-change "uninitialized value" due to update-foreign-keys-method
4674* Fixed bug 925007: pt-online-schema-change Use of uninitialized value $tables{"old_table"} in concatenation (.) or string at line 4330
4675* Fixed bug 915598: pt-config-diff ignores --ask-pass option
4676* Fixed bug 919352: pt-table-checksum changes binlog_format even if already set to statement
4677* Fixed bug 921700: pt-table-checksum doesn't add --where to chunk size test on replicas
4678* Fixed bug 921802: pt-table-checksum does not recognize --recursion-method=processlist
4679* Fixed bug 925855: pt-table-checksum index check is case-sensitive
4680* Fixed bug 821709: pt-show-grants --revoke and --separate don't work together
4681* Fixed bug 918247: Some tools use VALUE instead of VALUES
4682
4683v2.0.2 released 2012-01-05
4684==========================
4685
4686Percona Toolkit 2.0.2 fixes one critical bug: pt-table-sync --replicate
4687did not work with character values, causing an "Unknown column" error.
4688If using Percona Toolkit 2.0.1, you should upgrade to 2.0.2.
4689
4690Download the latest release of Percona Toolkit 2.0 from
4691http://www.percona.com/software/percona-toolkit/
4692or the Percona Software Repositories
4693(http://www.percona.com/docs/wiki/repositories:start).
4694
4695Changelog
4696---------
4697
4698* Fixed bug 911996: pt-table-sync --replicate causes "Unknown column" error
4699
4700v2.0.1 released 2011-12-30
4701==========================
4702
4703The Percona Toolkit development team is proud to announce a new major version:
47042.0. Beginning with Percona Toolkit 2.0, we are overhauling, redesigning, and
4705improving the major tools. 2.0 tools are therefore not backwards compatible
4706with 1.0 tools, which we still support but will not continue to develop.
4707
4708New in Percona Toolkit 2.0.1 is a completely redesigned pt-table-checksum.
4709The original pt-table-checksum 1.0 was rather complex, but it worked well
4710for many years. By contrast, the new pt-table-checksum 2.0 is much simpler but
4711also much more efficient and reliable. We spent months rethinking, redesigning,
4712and testing every aspect of the tool. The three most significant changes:
4713pt-table-checksum 2.0 does only --replicate, it has only one chunking algorithm,
4714and its memory usage is stable even with hundreds of thousands of tables and
4715trillions of rows. The tool is now dedicated to verifying MySQL replication
4716integrity, nothing else, which it does extremely well.
4717
4718In Percona Toolkit 2.0.1 we also fixed various small bugs and forked ioprofile
4719and align (as pt-ioprofile and pt-align) from Aspersa.
4720
4721If you still need functionalities in the original pt-table-checksum,
4722the latest Percona Toolkit 1.0 release remains available for download.
4723Otherwise, all new development in Percona Toolkit will happen in 2.0.
4724
4725Download the latest release of Percona Toolkit 2.0 from
4726http://www.percona.com/software/percona-toolkit/
4727or the Percona Software Repositories
4728(http://www.percona.com/docs/wiki/repositories:start).
4729
4730Changelog
4731---------
4732
4733* Completely redesigned pt-table-checksum
4734* Fixed bug 856065: pt-trend does not work
4735* Fixed bug 887688: Prepared statements crash pt-query-digest
4736* Fixed bug 888286: align not part of percona-toolkit
4737* Fixed bug 897961: ptc 2.0 replicate-check error does not include hostname
4738* Fixed bug 898318: ptc 2.0 --resume with --tables does not always work
4739* Fixed bug 903513: MKDEBUG should be PTDEBUG
4740* Fixed bug 908256: Percona Toolkit should include pt-ioprofile
4741* Fixed bug 821717: pt-tcp-model --type=requests crashes
4742* Fixed bug 844038: pt-online-schema-change documentation example w/drop-tmp-table does not work
4743* Fixed bug 864205: Remove the query to reset @crc from pt-table-checksum
4744* Fixed bug 898663: Typo in pt-log-player documentation
4745
4746v1.0.1 released 2011-09-01
4747==========================
4748
4749Percona Toolkit 1.0.1 has been released. In July, Baron announced planned
4750changes to Maatkit and Aspersa development;[1] Percona Toolkit is the
4751result. In brief, Percona Toolkit is the combined fork of Maatkit and
4752Aspersa, so although the toolkit is new, the programs are not. That means
4753Percona Toolkit 1.0.1 is mature, stable, and production-ready. In fact,
4754it's even a little more stable because we fixed a few bugs in this release.
4755
4756Percona Toolkit packages can be downloaded from
4757http://www.percona.com/downloads/percona-toolkit/
4758or the Percona Software Repositories
4759(http://www.percona.com/docs/wiki/repositories:start).
4760
4761Although Maatkit and Aspersa development use Google Code, Percona Toolkit
4762uses Launchpad: https://launchpad.net/percona-toolkit
4763
4764[1] http://www.xaprb.com/blog/2011/07/06/planned-change-in-maatkit-aspersa-development/
4765
4766Changelog
4767---------
4768
4769* Fixed bug 819421: MasterSlave::is_replication_thread() doesn't match all
4770* Fixed bug 821673: pt-table-checksum doesn't include --where in min max queries
4771* Fixed bug 821688: pt-table-checksum SELECT MIN MAX for char chunking is wrong
4772* Fixed bug 838211: pt-collect: line 24: [: : integer expression expected
4773* Fixed bug 838248: pt-collect creates a "5.1" file
4774
4775v0.9.5 released 2011-08-04
4776==========================
4777
4778Percona Toolkit 0.9.5 represents the completed transition from Maatkit and Aspersa. There are no bug fixes or new features, but some features have been removed (like --save-results from pt-query-digest). This release is the starting point for the 1.0 series where new development will happen, and no more changes will be made to the 0.9 series.
4779
4780Changelog
4781---------
4782
4783* Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit.
4784>>>>>>> MERGE-SOURCE
23984785
=== added file 't/pt-online-schema-change/bug-1315130.t'
--- t/pt-online-schema-change/bug-1315130.t 1970-01-01 00:00:00 +0000
+++ t/pt-online-schema-change/bug-1315130.t 2014-07-03 18:13:52 +0000
@@ -0,0 +1,78 @@
1#!/usr/bin/env perl
2
3BEGIN {
4 die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
5 unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
6 unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
7};
8
9use strict;
10use warnings FATAL => 'all';
11use English qw(-no_match_vars);
12use Test::More;
13use Time::HiRes qw(sleep);
14
15$ENV{PTTEST_FAKE_TS} = 1;
16$ENV{PERCONA_TOOLKIT_TEST_USE_DSN_NAMES} = 1;
17
18use PerconaTest;
19use Sandbox;
20require "$trunk/bin/pt-online-schema-change";
21require VersionParser;
22
23use Data::Dumper;
24$Data::Dumper::Indent = 1;
25$Data::Dumper::Sortkeys = 1;
26$Data::Dumper::Quotekeys = 0;
27
28my $dp = new DSNParser(opts=>$dsn_opts);
29my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
30my $master_dbh = $sb->get_dbh_for('master');
31my $slave_dbh = $sb->get_dbh_for('slave1');
32
33if ( !$master_dbh ) {
34 plan skip_all => 'Cannot connect to sandbox master';
35}
36elsif ( !$slave_dbh ) {
37 plan skip_all => 'Cannot connect to sandbox slave';
38}
39
40my $q = new Quoter();
41my $tp = new TableParser(Quoter => $q);
42my @args = qw(--set-vars innodb_lock_wait_timeout=3);
43my $output = "";
44my $dsn = "h=127.1,P=12345,u=msandbox,p=msandbox";
45my $exit = 0;
46my $sample = "t/pt-online-schema-change/samples";
47my $rows;
48
49
50# #############################################################################
51# Issue 1315130
52# Failed to detect child tables in other schema, and falsely identified
53# child tables in own schema
54# #############################################################################
55
56$sb->load_file('master', "$sample/bug-1315130_cleanup.sql");
57$sb->load_file('master', "$sample/bug-1315130.sql");
58($output, $exit) = full_output(
59 sub { pt_online_schema_change::main(@args, "$dsn,D=bug_1315130_a,t=parent_table",
60 '--dry-run',
61 '--alter', "add column c varchar(16)",
62 '--alter-foreign-keys-method', 'auto'),
63 },
64);
65print STDERR "[$output]\n";
66 like(
67 $output,
68 qr/Child tables:\s*`bug_1315130_a`\.`child_table_in_same_schema` \(approx\. 1 rows\)\s*`bug_1315130_b`\.`child_table_in_second_schema` \(approx\. 1 rows\)[^`]*?Will/s,
69 "Correctly identify child tables from other schemas and ignores tables from same schema referencig same named parent in other schema.",
70 );
71# clear databases with their foreign keys
72$sb->load_file('master', "$sample/bug-1315130_cleanup.sql");
73
74# Done.
75# #############################################################################
76$sb->wipe_clean($master_dbh);
77ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
78done_testing;

Subscribers

People subscribed via source and target branches

to all changes: