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
- pt-online-schema-change-not-properly-detecting-foreign-keys-1315130
- Merge into 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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Frank Cizmich | Pending | ||
Review via email: mp+225539@code.launchpad.net |
Commit message
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_
This lookup is done in table: information_
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
1 | === modified file 'Changelog' |
2 | --- Changelog 2014-06-05 07:24:48 +0000 |
3 | +++ Changelog 2014-07-03 18:13:52 +0000 |
4 | @@ -1,7 +1,12 @@ |
5 | Changelog for Percona Toolkit |
6 | |
7 | +<<<<<<< TREE |
8 | v2.2.8 released 2014-06-04 |
9 | |
10 | +======= |
11 | +v2.2.8 released 2014-05-30 |
12 | + |
13 | +>>>>>>> MERGE-SOURCE |
14 | * Removed pt-agent |
15 | * Added pt-slave-restart GTID support |
16 | * Added pt-table-checksum --plugin |
17 | |
18 | === modified file 'bin/pt-online-schema-change' |
19 | --- bin/pt-online-schema-change 2014-06-05 07:24:48 +0000 |
20 | +++ bin/pt-online-schema-change 2014-07-03 18:13:52 +0000 |
21 | @@ -9815,7 +9815,7 @@ |
22 | |
23 | my $sql = "SELECT table_schema, table_name " |
24 | . "FROM information_schema.key_column_usage " |
25 | - . "WHERE constraint_schema='$tbl->{db}' " |
26 | + . "WHERE referenced_table_schema='$tbl->{db}' " |
27 | . "AND referenced_table_name='$tbl->{tbl}'"; |
28 | PTDEBUG && _d($sql); |
29 | my $rows = $cxn->dbh()->selectall_arrayref($sql); |
30 | |
31 | === modified file 'config/deb/changelog' |
32 | --- config/deb/changelog 2014-06-05 07:24:48 +0000 |
33 | +++ config/deb/changelog 2014-07-03 18:13:52 +0000 |
34 | @@ -1,3 +1,4 @@ |
35 | +<<<<<<< TREE |
36 | percona-toolkit (2.2.8) unstable; urgency=low |
37 | |
38 | * Removed pt-agent |
39 | @@ -12,6 +13,22 @@ |
40 | |
41 | -- Percona Toolkit Developers <toolkit-dev@percona.com> Thu, 05 Jun 2014 07:07:52 +0000 |
42 | |
43 | +======= |
44 | +percona-toolkit (2.2.8) unstable; urgency=low |
45 | + |
46 | + * Removed pt-agent |
47 | + * Added pt-slave-restart GTID support |
48 | + * Added pt-table-checksum --plugin |
49 | + * Fixed bug 1304062: --ignore-tables does not work correctly |
50 | + * Fixed bug 1295667: pt-deadlock-logger logs incorrect ts |
51 | + * Fixed bug 1254233: pt-mysql-summary blank InnoDB section for 5.6 |
52 | + * Fixed bug 1286250: pt-online-schema-change requests password twice |
53 | + * Fixed bug 965553: pt-query-digest dosn't fingerprint true/false literals correctly |
54 | + * Fixed bug 290911: pt-show-grant --ask-pass prints "Enter password" to STDOUT |
55 | + |
56 | + -- Percona Toolkit Developers <toolkit-dev@percona.com> Fri, 30 May 2014 16:14:53 +0000 |
57 | + |
58 | +>>>>>>> MERGE-SOURCE |
59 | percona-toolkit (2.2.7) unstable; urgency=low |
60 | |
61 | * Fixed bug 1279502: --version-check behaves like spyware |
62 | |
63 | === modified file 'docs/percona-toolkit.pod' |
64 | --- docs/percona-toolkit.pod 2014-06-05 07:24:48 +0000 |
65 | +++ docs/percona-toolkit.pod 2014-07-03 18:13:52 +0000 |
66 | @@ -557,6 +557,10 @@ |
67 | |
68 | =head1 VERSION |
69 | |
70 | +<<<<<<< TREE |
71 | Percona Toolkit v2.2.8 released 2014-06-05 |
72 | +======= |
73 | +Percona Toolkit v2.2.8 released 2014-05-30 |
74 | +>>>>>>> MERGE-SOURCE |
75 | |
76 | =cut |
77 | |
78 | === modified file 'docs/release_notes.rst' |
79 | --- docs/release_notes.rst 2014-06-05 07:24:48 +0000 |
80 | +++ docs/release_notes.rst 2014-07-03 18:13:52 +0000 |
81 | @@ -1,3 +1,4 @@ |
82 | +<<<<<<< TREE |
83 | Release Notes |
84 | ************* |
85 | |
86 | @@ -2395,3 +2396,2389 @@ |
87 | --------- |
88 | |
89 | * Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit. |
90 | +======= |
91 | +Release Notes |
92 | +************* |
93 | + |
94 | +v2.2.8 released 2014-06-04 |
95 | +========================== |
96 | + |
97 | +Percona Toolkit 2.2.8 has been released. This release has two new features and six bug fixes. |
98 | + |
99 | +New Features: |
100 | + |
101 | +* 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. |
102 | +* pt-slave-restart now supports MySQL 5.6 global transaction IDs. |
103 | + |
104 | +* pt-table-checkum now has new --plugin option which is similar to pt-online-schema-change --plugin |
105 | + |
106 | +Bugs Fixed: |
107 | + |
108 | +* 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. |
109 | + |
110 | +* Fixed bug 965553: pt-query-digest didn't fingerprint true/false literals correctly. |
111 | + |
112 | +* Fixed bug 1286250: pt-online-schema-change was requesting password twice. |
113 | + |
114 | +* Fixed bug 1295667: pt-deadlock-logger was logging incorrect timestamp because tool wasn't aware of the time-zones. |
115 | + |
116 | +* Fixed bug 1304062: when multiple tables were specified with pt-table-checksum --ignore-tables, only one of them would be ignored. |
117 | + |
118 | +* Fixed bug : pt-show-grant --ask-pass option was asking for password in ``STDOUT`` instead of ``STDERR`` where it could be seen. |
119 | + |
120 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
121 | + |
122 | +v2.2.7 released 2014-02-20 |
123 | +========================== |
124 | + |
125 | +Percona Toolkit 2.2.7 has been released. This release has only one bug fix. |
126 | + |
127 | +* Fixed bug 1279502: --version-check behaves like spyware |
128 | + |
129 | +Although never used, --version-check had the ability to get any local program's version. This fix removed that ability. |
130 | + |
131 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
132 | + |
133 | +v2.2.6 released 2013-12-18 |
134 | +========================== |
135 | + |
136 | +Percona 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: |
137 | + |
138 | +* Fixed bug 1223458: pt-table-sync deletes child table rows |
139 | + |
140 | +Buried in the pt-table-sync docs is this warning: |
141 | + |
142 | + Also be careful with tables that have foreign key constraints with C<ON DELETE> |
143 | + or C<ON UPDATE> definitions because these might cause unintended changes on the |
144 | + child tables. |
145 | + |
146 | +Until 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. |
147 | + |
148 | +Another good bug fix is: |
149 | + |
150 | +* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes |
151 | + |
152 | +After 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. |
153 | + |
154 | +* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table |
155 | + |
156 | +This 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. |
157 | + |
158 | +Finally, this bug (more like a feature request/change) might be a backwards-incompatible change: |
159 | + |
160 | +* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled |
161 | + |
162 | +The 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. |
163 | + |
164 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
165 | + |
166 | +Changelog |
167 | +--------- |
168 | + |
169 | +* Added pt-query-digest support for Percona Server slow log rate limiting |
170 | +* Added pt-agent --ping |
171 | +* Added pt-mysql-summary --all-databases |
172 | +* Added pt-stalk --sleep-collect |
173 | +* Added pt-table-sync --[no]check-child-tables |
174 | +* Fixed bug 1249150: PTDEBUG prints some info to STDOUT |
175 | +* Fixed bug 1248363: pt-agent requires restart after changing MySQL options |
176 | +* Fixed bug 1248778: pt-agent --install on PXC is not documented |
177 | +* Fixed bug 1250973: pt-agent --install doesn't check for previous install |
178 | +* Fixed bug 1250968: pt-agent --install suggest MySQL user isn't quoted |
179 | +* Fixed bug 1251004: pt-agent --install error about slave is confusing |
180 | +* Fixed bug 1251726: pt-agent --uninstall fails if agent is running |
181 | +* Fixed bug 1248785: pt-agent docs don't list privs required for its MySQL user |
182 | +* Fixed bug 1215016: pt-deadlock-logger docs use pt-fk-error-logger |
183 | +* Fixed bug 1201443: pt-duplicate-key-checker error when EXPLAIN key_len=0 |
184 | +* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes |
185 | +* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled |
186 | +* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table |
187 | +* Fixed bug 1249149: pt-query-digest stats prints to STDOUT instead of STDERR |
188 | +* Fixed bug 1071979: pt-stak error parsing df with NFS |
189 | +* Fixed bug 1223458: pt-table-sync deletes child table rows |
190 | + |
191 | +v2.2.5 released 2013-10-16 |
192 | +========================== |
193 | + |
194 | +Percona Toolkit 2.2.5 has been released. This release has four new features and a number of bugfixes. |
195 | + |
196 | +Query_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. |
197 | + |
198 | +As 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. |
199 | + |
200 | +New --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. |
201 | + |
202 | +New --new-table-name option has been added to pt-online-schema-change which can be used to specify the temporary table name. |
203 | + |
204 | +* Fixed bug #1199589: pt-archiver would delete the data even with the --dry-run option. |
205 | + |
206 | +* Fixed bug #821692: pt-query-digest didn't distill LOAD DATA correctly. |
207 | + |
208 | +* Fixed bug #984053: pt-query-digest didn't distill INSERT/REPLACE without INTO correctly. |
209 | + |
210 | +* Fixed bug #1206677: pt-agent docs were referencing wrong web address. |
211 | + |
212 | +* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster would crash if no nodes were found. |
213 | + |
214 | +Percona Toolkit packages can be downloaded from |
215 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
216 | +Repositories (http://www.percona.com/software/repositories |
217 | + |
218 | +Changelog |
219 | +--------- |
220 | + |
221 | +* Added Query_time histogram bucket counts to pt-query-digest JSON output |
222 | +* Added pt-online-schema-change --[no]drop-triggers option |
223 | +* Fixed bug #1199589: pt-archiver deletes data despite --dry-run |
224 | +* Fixed bug #944051: pt-table-checksum has ambiguous exit status |
225 | +* Fixed bug #1209436: pt-kill --log-dsn may not work on Perl 5.8 |
226 | +* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster crashes if no nodes are found |
227 | +* Fixed bug #1215608: pt-online-schema-change new table suffix is hard-coded |
228 | +* Fixed bug #1229861: pt-table-sync quotes float values, can't sync |
229 | +* Fixed bug #821692: pt-query-digest doesn't distill LOAD DATA correctly |
230 | +* Fixed bug #984053: pt-query-digest doesn't distill INSERT/REPLACE without INTO correctly |
231 | +* Fixed bug #1206728: pt-deadlock-logger 2.2 requires DSN on command line |
232 | +* Fixed bug #1226721: pt-agent on CentOS 5 fails to send data |
233 | +* Fixed bug #821690: pt-query-digest doesn't distill IF EXISTS correctly |
234 | +* Fixed bug #1206677: pt-agent docs reference clodu.percona.com |
235 | + |
236 | +v2.2.4 released 2013-07-18 |
237 | +========================== |
238 | + |
239 | +Percona Toolkit 2.2.4 has been released. This release two new features and a number of bugfixes. |
240 | + |
241 | +pt-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. |
242 | + |
243 | +When 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. |
244 | + |
245 | +* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6 |
246 | +pt-table-checksum would fail if variable explicit_defaults_for_timestamp was enabled in MySQL 5.6. |
247 | + |
248 | +* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0" |
249 | +Trying to assign 0 to any variable by using --set-vars option would cause “Invalid --set-vars value” message. |
250 | + |
251 | +* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get |
252 | +Fixed the typo in the pt-online-schema-change code that could lead to a tool crash when copying the rows. |
253 | + |
254 | +* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality |
255 | +pt-table-checksum was using the first non-unique index instead of the one with the highest cardinality due to a sorting bug. |
256 | + |
257 | +Percona Toolkit packages can be downloaded from |
258 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
259 | +Repositories (http://www.percona.com/software/repositories |
260 | + |
261 | +Changelog |
262 | +--------- |
263 | + |
264 | +* Added pt-query-digest anonymous JSON output |
265 | +* Added pt-online-schema-change timestamp output |
266 | +* Fixed bug #1136559: pt-table-checksum: Deep recursion on subroutine "SchemaIterator::_iterate_dbh" |
267 | +* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6 |
268 | +* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0" |
269 | +* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get |
270 | +* Fixed bug #1195034: pt-deadlock-logger error: Use of uninitialized value $ts in pattern match (m//) |
271 | +* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality |
272 | +* Fixed bug #1168434: pt-upgrade reports differences on NULL |
273 | +* Fixed bug #1172317: pt-sift does not work if pt-stalk did not collect due to a full disk |
274 | +* Fixed bug #1176010: pt-query-digest doesn't group db and `db` together |
275 | +* Fixed bug #1137556: pt-heartbeat docs don't account for --utc |
276 | +* Fixed bug #1168106: pt-variable-advisor has the wrong default value for innodb_max_dirty_pages_pct in 5.5 and 5.6 |
277 | +* Fixed bug #1168110: pt-variable-advisor shows key_buffer_size in 5.6 as unconfigured (even though it is) |
278 | +* Fixed bug #1171968: pt-query-digest docs don't mention --type=rawlog |
279 | +* Fixed bug #1174956: pt-query-digest and pt-fingerprint don't strip some multi-line comments |
280 | + |
281 | + |
282 | +v2.2.3 released 2013-06-17 |
283 | +========================== |
284 | + |
285 | +Percona Toolkit 2.2.3 has been released which has only two changes: pt-agent |
286 | +and a bug fix for pt-online-schema-change. pt-agent is not a command line |
287 | +tool but a client-side agent for Percona Cloud Tools. Visit |
288 | +https://cloud.percona.com for more information. The pt-online-schema-change |
289 | +bug fix is bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02): |
290 | +"Table 'db._t_new' doesn't exist". This happens when the tool's triggers |
291 | +cannot be dropped. |
292 | + |
293 | +Percona Toolkit packages can be downloaded from |
294 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
295 | +Repositories (http://www.percona.com/software/repositories/). |
296 | + |
297 | +Changelog |
298 | +--------- |
299 | + |
300 | +* Added new tool: pt-agent |
301 | +* Fixed bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02): Table 'db._t_new' doesn't exist" |
302 | + |
303 | +v2.2.2 released 2013-04-24 |
304 | +========================== |
305 | + |
306 | +Percona Toolkit 2.2.2 has been released. This is the second release of |
307 | +the 2.2 series and aims to fix bugs in the previous release and provide |
308 | +usability enhacements to the toolkit. |
309 | + |
310 | +Users may note the revival of the --show-all option in pt-query-digest. |
311 | +This had been removed in 2.2.1, but resulted in too much output in |
312 | +certain cases. |
313 | + |
314 | +A new --recursion-method was added to pt-table-checksum: cluster. This |
315 | +method attempts to auto-discover cluster nodes, alleviating the need to |
316 | +specify cluster node DSNs in a DSN table (--recursion-method=dsn). |
317 | + |
318 | +The following highlights some of the more interesting and "hot" bugs in |
319 | +this release: |
320 | + |
321 | +* Bug #1127450: pt-archiver --bulk-insert may corrupt data |
322 | + |
323 | +pt-archiver --bulk-insert didn't work with --charset UTF-8. This revealed |
324 | +a case where the tool could corrupt data by double-encoding. This is now |
325 | +fixed, but remains relatively dangerous if using DBD::mysql 3.0007 which |
326 | +does not handle UTF-8 properly. |
327 | + |
328 | +* Bug #1163372: pt-heartbeat --utc --check always returns 0 |
329 | + |
330 | +Unfortunately, the relatively new --utc option for pt-heart was still |
331 | +broken because "[MySQL] interprets date as a value in the current time zone |
332 | +and converts it to an internal value in UTC." Now the tool works correctly |
333 | +with --utc by specifying "SET time_zone='+0:00'", and older versions of |
334 | +the tool can be made to work by specifying --set-vars "time_zone='+0:00'". |
335 | + |
336 | +* Bug #821502: Some tools don't have --help or --version |
337 | + |
338 | +pt-align, pt-mext, pt-pmp and pt-sift now have both options. |
339 | + |
340 | +This is another solid bug fix release, and all users are encouraged to upgrade. |
341 | + |
342 | +Percona Toolkit packages can be downloaded from |
343 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
344 | +Repositories (http://www.percona.com/software/repositories/). |
345 | + |
346 | +Changelog |
347 | +--------- |
348 | + |
349 | +* Added --show-all to pt-query-digest |
350 | +* Added --recursion-method=cluster to pt-table-checksum |
351 | +* Fixed bug 1127450: pt-archiver --bulk-insert may corrupt data |
352 | +* Fixed bug 1163372: pt-heartbeat --utc --check always returns 0 |
353 | +* Fixed bug 1156901: pt-query-digest --processlist reports duplicate queries for replication thread |
354 | +* Fixed bug 1160338: pt-query-digest 2.2 prints unwanted debug info on tcpdump parsing errors |
355 | +* Fixed bug 1160918: pt-query-digest 2.2 prints too many string values |
356 | +* Fixed bug 1156867: pt-stalk prints the wrong variable name in verbose mode when --function is used |
357 | +* Fixed bug 1081733: pt-stalk plugins can't access the real --prefix |
358 | +* Fixed bug 1099845: pt-table-checksum pxc same_node function incorrectly uses wsrep_sst_receive_address |
359 | +* Fixed bug 821502: Some tools don't have --help or --version |
360 | +* Fixed bug 947893: Some tools use @@hostname without /*!50038*/ |
361 | +* Fixed bug 1082406: An explicitly set wsrep_node_incoming_address may make SHOW STATUS LIKE 'wsrep_incoming_addresses' return a portless address |
362 | + |
363 | +v2.2.1 released 2013-03-14 |
364 | +========================== |
365 | + |
366 | +Percona Toolkit 2.2.1 has been released. This is the first release in |
367 | +the new 2.2 series which supersedes the 2.1 series and renders the 2.0 |
368 | +series obsolete. We plan to do one more bug fix release for 2.1 (2.1.10), |
369 | +but otherwise all new development and fixes and will now focus on 2.2. |
370 | + |
371 | +Percona Toolkit 2.2 has been several months in the making, and it turned |
372 | +out very well, with many more new features, changes, and improvements than |
373 | +originally anticipated. Here are the highlights: |
374 | + |
375 | +---- |
376 | + |
377 | +* Official support for MySQL 5.6 |
378 | + |
379 | +We started beta support for MySQL 5.6 in 2.1.8 when 5.6 was still beta. |
380 | +Now that 5.6 is GA, so is our support for it. Check out the Percona Toolkit |
381 | +supported platforms and versions: |
382 | +http://www.percona.com/mysql-support/policies/percona-toolkit-supported-platforms-and-versions |
383 | + |
384 | +When you upgrade to MySQL 5.6, be sure to upgrade to Percona Toolkit 2.2, too. |
385 | + |
386 | +* Official support for Percona XtraDB Cluster (PXC) |
387 | + |
388 | +We also started beta support for Percona XtraDB Cluster in 2.1.8, but |
389 | +now that support is official in 2.2 because we have had many months to |
390 | +work with PXC and figure out which tools work with it and how. There's |
391 | +still one noticeable omission: pt-table-sync. It's still unclear if |
392 | +or how one would sync a cluster that, in theory, doesn't become out-of-sync. |
393 | +As Percona XtraDB Cluster develops, Percona Toolkit will continue to |
394 | +evolve to support it. |
395 | + |
396 | +* pt-online-schema-change (pt-osc) is much more resilient |
397 | + |
398 | +pt-online-schema-change 2.1 has been a great success, and people have been |
399 | +using it for evermore difficult and challenging tasks. Consequently, we |
400 | +needed to make it "try harder", even though it already tried pretty hard |
401 | +to keep working despite recoverable errors and such. Whereas pt-osc 2.1 |
402 | +only retries certain operations, pt-osc 2.2 retries every critical operation, |
403 | +and its tries and wait time between tries for all operations are configurable. |
404 | +Also, we removed --lock-wait-timeout which set innodb_lock_wait_timeout |
405 | +because that now conflicts, or is at least confused with, lock_wait_timeout |
406 | +(introduced in MySQL 5.5) for metadata locks. Now --set-vars is used to |
407 | +set both of these (or any) system variables. For a quick intro to metadata |
408 | +locks and how they may affect you, see Ovais's article: |
409 | +http://www.mysqlperformanceblog.com/2013/02/01/implications-of-metadata-locking-changes-in-mysql-5-5/ |
410 | + |
411 | +What does this all mean? In short: pt-online-schema-change 2.2 is far more |
412 | +resilient out of the box. It's also aware of metadata locks now, whereas |
413 | +2.1 was not really aware of them. And it's highly configurable, so you can |
414 | +make the tool try _very_ hard to keep working. |
415 | + |
416 | +* pt-upgrade is brand-new |
417 | + |
418 | +pt-upgrade was written once long ago, thrown into the world, and then never |
419 | +heard from again... until now. Now that we have four base versions of |
420 | +MySQL (5.0, 5.1, 5.5, and 5.6), plus at least four major forks (Percona |
421 | +Server, MariaDB, Percona XtraDB Cluster, and MariaDB Galera Cluster), |
422 | +upgrades are fashionable, so to speak. Problem is: "original" pt-upgrade |
423 | +was too noisy and too complex. pt-upgrade 2.2 is far simpler and far |
424 | +easier to use. It's basically what you expect from such a tool. |
425 | + |
426 | +Moreover, it has a really helpful new feature: "reference results", i.e. |
427 | +saved results from running queries on a server. Granted, this can take |
428 | +_a lot_ of disk space, but it allows you to "run now, compare later." |
429 | + |
430 | +If you're thinking about upgrading, give pt-upgrade a try. It also reads |
431 | +every type of log now (slow, general, binary, and tcpdump), so you shouldn't |
432 | +have a problem finding queries to run and compare. |
433 | + |
434 | +* pt-query-digest is simpler |
435 | + |
436 | +pt-query-digest 2.2 has fewer options now. Basically, we re-focused it |
437 | +on its primary objective: analyzing MySQL query logs. So the ability |
438 | +to parse memcached, Postgres, Apache, and other logs was removed. We |
439 | +also removed several options that probably nobody ever used, and |
440 | +changed/renamed other options to be more logical. The result is a simpler, |
441 | +more focused tool, i.e. less overwhelming. |
442 | + |
443 | +Also, pt-query-digest 2.2 can save results in JSON format (--output=json). |
444 | +This feature is still in development while we determine the optimal |
445 | +JSON structure. |
446 | + |
447 | +* Version check is on by default |
448 | + |
449 | +Way back in 2.1.4, released September/October 2012, we introduced a feature |
450 | +called "version check" into most tools: http://percona.com/version-check |
451 | +It's like a lot of software that automatically checks for updates, but |
452 | +it's also more: it's a free service from Percona that advises when certain |
453 | +programs (Percona Toolkit tools, MySQL, Perl, etc.) are either out of date |
454 | +or are known bad versions. For example, there are two versions of the |
455 | +DBD::mysql Perl module that have problems. And there are certain versions |
456 | +of MySQL that have critical bugs. Version check will warn you about these |
457 | +if your system is running them. |
458 | + |
459 | +What's new in 2.2 is that, whereas this feature (specifically, the option |
460 | +in tools: --version-check) was off by default, now it's on by default. |
461 | +If the IO::Socket::SSL Perl module is installed (easily available through |
462 | +your package manager), it will use a secure (https) connection over the web, |
463 | +else it will use a standard (http) connection. |
464 | + |
465 | +Check out http://percona.com/version-check for more information. |
466 | + |
467 | +* pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player are gone |
468 | + |
469 | +We removed pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player. |
470 | +Granted, no tool is ever really gone: if you need one of these tools, |
471 | +get it from 2.1. pt-log-player is now superseded by Percona Playback |
472 | +(http://www.percona.com/doc/percona-playback/). pt-query-advisor was |
473 | +removed so that we can focus our efforts on its online counterpart instead: |
474 | +https://tools.percona.com/query-advisor. The other tools were special |
475 | +projects that were not widely used. |
476 | + |
477 | +* pt-stalk and pt-mysql-summary have built-in MySQL options |
478 | + |
479 | +No more "pt-stalk -- -h db1 -u me". pt-stalk 2.2 and pt-mysql-summary 2.2 |
480 | +have all the standard MySQL options built-in, like other tools: --user, |
481 | +--host, --port, --password, --socket, --defaults-file. So now the command |
482 | +line is what you expect: pt-stalk -h dhb1 -u me. |
483 | + |
484 | +* pt-stalk --no-stalk is no longer magical |
485 | + |
486 | +Originally, pt-stalk --no-stalk was meant to simulate pt-collect, i.e. |
487 | +collect once and exit. To do that, the tool magically set some options |
488 | +and clobbered others, resulting in no way to do repeated collections |
489 | +at intervals. Now --no-stalk means only that: don't stalk, just collect, |
490 | +respecting --interval and --iterations as usual. So to collect once |
491 | +and exit: pt-stalk --no-stalk --iterations 1. |
492 | + |
493 | +* pt-fk-error-logger and pt-deadlock-logger are standardized |
494 | + |
495 | +Similar to the pt-stalk --no-stalk changes, pt-fk-error-logger and |
496 | +pt-deadlock-logger received mini overhauls in 2.2 to make their |
497 | +run-related options (--run-time, --interval, --iterations) standard. |
498 | +If you hadn't noticed, one tool would run forever by default, while |
499 | +the other would run once and exit. And each treated their run-related |
500 | +options a little differently. This magic is gone now: both tools run |
501 | +forever by default, so specify --iterations or --run-time to limit how |
502 | +long they run. |
503 | + |
504 | +---- |
505 | + |
506 | +There were other miscellaneous bug fixes, too. See |
507 | +https://launchpad.net/percona-toolkit/+milestone/2.2.1 for the full list. |
508 | + |
509 | +As the first release in a new series, 2.2 features are not yet finalized. |
510 | +In other words, we may change things like the pt-query-digest --output json |
511 | +format in future releases after receiving real-world feedback. |
512 | + |
513 | +Percona Toolkit 2.2 is an exciting release with many helpful new |
514 | +features. Users are encouraged to begin upgrading, particularly given |
515 | +that, except for the forthcoming 2.1.10 release, no more work will be |
516 | +done on 2.1 (unless you're a Percona customer with a support contract or |
517 | +other agreement). |
518 | + |
519 | +If you upgrade from 2.1 to 2.2, be sure to re-read tools' documentation |
520 | +to see what has changed because much as changed for certain tools. |
521 | + |
522 | +Percona Toolkit packages can be downloaded from |
523 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
524 | +Repositories (http://www.percona.com/software/repositories/). |
525 | + |
526 | +Changelog |
527 | +--------- |
528 | + |
529 | +* Official support for MySQL 5.6 |
530 | +* Official support for Percona XtraDB Cluster |
531 | +* Redesigned pt-query-digest |
532 | +* Redesigned pt-upgrade |
533 | +* Redesigned pt-fk-error-logger |
534 | +* Redesigned pt-deadlock-logger |
535 | +* Changed --set-vars in all tools |
536 | +* Renamed --retries to --tries in pt-online-schema-change |
537 | +* Added --check-read-only to pt-heartbeat |
538 | +* Added MySQL options to pt-mysql-summary |
539 | +* Added MySQL options to pt-stalk |
540 | +* Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars) |
541 | +* Removed --lock-wait-timeout from pt-table-checksum (use --set-vars) |
542 | +* Removed pt-query-advisor |
543 | +* Removed pt-tcp-model |
544 | +* Removed pt-trend |
545 | +* Removed pt-log-player |
546 | +* Enabled --version-check by default in all tools |
547 | +* Fixed bug 1008796: Several tools don't have --database |
548 | +* Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values |
549 | +* Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options |
550 | +* Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time |
551 | +* Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE |
552 | +* Fixed bug 1113301: pt-online-schema-change blocks on metadata locks |
553 | +* Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically |
554 | +* Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions |
555 | +* Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found |
556 | + |
557 | +v2.1.9 released 2013-02-14 |
558 | +========================== |
559 | + |
560 | +Percona Toolkit 2.1.9 has been released. This release primarily aims to |
561 | +restore backwards-compatibility with pt-heartbeat 2.1.7 and older, but it |
562 | +also has important bug fixes for other tools. |
563 | + |
564 | +* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps |
565 | +* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP |
566 | + |
567 | +The previous release switched the time authority from Perl to MySQL, and from |
568 | +local time to UTC. Unfortunately, these changes caused a loss of precision and, |
569 | +if mixing versions of pt-heartbeat, made the tool report a huge amount of |
570 | +replication lag. This release makes the tool compatible with pt-heartbeat |
571 | +2.1.7 and older again, but the UTC behavior introduced in 2.1.8 is now only |
572 | +available by specifying the new --utc option. |
573 | + |
574 | +* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index" |
575 | + |
576 | +This is an important bug fix for pt-table-sync: certain chunks from |
577 | +pt-table-checksum resulted in an impossible WHERE, causing the false-positive |
578 | +"Cannot nibble" error, if those chunks had diffs. |
579 | + |
580 | +* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB |
581 | + |
582 | +MariaDB 5.5.28 (https://kb.askmonty.org/en/mariadb-5528-changelog/) fixed |
583 | +a bug: "Added warnings for duplicate key errors when using INSERT IGNORE". |
584 | +However, standard MySQL does not warn in this case, despite the docs saying |
585 | +that it should. Since pt-online-schema-change has always intended to ignore |
586 | +duplicate entry errors by using "INSERT IGNORE", it now handles the MariaDB |
587 | +case by also ignoring duplicate entry errors in the code. |
588 | + |
589 | +* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns |
590 | + |
591 | +pt-online-schema-change 2.1.9 handles another case of changing the primary key. |
592 | +However, since changing the primary key is tricky, the tool stops if --alter |
593 | +contains "DROP PRIMARY KEY", and you have to specify --no-check-alter to |
594 | +acknowledge this case. |
595 | + |
596 | +* Fixed bug 1099933: pt-stalk is too verbose, fills up log |
597 | + |
598 | +Previously, pt-stalk printed a line for every check. Since the tool is |
599 | +designed to be a long-running daemon, this could result in huge log files |
600 | +with "matched=no" lines. The tool has a new --verbose option which makes it |
601 | +quieter by default. |
602 | + |
603 | +All users should upgrade, but in particular, users of versions 2.1.7 and |
604 | +older are strongly recommended to skip 2.1.8 and go directly to 2.1.9. |
605 | + |
606 | +Users of pt-heartbeat in 2.1.8 who prefer the UTC behavior should keep in |
607 | +mind that they will have to use the --utc option after upgrading. |
608 | + |
609 | +Percona Toolkit packages can be downloaded from |
610 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
611 | +Repositories (http://www.percona.com/software/repositories/). |
612 | + |
613 | +Changelog |
614 | +--------- |
615 | + |
616 | +* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps |
617 | +* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP |
618 | +* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB |
619 | +* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns |
620 | +* Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function |
621 | +* Fixed bug 823411: pt-query-digest shouldn't print "Error: none" for tcpdump |
622 | +* Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors |
623 | +* Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave |
624 | +* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index" |
625 | +* Fixed bug 1099933: pt-stalk is too verbose, fills up log |
626 | + |
627 | +v2.1.8 released 2012-12-21 |
628 | +========================== |
629 | + |
630 | +Percona 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: |
631 | + |
632 | +* pt-table-chcecksum |
633 | +* pt-online-schema-change |
634 | +* pt-archive |
635 | +* pt-mysql-summary |
636 | +* pt-heartbeat |
637 | +* pt-variable-advisor |
638 | +* pt-config-diff |
639 | +* pt-deadlock-logger |
640 | + |
641 | +However, 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. |
642 | + |
643 | +The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs: |
644 | + |
645 | +* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query |
646 | + |
647 | +Slow 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 */``. |
648 | + |
649 | +* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user" |
650 | + |
651 | +The "as" was misparsed and the following word would end up reported as the database; pt-query-digest now handles this correctly. |
652 | + |
653 | +* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5 |
654 | + |
655 | +Some renamed variables had caused the Percona Server section to work unreliably. |
656 | + |
657 | +* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only |
658 | + |
659 | +When using --replicate-check-only, filter options like --databases and --tables were not applied. |
660 | + |
661 | +* Fixed bug 886059: pt-heartbeat handles timezones inconsistently |
662 | + |
663 | +Previously, 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. |
664 | + |
665 | +* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables |
666 | + |
667 | +Since 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. |
668 | + |
669 | +2.1.8 continues the trend of solid bug fix releases, and all 2.1 users are encouraged to upgrade. |
670 | + |
671 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
672 | + |
673 | +Changelog |
674 | +--------- |
675 | + |
676 | +* Beta support for MySQL 5.6 |
677 | +* Beta support for Percona XtraDB Cluster |
678 | +* pt-online-schema-change: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer |
679 | +* pt-table-checksum: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer |
680 | +* pt-upgrade: Added --[no]disable-query-cache |
681 | +* Fixed bug 927955: Bad pod2rst transformation |
682 | +* Fixed bug 898665: Bad online docs formatting for --[no]vars |
683 | +* Fixed bug 1022622: pt-config-diff is case-sensitive |
684 | +* Fixed bug 1007938: pt-config-diff doesn't handle end-of-line comments |
685 | +* Fixed bug 917770: pt-config-diff Use of uninitialized value in substitution (s///) at line 1996 |
686 | +* Fixed bug 1082104: pt-deadlock-logger doesn't handle usernames with dashes |
687 | +* Fixed bug 886059: pt-heartbeat handles timezones inconsistently |
688 | +* Fixed bug 1086259: pt-kill --log-dsn timestamp is wrong |
689 | +* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5 |
690 | +* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables |
691 | +* Fixed bug 823431: pt-query-advisor hangs on big queries |
692 | +* Fixed bug 996069: pt-query-advisor RES.001 is incorrect |
693 | +* Fixed bug 933465: pt-query-advisor false positive on RES.001 |
694 | +* Fixed bug 937234: pt-query-advisor issues wrong RES.001 |
695 | +* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query |
696 | +* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user" |
697 | +* Fixed bug 957442: pt-query-digest with custom --group-by throws error |
698 | +* Fixed bug 887638: pt-query-digest prints negative byte offset |
699 | +* Fixed bug 831525: pt-query-digest help output mangled |
700 | +* Fixed bug 932614: pt-slave-restart CHANGE MASTER query causes error |
701 | +* Fixed bug 1046440: pt-stalk purge_samples slows down checks |
702 | +* Fixed bug 986847: pt-stalk does not report NFS iostat |
703 | +* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only |
704 | +* Fixed bug 911385: pt-table-checksum v2 fails when --resume + --ignore-database is used |
705 | +* Fixed bug 1041391: pt-table-checksum debug statement for "Chosen hash func" prints undef |
706 | +* Fixed bug 1075638: pt-table-checksum Illegal division by zero at line 7950 |
707 | +* Fixed bug 1052475: pt-table-checksum uninitialized value in numeric lt (<) at line 8611 |
708 | +* Fixed bug 1078887: Tools let --set-vars clobber the required SQL mode |
709 | + |
710 | +v2.1.7 released 2012-11-19 |
711 | +========================== |
712 | + |
713 | +Percona Toolkit 2.1.7 has been released which is a hotfix for two bugs when using pt-table-checksum with Percona XtraDB Cluster: |
714 | + |
715 | +* Bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG |
716 | +* Bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes |
717 | + |
718 | +If you're using pt-table-checksum with a Percona XtraDB Cluster, you should upgrade. Otherwise, users can wait until the next full release. |
719 | + |
720 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
721 | + |
722 | +Changelog |
723 | +--------- |
724 | + |
725 | +* Fixed bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG |
726 | +* Fixed bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes |
727 | + |
728 | +v2.1.6 released 2012-11-13 |
729 | +========================== |
730 | + |
731 | +Percona 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: |
732 | + |
733 | +* Bug 978133: pt-query-digest review table privilege checks don't work |
734 | + |
735 | +The 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. |
736 | + |
737 | +* Bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves |
738 | + |
739 | +A particularly important fix, as it may stop pt-table-checksum from breaking replication in these setups. |
740 | + |
741 | +* Bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag |
742 | + |
743 | +If 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. |
744 | + |
745 | +* Bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key |
746 | + |
747 | +Fixed by choosing a key on the new table for the DELETE trigger. |
748 | + |
749 | +* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes |
750 | + |
751 | +A 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. |
752 | + |
753 | +* Bug 821715: LOAD DATA LOCAL INFILE broken in some platforms |
754 | + |
755 | +This 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. |
756 | + |
757 | +* Bug 866075: pt-show-grant doesn't support column-level grants |
758 | + |
759 | +This was actually the 'hottest' bug in the tracker. |
760 | + |
761 | +This is another solid bug fix release, and all 2.1 users are encouraged to upgrade. |
762 | + |
763 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
764 | + |
765 | +Changelog |
766 | +--------- |
767 | + |
768 | +* pt-online-schema-change: Columns can now be renamed without data loss |
769 | +* pt-online-schema-change: New --default-engine option |
770 | +* pt-stalk: Plugin hooks available through the --plugin option to extend the tool's functionality |
771 | +* Fixed bug 1069951: --version-check default should be explicitly "off" |
772 | +* Fixed bug 821715: LOAD DATA LOCAL INFILE broken in some platforms |
773 | +* Fixed bug 995896: Useless use of cat in Daemon.pm |
774 | +* Fixed bug 1039074: Tools exit 0 on error parsing options, should exit non-zero |
775 | +* Fixed bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves |
776 | +* Fixed bug 1009510: pt-table-checksum breaks replication if a slave table is missing or different |
777 | +* Fixed bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag |
778 | +* Fixed bug 1073532: pt-table-checksum error: Use of uninitialized value in int at line 2778 |
779 | +* Fixed bug 1016131: pt-table-checksum can crash with --columns if none match |
780 | +* Fixed bug 1039569: pt-table-checksum dies if creating the --replicate table fails |
781 | +* Fixed bug 1059732: pt-table-checksum doesn't test all hash functions |
782 | +* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes |
783 | +* Fixed bug 1043528: pt-deadlock-logger can't parse db/tbl/index on partitioned tables |
784 | +* Fixed bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key |
785 | +* Fixed bug 1058285: pt-online-schema-change fails if sql_mode explicitly or implicitly uses ANSI_QUOTES |
786 | +* Fixed bug 1073996: pt-online-schema-change fails with "I need a max_rows argument" |
787 | +* Fixed bug 1039541: pt-online-schema-change --quiet doesn't disable --progress |
788 | +* Fixed bug 1045317: pt-online-schema-change doesn't report how many warnings it suppressed |
789 | +* Fixed bug 1060774: pt-upgrade fails if select column > 64 chars |
790 | +* Fixed bug 1070916: pt-mysql-summary may report the wrong cnf file |
791 | +* Fixed bug 903229: pt-mysql-summary incorrectly categorizes databases |
792 | +* Fixed bug 866075: pt-show-grant doesn't support column-level grants |
793 | +* Fixed bug 978133: pt-query-digest review table privilege checks don't work |
794 | +* Fixed bug 956981: pt-query-digest docs for event attributes link to defunct Maatkit wiki |
795 | +* Fixed bug 1047335: pt-duplicate-key-checker fails when it encounters a crashed table |
796 | +* Fixed bug 1047701: pt-stalk deletes non-empty files |
797 | +* Fixed bug 1070434: pt-stalk --no-stalk and --iterations 1 don't wait for the collect |
798 | +* Fixed bug 1052722: pt-fifo-split is processing n-1 rows initially |
799 | +* Fixed bug 1013407: pt-find documentation error with mtime and InnoDB |
800 | +* Fixed bug 1059757: pt-trend output has no header |
801 | +* Fixed bug 1063933: pt-visual-explain docs link to missing pdf |
802 | +* Fixed bug 1075773: pt-fk-error-logger crashes if there's no foreign key error |
803 | +* Fixed bug 1075775: pt-fk-error-logger --dest table example doesn't work |
804 | + |
805 | +v2.1.5 released 2012-10-08 |
806 | +========================== |
807 | + |
808 | +Percona 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: |
809 | + |
810 | +* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes |
811 | + |
812 | +* Bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes |
813 | + |
814 | +* Bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL |
815 | + |
816 | +The 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. |
817 | + |
818 | +The 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. |
819 | + |
820 | +If 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. |
821 | + |
822 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
823 | + |
824 | +Changelog |
825 | +--------- |
826 | + |
827 | +* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes |
828 | +* Fixed bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes |
829 | +* Fixed bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL |
830 | +* Fixed bug 1060423: Missing version-check page |
831 | + |
832 | +v2.1.4 released 2012-09-20 |
833 | +========================== |
834 | + |
835 | +Percona 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: |
836 | + |
837 | +* Fixed bug 1017626: pt-table-checksum doesn't work with Percona XtraDB Cluster |
838 | + |
839 | +Note 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. |
840 | + |
841 | +* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves |
842 | + |
843 | +Previously, 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. |
844 | + |
845 | +* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument" |
846 | + |
847 | +Which were stopping pt-upgrade from working on a MySQL 4.1 host. |
848 | + |
849 | +* Fixed bug 1036747: pt-table-sync priv checks need to be removed |
850 | + |
851 | +The same checks were removed in the previous release from pt-table-checksum, so this continues the trend. |
852 | + |
853 | +* Fixed bug 1038995: pt-stalk --notify-by-email fails |
854 | + |
855 | +This was a bug in our shell option parsing library, and would potentially affect any option starting with 'no'. |
856 | + |
857 | +Like 2.1.3, this is another solid bug fix release, and 2.1 users are encouraged to upgrade. |
858 | + |
859 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
860 | + |
861 | +Changelog |
862 | +--------- |
863 | + |
864 | +* pt-table-checksum: Percona XtraDB Cluster support |
865 | +* pt-table-checksum: Implemented the standard --run-time option |
866 | +* Implemented the version-check feature in several tools, enabled with the --version-check option |
867 | +* Fixed bug 856060: Document gdb dependency |
868 | +* Fixed bug 1041394: Unquoted arguments to tr break the bash tools |
869 | +* Fixed bug 1035311: pt-diskstats shows wrong device names |
870 | +* Fixed bug 1036804: pt-duplicate-key-checker error parsing InnoDB table with no PK or unique keys |
871 | +* Fixed bug 1022658: pt-online-schema-change dropping FK limitation isn't documented |
872 | +* Fixed bug 1041372: pt-online-schema-changes fails if db+tbl name exceeds 64 characters |
873 | +* Fixed bug 1029178: pt-query-digest --type tcpdump memory usage keeps increasing |
874 | +* Fixed bug 1037211: pt-query-digest won't distill LOCK TABLES in lowercase |
875 | +* Fixed bug 942114: pt-stalk warns about bad "find" usage |
876 | +* Fixed bug 1035319: pt-stalk df -h throws away needed details |
877 | +* Fixed bug 1038995: pt-stalk --notify-by-email fails |
878 | +* Fixed bug 1038995: pt-stalk does not get all InnoDB lock data |
879 | +* Fixed bug 952722: pt-summary should show information about Fusion-io cards |
880 | +* Fixed bug 899415: pt-table-checksum doesn't work if slaves use RBR |
881 | +* Fixed bug 954588: pt-table-checksum --check-slave-lag docs aren't clear |
882 | +* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves |
883 | +* Fixed bug 930693: pt-table-sync and text columns with just whitespace |
884 | +* Fixed bug 1028710: pt-table-sync base_count fails on n = 1000, base = 10 |
885 | +* Fixed bug 1034717: pt-table-sync division by zero error with varchar primary key |
886 | +* Fixed bug 1036747: pt-table-sync priv checks need to be removed |
887 | +* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument" |
888 | +* Fixed bug 1035260: sh warnings in pt-summary and pt-mysql-summary |
889 | +* Fixed bug 1038276: ChangeHandler doesn't quote varchar columns with hex-looking values |
890 | +* Fixed bug 916925: CentOS 5 yum dependency resolution for perl module is wrong |
891 | +* Fixed bug 1035950: Percona Toolkit RPM should contain a dependency on perl-Time-HiRes |
892 | + |
893 | +v2.1.3 released 2012-08-03 |
894 | +========================== |
895 | + |
896 | +Percona 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: |
897 | + |
898 | +* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5 |
899 | + |
900 | +pt-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. |
901 | + |
902 | +* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS |
903 | + |
904 | +In 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. |
905 | + |
906 | +* Fixed bug 821703: pt-query-digest --processlist may crash |
907 | +* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns |
908 | + |
909 | +Certain distributions of MySQL add extra columns to SHOW PROCESSLIST which caused pt-query-digest --processlist to crash at times. |
910 | + |
911 | +* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost |
912 | + |
913 | +pt-kill is meant to be a long-running daemon, so naturally it's important that it stays connected to MySQL. |
914 | + |
915 | +* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error |
916 | + |
917 | +The combination of these pt-heartbeat options could cause replication to break due to a duplicate key error. |
918 | + |
919 | +* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519 |
920 | + |
921 | +This bug was related to how --quiet was handled, and it could happen even if --quiet wasn't given on the command line. |
922 | + |
923 | +All in all, this is solid bug fix release, and 2.1 users are encouraged to upgrade. |
924 | + |
925 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
926 | + |
927 | +Changelog |
928 | +--------- |
929 | + |
930 | +* pt-kill: Implemented --log-dsn to log info about killed queries to a table |
931 | +* Fixed bug 1016127: Install hint for DBD::mysql is wrong |
932 | +* Fixed bug 984915: DSNParser does not check success of --set-vars |
933 | +* Fixed bug 889739: pt-config-diff doesn't diff quoted strings properly |
934 | +* Fixed bug 969669: pt-duplicate-key-checker --key-types=k doesn't work |
935 | +* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error |
936 | +* Fixed bug 1028614: pt-index-usage ignores --database |
937 | +* Fixed bug 940733: pt-ioprofile leaves behind temp directory |
938 | +* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost |
939 | +* Fixed bug 1016114: pt-online-schema-change docs don't mention default values |
940 | +* Fixed bug 1020997: pt-online-schema-change fails when table is empty |
941 | +* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519 |
942 | +* Fixed bug 937225: pt-query-advisor OUTER JOIN advice in JOI.003 is confusing |
943 | +* Fixed bug 821703: pt-query-digest --processlist may crash |
944 | +* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns |
945 | +* Fixed bug 924950: pt-query-digest --group-by db may crash profile report |
946 | +* Fixed bug 1022851: pt-sift error: PREFIX: unbound variable |
947 | +* Fixed bug 969703: pt-sift defaults to '.' instead of '/var/lib/pt-talk' |
948 | +* Fixed bug 962330: pt-slave-delay incorrectly computes lag if started when slave is already lagging |
949 | +* Fixed bug 954990: pt-stalk --nostalk does not work |
950 | +* Fixed bug 977226: pt-summary doesn't detect LSI RAID control |
951 | +* Fixed bug 1030031: pt-table-checksum reports wrong number of DIFFS |
952 | +* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5 |
953 | +* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS |
954 | +* Fixed bug 953141: pt-table-checksum ignores its default and explicit --recursion-method |
955 | +* Fixed bug 1030975: pt-table-sync crashes if sql_mode includes ANSI_QUOTES |
956 | +* Fixed bug 869005: pt-table-sync should always set REPEATABLE READ |
957 | +* Fixed bug 903510: pt-tcp-model crashes in --type=requests mode on empty file |
958 | +* Fixed bug 934310: pt-tcp-model --quantile docs wrong |
959 | +* Fixed bug 980318: pt-upgrade results truncated if hostnames are long |
960 | +* Fixed bug 821696: pt-variable-advisor shows too long of a snippet |
961 | +* Fixed bug 844880: pt-variable-advisor shows binary logging as both enabled and disabled |
962 | + |
963 | +v2.1.2 released 2012-06-12 |
964 | +========================== |
965 | + |
966 | +Percona 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. |
967 | + |
968 | +In 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. |
969 | + |
970 | +Several 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. |
971 | + |
972 | +pt-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. |
973 | + |
974 | +Two pt-archiver bugs were fixed: bug 979092, --sleep conflicts with bulk operations; and bug 903379, --file doesn't create a file. |
975 | + |
976 | +--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. |
977 | + |
978 | +Other 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. |
979 | + |
980 | +Percona Toolkit 2.1.2 should be backwards-compatible with 2.1.1, so users are strongly encouraged to upgrade. |
981 | + |
982 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
983 | + |
984 | +Changelog |
985 | +--------- |
986 | + |
987 | +* pt-heartbeat: Implemented --recursion-method=none |
988 | +* pt-index-usage: MySQL 5.5 compatibility fixes |
989 | +* pt-log-player: MySQL 5.5 compatibility fixes |
990 | +* pt-online-schema-change: Added --chunk-index-columns |
991 | +* pt-online-schema-change: Added --[no]check-plan |
992 | +* pt-online-schema-change: Added --[no]drop-new-table |
993 | +* pt-online-schema-change: Implemented --recursion-method=none |
994 | +* pt-query-advisor: Added --report-type for JSON output |
995 | +* pt-query-digest: Removed --[no]zero-bool |
996 | +* pt-slave-delay: Added --database |
997 | +* pt-slave-find: Implemented --recursion-method=none |
998 | +* pt-slave-restart: Implemented --recursion-method=none |
999 | +* pt-table-checksum: Added --chunk-index-columns |
1000 | +* pt-table-checksum: Added --[no]check-plan |
1001 | +* pt-table-checksum: Implemented --recursion-method=none |
1002 | +* pt-table-sync: Disabled --lock-and-rename except for MySQL 5.5 and newer |
1003 | +* pt-table-sync: Implemented --recursion-method=none |
1004 | +* Fixed bug 945079: Shell tools TMPDIR may break |
1005 | +* Fixed bug 912902: Some shell tools still use basename |
1006 | +* Fixed bug 987694: There is no --recursion-method=none option |
1007 | +* Fixed bug 886077: Passwords with commas don't work, expose part of password |
1008 | +* Fixed bug 856024: Lintian warnings when building percona-toolkit Debian package |
1009 | +* Fixed bug 903379: pt-archiver --file doesn't create a file |
1010 | +* Fixed bug 979092: pt-archiver --sleep conflicts with bulk operations |
1011 | +* Fixed bug 903443: pt-deadlock-logger crashes on MySQL 5.5 |
1012 | +* Fixed bug 941064: pt-deadlock-logger can't clear deadlocks on 5.5 |
1013 | +* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s |
1014 | +* Fixed bug 994176: pt-diskstats --group-by=all --headers=scroll prints a header for every sample |
1015 | +* Fixed bug 894140: pt-duplicate-key-checker sometimes recreates a key it shouldn't |
1016 | +* Fixed bug 923896: pt-kill: uninitialized value causes script to exit |
1017 | +* Fixed bug 1003003: pt-online-schema-change uses different keys for chunking and triggers |
1018 | +* Fixed bug 1003315: pt-online-schema-change --dry-run always fails on table with foreign keys |
1019 | +* Fixed bug 1004551: pt-online-schema-change --no-swap-tables causes error |
1020 | +* Fixed bug 976108: pt-online-schema-change doesn't allow to disable foreign key checks |
1021 | +* Fixed bug 976109: pt-online-schema-change doesn't handle column renames |
1022 | +* Fixed bug 988036: pt-online-schema-change causes deadlocks under heavy write load |
1023 | +* Fixed bug 989227: pt-online-schema-change crashes with PTDEBUG |
1024 | +* Fixed bug 994002: pt-online-schema-change 2.1.1 doesn't choose the PRIMARY KEY |
1025 | +* Fixed bug 994010: pt-online-schema-change 2.1.1 crashes without InnoDB |
1026 | +* Fixed bug 996915: pt-online-schema-change crashes with invalid --max-load and --critical-load |
1027 | +* Fixed bug 998831: pt-online-schema-change -- Should have an option to NOT drop tables on failure |
1028 | +* Fixed bug 1002448: pt-online-schema-change: typo for finding usable indexes |
1029 | +* Fixed bug 885382: pt-query-digest --embedded-attributes doesn't check cardinality |
1030 | +* Fixed bug 888114: pt-query-digest report crashes with infinite loop |
1031 | +* Fixed bug 949630: pt-query-digest mentions a Subversion repository |
1032 | +* Fixed bug 844034: pt-show-grants --separate fails with proxy user |
1033 | +* Fixed bug 946707: pt-sift loses STDIN after pt-diskstats |
1034 | +* Fixed bug 994947: pt-stalk doesn't reset cycles_true after collection |
1035 | +* Fixed bug 986151: pt-stalk-has mktemp error |
1036 | +* Fixed bug 993436: pt-summary Memory: Total reports M instead of G |
1037 | +* Fixed bug 1008778: pt-table-checksum doesn't wait for checksum table to replicate |
1038 | +* Fixed bug 1010232: pt-table-checksum doesn't check the size of checksum chunks |
1039 | +* Fixed bug 1011738: pt-table-checksum SKIPPED is zero but chunks were skipped |
1040 | +* Fixed bug 919499: pt-table-checksum fails with binary log error in mysql >= 5.5.18 |
1041 | +* Fixed bug 972399: pt-table-checksum docs are not rendered right |
1042 | +* Fixed bug 978432: pt-table-checksum ignoring primary key |
1043 | +* Fixed bug 995274: pt-table-checksum can't use an undefined value as an ARRAY reference at line 2206 |
1044 | +* Fixed bug 996110: pt-table-checksum crashes if InnoDB is disabled |
1045 | +* Fixed bug 987393: pt-table-checksum: Empy tables cause "undefined value as an ARRAY" errors |
1046 | +* Fixed bug 1002365: pt-table-sync --ignore-* options don't work with --replicate |
1047 | +* Fixed bug 1003014: pt-table-sync --replicate and --sync-to-master error "index does not exist" |
1048 | +* Fixed bug 823403: pt-table-sync --lock-and-rename doesn't work on 5.1 |
1049 | +* Fixed bug 898138: pt-variable-advisor doesn't recognize 5.5.3+ concurrent_insert values |
1050 | + |
1051 | +v2.1.1 released 2012-04-03 |
1052 | +========================== |
1053 | + |
1054 | +Percona Toolkit 2.1.1 has been released. This is the first release in the |
1055 | +new 2.1 series which supersedes the 2.0 series. We will continue to fix bugs |
1056 | +in 2.0, but 2.1 is now the focus of development. |
1057 | + |
1058 | +2.1 introduces a lot of new code for: |
1059 | + |
1060 | +* pt-online-schema-change (completely redesigned) |
1061 | +* pt-mysql-summary (completely redesigned) |
1062 | +* pt-summary (completely redesigned) |
1063 | +* pt-fingerprint (new tool) |
1064 | +* pt-table-usage (new tool) |
1065 | + |
1066 | +There were also several bug fixes. |
1067 | + |
1068 | +The redesigned tools are meant to replace their 2.0 counterparts because |
1069 | +the 2.1 versions have the same or more functionality and they are simpler |
1070 | +and more reliable. pt-online-schema-change was particularly enhanced to |
1071 | +be as safe as possible given that the tool is inherently risky. |
1072 | + |
1073 | +Percona Toolkit packages can be downloaded from |
1074 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
1075 | +Repositories (http://www.percona.com/software/repositories/). |
1076 | + |
1077 | +Changelog |
1078 | +--------- |
1079 | + |
1080 | +* Completely redesigned pt-online-schema-change |
1081 | +* Completely redesigned pt-mysql-summary |
1082 | +* Completely redesigned pt-summary |
1083 | +* Added new tool: pt-table-usage |
1084 | +* Added new tool: pt-fingerprint |
1085 | +* Fixed bug 955860: pt-stalk doesn't run vmstat, iostat, and mpstat for --run-time |
1086 | +* Fixed bug 960513: SHOW TABLE STATUS is used needlessly |
1087 | +* Fixed bug 969726: pt-online-schema-change loses foreign keys |
1088 | +* Fixed bug 846028: pt-online-schema-change does not show progress until completed |
1089 | +* Fixed bug 898695: pt-online-schema-change add useless ORDER BY |
1090 | +* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s |
1091 | +* Fixed bug 963225: pt-query-digest fails to set history columns for disk tmp tables and disk filesort |
1092 | +* Fixed bug 967451: Char chunking doesn't quote column name |
1093 | +* Fixed bug 972399: pt-table-checksum docs are not rendered right |
1094 | +* Fixed bug 896553: Various documentation spelling fixes |
1095 | +* Fixed bug 949154: pt-variable-advisor advice for relay-log-space-limit |
1096 | +* Fixed bug 953461: pt-upgrade manual broken 'output' section |
1097 | +* Fixed bug 949653: pt-table-checksum docs don't mention risks posed by inconsistent schemas |
1098 | + |
1099 | +v2.0.4 released 2012-03-07 |
1100 | +========================== |
1101 | + |
1102 | +Percona Toolkit 2.0.4 has been released. 23 bugs were fixed in this release, |
1103 | +and three new features were implemented. First, --filter was added to pt-kill |
1104 | +which allows for arbitrary --group-by. Second, pt-online-schema-change now |
1105 | +requires that its new --execute option be given, else the tool will just check |
1106 | +the tables and exit. This is a safeguard to encourage users to read the |
1107 | +documentation, particularly when replication is involved. Third, pt-stalk |
1108 | +also received a new option: --[no]stalk. To collect immediately without |
1109 | +stalking, specify --no-stalk and the tool will collect once and exit. |
1110 | + |
1111 | +This release is completely backwards compatible with previous 2.0 releases. |
1112 | +Given the number of bug fixes, it's worth upgrading to 2.0.4. |
1113 | + |
1114 | +Changelog |
1115 | +--------- |
1116 | + |
1117 | +* Added --filter to pt-kill to allow arbitrary --group-by |
1118 | +* Added --[no]stalk to pt-stalk (bug 932331) |
1119 | +* Added --execute to pt-online-schema-change (bug 933232) |
1120 | +* Fixed bug 873598: pt-online-schema-change doesn't like reserved words in column names |
1121 | +* Fixed bug 928966: pt-pmp still uses insecure /tmp |
1122 | +* Fixed bug 933232: pt-online-schema-change can break replication |
1123 | +* Fixed bug 941225: Use of qw(...) as parentheses is deprecated at pt-kill line 3511 |
1124 | +* Fixed bug 821694: pt-query-digest doesn't recognize hex InnoDB txn IDs |
1125 | +* Fixed bug 894255: pt-kill shouldn't check if STDIN is a tty when --daemonize is given |
1126 | +* Fixed bug 916999: pt-table-checksum error: DBD::mysql::st execute failed: called with 2 bind variables when 6 are needed |
1127 | +* Fixed bug 926598: DBD::mysql bug causes pt-upgrade to use wrong precision (M) and scale (D) |
1128 | +* Fixed bug 928226: pt-diskstats illegal division by zero |
1129 | +* Fixed bug 928415: Typo in pt-stalk doc: --trigger should be --function |
1130 | +* Fixed bug 930317: pt-archiver doc refers to nonexistent pt-query-profiler |
1131 | +* Fixed bug 930533: pt-sift looking for *-processlist1; broken compatibility with pt-stalk |
1132 | +* Fixed bug 932331: pt-stalk cannot collect without stalking |
1133 | +* Fixed bug 932442: pt-table-checksum error when column name has two spaces |
1134 | +* Fixed bug 932883: File Debian bug after each release |
1135 | +* Fixed bug 940503: pt-stalk disk space checks wrong on 32bit platforms |
1136 | +* Fixed bug 944420: --daemonize doesn't always close STDIN |
1137 | +* Fixed bug 945834: pt-sift invokes pt-diskstats with deprecated argument |
1138 | +* Fixed bug 945836: pt-sift prints awk error if there are no stack traces to aggregate |
1139 | +* Fixed bug 945842: pt-sift generates wrong state sum during processlist analysis |
1140 | +* Fixed bug 946438: pt-query-digest should print a better message when an unsupported log format is specified |
1141 | +* Fixed bug 946776: pt-table-checksum ignores --lock-wait-timeout |
1142 | +* Fixed bug 940440: Bad grammar in pt-kill docs |
1143 | + |
1144 | +v2.0.3 released 2012-02-03 |
1145 | +========================== |
1146 | + |
1147 | +Percona Toolkit 2.0.3 has been released. The development team was very |
1148 | +busy last month making this release significant: two completely |
1149 | +redesigned and improved tools, pt-diskstats and pt-stalk, and 20 bug fixes. |
1150 | + |
1151 | +Both pt-diskstats and pt-stalk were redesigned and rewritten from the ground |
1152 | +up. This allowed us to greatly improve these tools' functionality and |
1153 | +increase testing for them. The accuracy and output of pt-diskstats was |
1154 | +enhanced, and the tool was rewritten in Perl. pt-collect was removed and |
1155 | +its functionality was put into a new, enhanced pt-stalk. pt-stalk is now |
1156 | +designed to be a stable, long-running daemon on a variety of common platforms. |
1157 | +It is worth re-reading the documentation for each of these tools. |
1158 | + |
1159 | +The 20 bug fixes cover a wide range of problems. The most important are |
1160 | +fixes to pt-table-checksum, pt-iostats, and pt-kill. Apart from pt-diskstats, |
1161 | +pt-stalk, and pt-collect (which was removed), no other tools were changed |
1162 | +in backwards-incompatible ways, so it is worth reviewing the full changelog |
1163 | +for this release and upgrading if you use any tools which had bug fixes. |
1164 | + |
1165 | +Thank you to the many people who reported bugs and submitted patches. |
1166 | + |
1167 | +Download the latest release of Percona Toolkit 2.0 from |
1168 | +http://www.percona.com/software/percona-toolkit/ |
1169 | +or the Percona Software Repositories |
1170 | +(http://www.percona.com/docs/wiki/repositories:start). |
1171 | + |
1172 | +Changelog |
1173 | +--------- |
1174 | + |
1175 | +* Completely redesigned pt-diskstats |
1176 | +* Completely redesigned pt-stalk |
1177 | +* Removed pt-collect and put its functionality in pt-stalk |
1178 | +* Fixed bug 871438: Bash tools are insecure |
1179 | +* Fixed bug 897758: Failed to prepare TableSyncChunk plugin: Use of uninitialized value $args{"chunk_range"} in lc at pt-table-sync line 3055 |
1180 | +* Fixed bug 919819: pt-kill --execute-command creates zombies |
1181 | +* Fixed bug 925778: pt-ioprofile doesn't run without a file |
1182 | +* Fixed bug 925477: pt-ioprofile docs refer to pt-iostats |
1183 | +* Fixed bug 857091: pt-sift downloads http://percona.com/get/pt-pmp, which does not work |
1184 | +* Fixed bug 857104: pt-sift tries to invoke mext, should be pt-mext |
1185 | +* Fixed bug 872699: pt-diskstats: rd_avkb & wr_avkb derived incorrectly |
1186 | +* Fixed bug 897029: pt-diskstats computes wrong values for md0 |
1187 | +* Fixed bug 882918: pt-stalk spams warning if oprofile isn't installed |
1188 | +* Fixed bug 884504: pt-stalk doesn't check pt-collect |
1189 | +* Fixed bug 897483: pt-online-schema-change "uninitialized value" due to update-foreign-keys-method |
1190 | +* Fixed bug 925007: pt-online-schema-change Use of uninitialized value $tables{"old_table"} in concatenation (.) or string at line 4330 |
1191 | +* Fixed bug 915598: pt-config-diff ignores --ask-pass option |
1192 | +* Fixed bug 919352: pt-table-checksum changes binlog_format even if already set to statement |
1193 | +* Fixed bug 921700: pt-table-checksum doesn't add --where to chunk size test on replicas |
1194 | +* Fixed bug 921802: pt-table-checksum does not recognize --recursion-method=processlist |
1195 | +* Fixed bug 925855: pt-table-checksum index check is case-sensitive |
1196 | +* Fixed bug 821709: pt-show-grants --revoke and --separate don't work together |
1197 | +* Fixed bug 918247: Some tools use VALUE instead of VALUES |
1198 | + |
1199 | +v2.0.2 released 2012-01-05 |
1200 | +========================== |
1201 | + |
1202 | +Percona Toolkit 2.0.2 fixes one critical bug: pt-table-sync --replicate |
1203 | +did not work with character values, causing an "Unknown column" error. |
1204 | +If using Percona Toolkit 2.0.1, you should upgrade to 2.0.2. |
1205 | + |
1206 | +Download the latest release of Percona Toolkit 2.0 from |
1207 | +http://www.percona.com/software/percona-toolkit/ |
1208 | +or the Percona Software Repositories |
1209 | +(http://www.percona.com/docs/wiki/repositories:start). |
1210 | + |
1211 | +Changelog |
1212 | +--------- |
1213 | + |
1214 | +* Fixed bug 911996: pt-table-sync --replicate causes "Unknown column" error |
1215 | + |
1216 | +v2.0.1 released 2011-12-30 |
1217 | +========================== |
1218 | + |
1219 | +The Percona Toolkit development team is proud to announce a new major version: |
1220 | +2.0. Beginning with Percona Toolkit 2.0, we are overhauling, redesigning, and |
1221 | +improving the major tools. 2.0 tools are therefore not backwards compatible |
1222 | +with 1.0 tools, which we still support but will not continue to develop. |
1223 | + |
1224 | +New in Percona Toolkit 2.0.1 is a completely redesigned pt-table-checksum. |
1225 | +The original pt-table-checksum 1.0 was rather complex, but it worked well |
1226 | +for many years. By contrast, the new pt-table-checksum 2.0 is much simpler but |
1227 | +also much more efficient and reliable. We spent months rethinking, redesigning, |
1228 | +and testing every aspect of the tool. The three most significant changes: |
1229 | +pt-table-checksum 2.0 does only --replicate, it has only one chunking algorithm, |
1230 | +and its memory usage is stable even with hundreds of thousands of tables and |
1231 | +trillions of rows. The tool is now dedicated to verifying MySQL replication |
1232 | +integrity, nothing else, which it does extremely well. |
1233 | + |
1234 | +In Percona Toolkit 2.0.1 we also fixed various small bugs and forked ioprofile |
1235 | +and align (as pt-ioprofile and pt-align) from Aspersa. |
1236 | + |
1237 | +If you still need functionalities in the original pt-table-checksum, |
1238 | +the latest Percona Toolkit 1.0 release remains available for download. |
1239 | +Otherwise, all new development in Percona Toolkit will happen in 2.0. |
1240 | + |
1241 | +Download the latest release of Percona Toolkit 2.0 from |
1242 | +http://www.percona.com/software/percona-toolkit/ |
1243 | +or the Percona Software Repositories |
1244 | +(http://www.percona.com/docs/wiki/repositories:start). |
1245 | + |
1246 | +Changelog |
1247 | +--------- |
1248 | + |
1249 | +* Completely redesigned pt-table-checksum |
1250 | +* Fixed bug 856065: pt-trend does not work |
1251 | +* Fixed bug 887688: Prepared statements crash pt-query-digest |
1252 | +* Fixed bug 888286: align not part of percona-toolkit |
1253 | +* Fixed bug 897961: ptc 2.0 replicate-check error does not include hostname |
1254 | +* Fixed bug 898318: ptc 2.0 --resume with --tables does not always work |
1255 | +* Fixed bug 903513: MKDEBUG should be PTDEBUG |
1256 | +* Fixed bug 908256: Percona Toolkit should include pt-ioprofile |
1257 | +* Fixed bug 821717: pt-tcp-model --type=requests crashes |
1258 | +* Fixed bug 844038: pt-online-schema-change documentation example w/drop-tmp-table does not work |
1259 | +* Fixed bug 864205: Remove the query to reset @crc from pt-table-checksum |
1260 | +* Fixed bug 898663: Typo in pt-log-player documentation |
1261 | + |
1262 | +v1.0.1 released 2011-09-01 |
1263 | +========================== |
1264 | + |
1265 | +Percona Toolkit 1.0.1 has been released. In July, Baron announced planned |
1266 | +changes to Maatkit and Aspersa development;[1] Percona Toolkit is the |
1267 | +result. In brief, Percona Toolkit is the combined fork of Maatkit and |
1268 | +Aspersa, so although the toolkit is new, the programs are not. That means |
1269 | +Percona Toolkit 1.0.1 is mature, stable, and production-ready. In fact, |
1270 | +it's even a little more stable because we fixed a few bugs in this release. |
1271 | + |
1272 | +Percona Toolkit packages can be downloaded from |
1273 | +http://www.percona.com/downloads/percona-toolkit/ |
1274 | +or the Percona Software Repositories |
1275 | +(http://www.percona.com/docs/wiki/repositories:start). |
1276 | + |
1277 | +Although Maatkit and Aspersa development use Google Code, Percona Toolkit |
1278 | +uses Launchpad: https://launchpad.net/percona-toolkit |
1279 | + |
1280 | +[1] http://www.xaprb.com/blog/2011/07/06/planned-change-in-maatkit-aspersa-development/ |
1281 | + |
1282 | +Changelog |
1283 | +--------- |
1284 | + |
1285 | +* Fixed bug 819421: MasterSlave::is_replication_thread() doesn't match all |
1286 | +* Fixed bug 821673: pt-table-checksum doesn't include --where in min max queries |
1287 | +* Fixed bug 821688: pt-table-checksum SELECT MIN MAX for char chunking is wrong |
1288 | +* Fixed bug 838211: pt-collect: line 24: [: : integer expression expected |
1289 | +* Fixed bug 838248: pt-collect creates a "5.1" file |
1290 | + |
1291 | +v0.9.5 released 2011-08-04 |
1292 | +========================== |
1293 | + |
1294 | +Percona 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. |
1295 | + |
1296 | +Changelog |
1297 | +--------- |
1298 | + |
1299 | +* Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit. |
1300 | + |
1301 | +Changelog |
1302 | +--------- |
1303 | + |
1304 | +* Fixed bug 1279502: --version-check behaves like spyware |
1305 | + |
1306 | +======= |
1307 | +>>>>>>> MERGE-SOURCE |
1308 | +v2.2.6 released 2013-12-18 |
1309 | +========================== |
1310 | + |
1311 | +Percona 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: |
1312 | + |
1313 | +* Fixed bug 1223458: pt-table-sync deletes child table rows |
1314 | + |
1315 | +Buried in the pt-table-sync docs is this warning: |
1316 | + |
1317 | + Also be careful with tables that have foreign key constraints with C<ON DELETE> |
1318 | + or C<ON UPDATE> definitions because these might cause unintended changes on the |
1319 | + child tables. |
1320 | + |
1321 | +Until 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. |
1322 | + |
1323 | +Another good bug fix is: |
1324 | + |
1325 | +* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes |
1326 | + |
1327 | +After 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. |
1328 | + |
1329 | +* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table |
1330 | + |
1331 | +This 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. |
1332 | + |
1333 | +Finally, this bug (more like a feature request/change) might be a backwards-incompatible change: |
1334 | + |
1335 | +* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled |
1336 | + |
1337 | +The 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. |
1338 | + |
1339 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
1340 | + |
1341 | +Changelog |
1342 | +--------- |
1343 | + |
1344 | +* Added pt-query-digest support for Percona Server slow log rate limiting |
1345 | +* Added pt-agent --ping |
1346 | +* Added pt-mysql-summary --all-databases |
1347 | +* Added pt-stalk --sleep-collect |
1348 | +* Added pt-table-sync --[no]check-child-tables |
1349 | +* Fixed bug 1249150: PTDEBUG prints some info to STDOUT |
1350 | +* Fixed bug 1248363: pt-agent requires restart after changing MySQL options |
1351 | +* Fixed bug 1248778: pt-agent --install on PXC is not documented |
1352 | +* Fixed bug 1250973: pt-agent --install doesn't check for previous install |
1353 | +* Fixed bug 1250968: pt-agent --install suggest MySQL user isn't quoted |
1354 | +* Fixed bug 1251004: pt-agent --install error about slave is confusing |
1355 | +* Fixed bug 1251726: pt-agent --uninstall fails if agent is running |
1356 | +* Fixed bug 1248785: pt-agent docs don't list privs required for its MySQL user |
1357 | +* Fixed bug 1215016: pt-deadlock-logger docs use pt-fk-error-logger |
1358 | +* Fixed bug 1201443: pt-duplicate-key-checker error when EXPLAIN key_len=0 |
1359 | +* Fixed bug 1217013: pt-duplicate-key-checker misses exact duplicate unique indexes |
1360 | +* Fixed bug 1214685: pt-mysql-summary schema dump prompt can't be disabled |
1361 | +* Fixed bug 1195628: pt-online-schema-change gets stuck looking for its own _new table |
1362 | +* Fixed bug 1249149: pt-query-digest stats prints to STDOUT instead of STDERR |
1363 | +* Fixed bug 1071979: pt-stak error parsing df with NFS |
1364 | +* Fixed bug 1223458: pt-table-sync deletes child table rows |
1365 | + |
1366 | +v2.2.5 released 2013-10-16 |
1367 | +========================== |
1368 | + |
1369 | +Percona Toolkit 2.2.5 has been released. This release has four new features and a number of bugfixes. |
1370 | + |
1371 | +Query_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. |
1372 | + |
1373 | +As 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. |
1374 | + |
1375 | +New --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. |
1376 | + |
1377 | +New --new-table-name option has been added to pt-online-schema-change which can be used to specify the temporary table name. |
1378 | + |
1379 | +* Fixed bug #1199589: pt-archiver would delete the data even with the --dry-run option. |
1380 | + |
1381 | +* Fixed bug #821692: pt-query-digest didn't distill LOAD DATA correctly. |
1382 | + |
1383 | +* Fixed bug #984053: pt-query-digest didn't distill INSERT/REPLACE without INTO correctly. |
1384 | + |
1385 | +* Fixed bug #1206677: pt-agent docs were referencing wrong web address. |
1386 | + |
1387 | +* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster would crash if no nodes were found. |
1388 | + |
1389 | +Percona Toolkit packages can be downloaded from |
1390 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
1391 | +Repositories (http://www.percona.com/software/repositories |
1392 | + |
1393 | +Changelog |
1394 | +--------- |
1395 | + |
1396 | +* Added Query_time histogram bucket counts to pt-query-digest JSON output |
1397 | +* Added pt-online-schema-change --[no]drop-triggers option |
1398 | +* Fixed bug #1199589: pt-archiver deletes data despite --dry-run |
1399 | +* Fixed bug #944051: pt-table-checksum has ambiguous exit status |
1400 | +* Fixed bug #1209436: pt-kill --log-dsn may not work on Perl 5.8 |
1401 | +* Fixed bug #1210537: pt-table-checksum --recursion-method=cluster crashes if no nodes are found |
1402 | +* Fixed bug #1215608: pt-online-schema-change new table suffix is hard-coded |
1403 | +* Fixed bug #1229861: pt-table-sync quotes float values, can't sync |
1404 | +* Fixed bug #821692: pt-query-digest doesn't distill LOAD DATA correctly |
1405 | +* Fixed bug #984053: pt-query-digest doesn't distill INSERT/REPLACE without INTO correctly |
1406 | +* Fixed bug #1206728: pt-deadlock-logger 2.2 requires DSN on command line |
1407 | +* Fixed bug #1226721: pt-agent on CentOS 5 fails to send data |
1408 | +* Fixed bug #821690: pt-query-digest doesn't distill IF EXISTS correctly |
1409 | +* Fixed bug #1206677: pt-agent docs reference clodu.percona.com |
1410 | + |
1411 | +v2.2.4 released 2013-07-18 |
1412 | +========================== |
1413 | + |
1414 | +Percona Toolkit 2.2.4 has been released. This release two new features and a number of bugfixes. |
1415 | + |
1416 | +pt-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. |
1417 | + |
1418 | +When 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. |
1419 | + |
1420 | +* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6 |
1421 | +pt-table-checksum would fail if variable explicit_defaults_for_timestamp was enabled in MySQL 5.6. |
1422 | + |
1423 | +* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0" |
1424 | +Trying to assign 0 to any variable by using --set-vars option would cause “Invalid --set-vars value” message. |
1425 | + |
1426 | +* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get |
1427 | +Fixed the typo in the pt-online-schema-change code that could lead to a tool crash when copying the rows. |
1428 | + |
1429 | +* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality |
1430 | +pt-table-checksum was using the first non-unique index instead of the one with the highest cardinality due to a sorting bug. |
1431 | + |
1432 | +Percona Toolkit packages can be downloaded from |
1433 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
1434 | +Repositories (http://www.percona.com/software/repositories |
1435 | + |
1436 | +Changelog |
1437 | +--------- |
1438 | + |
1439 | +* Added pt-query-digest anonymous JSON output |
1440 | +* Added pt-online-schema-change timestamp output |
1441 | +* Fixed bug #1136559: pt-table-checksum: Deep recursion on subroutine "SchemaIterator::_iterate_dbh" |
1442 | +* Fixed bug #1163735: pt-table-checksum fails if explicit_defaults_for_timestamp is enabled in 5.6 |
1443 | +* Fixed bug #1182856: Zero values causes "Invalid --set-vars value: var=0" |
1444 | +* Fixed bug #1188264: pt-online-schema-change error copying rows: Undefined subroutine &pt_online_schema_change::get |
1445 | +* Fixed bug #1195034: pt-deadlock-logger error: Use of uninitialized value $ts in pattern match (m//) |
1446 | +* Fixed bug #1199591: pt-table-checksum doesn't use non-unique index with highest cardinality |
1447 | +* Fixed bug #1168434: pt-upgrade reports differences on NULL |
1448 | +* Fixed bug #1172317: pt-sift does not work if pt-stalk did not collect due to a full disk |
1449 | +* Fixed bug #1176010: pt-query-digest doesn't group db and `db` together |
1450 | +* Fixed bug #1137556: pt-heartbeat docs don't account for --utc |
1451 | +* Fixed bug #1168106: pt-variable-advisor has the wrong default value for innodb_max_dirty_pages_pct in 5.5 and 5.6 |
1452 | +* Fixed bug #1168110: pt-variable-advisor shows key_buffer_size in 5.6 as unconfigured (even though it is) |
1453 | +* Fixed bug #1171968: pt-query-digest docs don't mention --type=rawlog |
1454 | +* Fixed bug #1174956: pt-query-digest and pt-fingerprint don't strip some multi-line comments |
1455 | + |
1456 | + |
1457 | +v2.2.3 released 2013-06-17 |
1458 | +========================== |
1459 | + |
1460 | +Percona Toolkit 2.2.3 has been released which has only two changes: pt-agent |
1461 | +and a bug fix for pt-online-schema-change. pt-agent is not a command line |
1462 | +tool but a client-side agent for Percona Cloud Tools. Visit |
1463 | +https://cloud.percona.com for more information. The pt-online-schema-change |
1464 | +bug fix is bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02): |
1465 | +"Table 'db._t_new' doesn't exist". This happens when the tool's triggers |
1466 | +cannot be dropped. |
1467 | + |
1468 | +Percona Toolkit packages can be downloaded from |
1469 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
1470 | +Repositories (http://www.percona.com/software/repositories/). |
1471 | + |
1472 | +Changelog |
1473 | +--------- |
1474 | + |
1475 | +* Added new tool: pt-agent |
1476 | +* Fixed bug 1188002: pt-online-schema-change causes "ERROR 1146 (42S02): Table 'db._t_new' doesn't exist" |
1477 | + |
1478 | +v2.2.2 released 2013-04-24 |
1479 | +========================== |
1480 | + |
1481 | +Percona Toolkit 2.2.2 has been released. This is the second release of |
1482 | +the 2.2 series and aims to fix bugs in the previous release and provide |
1483 | +usability enhacements to the toolkit. |
1484 | + |
1485 | +Users may note the revival of the --show-all option in pt-query-digest. |
1486 | +This had been removed in 2.2.1, but resulted in too much output in |
1487 | +certain cases. |
1488 | + |
1489 | +A new --recursion-method was added to pt-table-checksum: cluster. This |
1490 | +method attempts to auto-discover cluster nodes, alleviating the need to |
1491 | +specify cluster node DSNs in a DSN table (--recursion-method=dsn). |
1492 | + |
1493 | +The following highlights some of the more interesting and "hot" bugs in |
1494 | +this release: |
1495 | + |
1496 | +* Bug #1127450: pt-archiver --bulk-insert may corrupt data |
1497 | + |
1498 | +pt-archiver --bulk-insert didn't work with --charset UTF-8. This revealed |
1499 | +a case where the tool could corrupt data by double-encoding. This is now |
1500 | +fixed, but remains relatively dangerous if using DBD::mysql 3.0007 which |
1501 | +does not handle UTF-8 properly. |
1502 | + |
1503 | +* Bug #1163372: pt-heartbeat --utc --check always returns 0 |
1504 | + |
1505 | +Unfortunately, the relatively new --utc option for pt-heart was still |
1506 | +broken because "[MySQL] interprets date as a value in the current time zone |
1507 | +and converts it to an internal value in UTC." Now the tool works correctly |
1508 | +with --utc by specifying "SET time_zone='+0:00'", and older versions of |
1509 | +the tool can be made to work by specifying --set-vars "time_zone='+0:00'". |
1510 | + |
1511 | +* Bug #821502: Some tools don't have --help or --version |
1512 | + |
1513 | +pt-align, pt-mext, pt-pmp and pt-sift now have both options. |
1514 | + |
1515 | +This is another solid bug fix release, and all users are encouraged to upgrade. |
1516 | + |
1517 | +Percona Toolkit packages can be downloaded from |
1518 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
1519 | +Repositories (http://www.percona.com/software/repositories/). |
1520 | + |
1521 | +Changelog |
1522 | +--------- |
1523 | + |
1524 | +* Added --show-all to pt-query-digest |
1525 | +* Added --recursion-method=cluster to pt-table-checksum |
1526 | +* Fixed bug 1127450: pt-archiver --bulk-insert may corrupt data |
1527 | +* Fixed bug 1163372: pt-heartbeat --utc --check always returns 0 |
1528 | +* Fixed bug 1156901: pt-query-digest --processlist reports duplicate queries for replication thread |
1529 | +* Fixed bug 1160338: pt-query-digest 2.2 prints unwanted debug info on tcpdump parsing errors |
1530 | +* Fixed bug 1160918: pt-query-digest 2.2 prints too many string values |
1531 | +* Fixed bug 1156867: pt-stalk prints the wrong variable name in verbose mode when --function is used |
1532 | +* Fixed bug 1081733: pt-stalk plugins can't access the real --prefix |
1533 | +* Fixed bug 1099845: pt-table-checksum pxc same_node function incorrectly uses wsrep_sst_receive_address |
1534 | +* Fixed bug 821502: Some tools don't have --help or --version |
1535 | +* Fixed bug 947893: Some tools use @@hostname without /*!50038*/ |
1536 | +* Fixed bug 1082406: An explicitly set wsrep_node_incoming_address may make SHOW STATUS LIKE 'wsrep_incoming_addresses' return a portless address |
1537 | + |
1538 | +v2.2.1 released 2013-03-14 |
1539 | +========================== |
1540 | + |
1541 | +Percona Toolkit 2.2.1 has been released. This is the first release in |
1542 | +the new 2.2 series which supersedes the 2.1 series and renders the 2.0 |
1543 | +series obsolete. We plan to do one more bug fix release for 2.1 (2.1.10), |
1544 | +but otherwise all new development and fixes and will now focus on 2.2. |
1545 | + |
1546 | +Percona Toolkit 2.2 has been several months in the making, and it turned |
1547 | +out very well, with many more new features, changes, and improvements than |
1548 | +originally anticipated. Here are the highlights: |
1549 | + |
1550 | +---- |
1551 | + |
1552 | +* Official support for MySQL 5.6 |
1553 | + |
1554 | +We started beta support for MySQL 5.6 in 2.1.8 when 5.6 was still beta. |
1555 | +Now that 5.6 is GA, so is our support for it. Check out the Percona Toolkit |
1556 | +supported platforms and versions: |
1557 | +http://www.percona.com/mysql-support/policies/percona-toolkit-supported-platforms-and-versions |
1558 | + |
1559 | +When you upgrade to MySQL 5.6, be sure to upgrade to Percona Toolkit 2.2, too. |
1560 | + |
1561 | +* Official support for Percona XtraDB Cluster (PXC) |
1562 | + |
1563 | +We also started beta support for Percona XtraDB Cluster in 2.1.8, but |
1564 | +now that support is official in 2.2 because we have had many months to |
1565 | +work with PXC and figure out which tools work with it and how. There's |
1566 | +still one noticeable omission: pt-table-sync. It's still unclear if |
1567 | +or how one would sync a cluster that, in theory, doesn't become out-of-sync. |
1568 | +As Percona XtraDB Cluster develops, Percona Toolkit will continue to |
1569 | +evolve to support it. |
1570 | + |
1571 | +* pt-online-schema-change (pt-osc) is much more resilient |
1572 | + |
1573 | +pt-online-schema-change 2.1 has been a great success, and people have been |
1574 | +using it for evermore difficult and challenging tasks. Consequently, we |
1575 | +needed to make it "try harder", even though it already tried pretty hard |
1576 | +to keep working despite recoverable errors and such. Whereas pt-osc 2.1 |
1577 | +only retries certain operations, pt-osc 2.2 retries every critical operation, |
1578 | +and its tries and wait time between tries for all operations are configurable. |
1579 | +Also, we removed --lock-wait-timeout which set innodb_lock_wait_timeout |
1580 | +because that now conflicts, or is at least confused with, lock_wait_timeout |
1581 | +(introduced in MySQL 5.5) for metadata locks. Now --set-vars is used to |
1582 | +set both of these (or any) system variables. For a quick intro to metadata |
1583 | +locks and how they may affect you, see Ovais's article: |
1584 | +http://www.mysqlperformanceblog.com/2013/02/01/implications-of-metadata-locking-changes-in-mysql-5-5/ |
1585 | + |
1586 | +What does this all mean? In short: pt-online-schema-change 2.2 is far more |
1587 | +resilient out of the box. It's also aware of metadata locks now, whereas |
1588 | +2.1 was not really aware of them. And it's highly configurable, so you can |
1589 | +make the tool try _very_ hard to keep working. |
1590 | + |
1591 | +* pt-upgrade is brand-new |
1592 | + |
1593 | +pt-upgrade was written once long ago, thrown into the world, and then never |
1594 | +heard from again... until now. Now that we have four base versions of |
1595 | +MySQL (5.0, 5.1, 5.5, and 5.6), plus at least four major forks (Percona |
1596 | +Server, MariaDB, Percona XtraDB Cluster, and MariaDB Galera Cluster), |
1597 | +upgrades are fashionable, so to speak. Problem is: "original" pt-upgrade |
1598 | +was too noisy and too complex. pt-upgrade 2.2 is far simpler and far |
1599 | +easier to use. It's basically what you expect from such a tool. |
1600 | + |
1601 | +Moreover, it has a really helpful new feature: "reference results", i.e. |
1602 | +saved results from running queries on a server. Granted, this can take |
1603 | +_a lot_ of disk space, but it allows you to "run now, compare later." |
1604 | + |
1605 | +If you're thinking about upgrading, give pt-upgrade a try. It also reads |
1606 | +every type of log now (slow, general, binary, and tcpdump), so you shouldn't |
1607 | +have a problem finding queries to run and compare. |
1608 | + |
1609 | +* pt-query-digest is simpler |
1610 | + |
1611 | +pt-query-digest 2.2 has fewer options now. Basically, we re-focused it |
1612 | +on its primary objective: analyzing MySQL query logs. So the ability |
1613 | +to parse memcached, Postgres, Apache, and other logs was removed. We |
1614 | +also removed several options that probably nobody ever used, and |
1615 | +changed/renamed other options to be more logical. The result is a simpler, |
1616 | +more focused tool, i.e. less overwhelming. |
1617 | + |
1618 | +Also, pt-query-digest 2.2 can save results in JSON format (--output=json). |
1619 | +This feature is still in development while we determine the optimal |
1620 | +JSON structure. |
1621 | + |
1622 | +* Version check is on by default |
1623 | + |
1624 | +Way back in 2.1.4, released September/October 2012, we introduced a feature |
1625 | +called "version check" into most tools: http://percona.com/version-check |
1626 | +It's like a lot of software that automatically checks for updates, but |
1627 | +it's also more: it's a free service from Percona that advises when certain |
1628 | +programs (Percona Toolkit tools, MySQL, Perl, etc.) are either out of date |
1629 | +or are known bad versions. For example, there are two versions of the |
1630 | +DBD::mysql Perl module that have problems. And there are certain versions |
1631 | +of MySQL that have critical bugs. Version check will warn you about these |
1632 | +if your system is running them. |
1633 | + |
1634 | +What's new in 2.2 is that, whereas this feature (specifically, the option |
1635 | +in tools: --version-check) was off by default, now it's on by default. |
1636 | +If the IO::Socket::SSL Perl module is installed (easily available through |
1637 | +your package manager), it will use a secure (https) connection over the web, |
1638 | +else it will use a standard (http) connection. |
1639 | + |
1640 | +Check out http://percona.com/version-check for more information. |
1641 | + |
1642 | +* pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player are gone |
1643 | + |
1644 | +We removed pt-query-advisor, pt-tcp-model, pt-trend, and pt-log-player. |
1645 | +Granted, no tool is ever really gone: if you need one of these tools, |
1646 | +get it from 2.1. pt-log-player is now superseded by Percona Playback |
1647 | +(http://www.percona.com/doc/percona-playback/). pt-query-advisor was |
1648 | +removed so that we can focus our efforts on its online counterpart instead: |
1649 | +https://tools.percona.com/query-advisor. The other tools were special |
1650 | +projects that were not widely used. |
1651 | + |
1652 | +* pt-stalk and pt-mysql-summary have built-in MySQL options |
1653 | + |
1654 | +No more "pt-stalk -- -h db1 -u me". pt-stalk 2.2 and pt-mysql-summary 2.2 |
1655 | +have all the standard MySQL options built-in, like other tools: --user, |
1656 | +--host, --port, --password, --socket, --defaults-file. So now the command |
1657 | +line is what you expect: pt-stalk -h dhb1 -u me. |
1658 | + |
1659 | +* pt-stalk --no-stalk is no longer magical |
1660 | + |
1661 | +Originally, pt-stalk --no-stalk was meant to simulate pt-collect, i.e. |
1662 | +collect once and exit. To do that, the tool magically set some options |
1663 | +and clobbered others, resulting in no way to do repeated collections |
1664 | +at intervals. Now --no-stalk means only that: don't stalk, just collect, |
1665 | +respecting --interval and --iterations as usual. So to collect once |
1666 | +and exit: pt-stalk --no-stalk --iterations 1. |
1667 | + |
1668 | +* pt-fk-error-logger and pt-deadlock-logger are standardized |
1669 | + |
1670 | +Similar to the pt-stalk --no-stalk changes, pt-fk-error-logger and |
1671 | +pt-deadlock-logger received mini overhauls in 2.2 to make their |
1672 | +run-related options (--run-time, --interval, --iterations) standard. |
1673 | +If you hadn't noticed, one tool would run forever by default, while |
1674 | +the other would run once and exit. And each treated their run-related |
1675 | +options a little differently. This magic is gone now: both tools run |
1676 | +forever by default, so specify --iterations or --run-time to limit how |
1677 | +long they run. |
1678 | + |
1679 | +---- |
1680 | + |
1681 | +There were other miscellaneous bug fixes, too. See |
1682 | +https://launchpad.net/percona-toolkit/+milestone/2.2.1 for the full list. |
1683 | + |
1684 | +As the first release in a new series, 2.2 features are not yet finalized. |
1685 | +In other words, we may change things like the pt-query-digest --output json |
1686 | +format in future releases after receiving real-world feedback. |
1687 | + |
1688 | +Percona Toolkit 2.2 is an exciting release with many helpful new |
1689 | +features. Users are encouraged to begin upgrading, particularly given |
1690 | +that, except for the forthcoming 2.1.10 release, no more work will be |
1691 | +done on 2.1 (unless you're a Percona customer with a support contract or |
1692 | +other agreement). |
1693 | + |
1694 | +If you upgrade from 2.1 to 2.2, be sure to re-read tools' documentation |
1695 | +to see what has changed because much as changed for certain tools. |
1696 | + |
1697 | +Percona Toolkit packages can be downloaded from |
1698 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
1699 | +Repositories (http://www.percona.com/software/repositories/). |
1700 | + |
1701 | +Changelog |
1702 | +--------- |
1703 | + |
1704 | +* Official support for MySQL 5.6 |
1705 | +* Official support for Percona XtraDB Cluster |
1706 | +* Redesigned pt-query-digest |
1707 | +* Redesigned pt-upgrade |
1708 | +* Redesigned pt-fk-error-logger |
1709 | +* Redesigned pt-deadlock-logger |
1710 | +* Changed --set-vars in all tools |
1711 | +* Renamed --retries to --tries in pt-online-schema-change |
1712 | +* Added --check-read-only to pt-heartbeat |
1713 | +* Added MySQL options to pt-mysql-summary |
1714 | +* Added MySQL options to pt-stalk |
1715 | +* Removed --lock-wait-timeout from pt-online-schema-change (use --set-vars) |
1716 | +* Removed --lock-wait-timeout from pt-table-checksum (use --set-vars) |
1717 | +* Removed pt-query-advisor |
1718 | +* Removed pt-tcp-model |
1719 | +* Removed pt-trend |
1720 | +* Removed pt-log-player |
1721 | +* Enabled --version-check by default in all tools |
1722 | +* Fixed bug 1008796: Several tools don't have --database |
1723 | +* Fixed bug 1087319: Quoter::serialize_list() doesn't handle multiple NULL values |
1724 | +* Fixed bug 1086018: pt-config-diff needs to parse wsrep_provider_options |
1725 | +* Fixed bug 1056838: pt-fk-error-logger --run-time works differently than pt-deadlock-logger --run-time |
1726 | +* Fixed bug 1093016: pt-online-schema-change doesn't retry RENAME TABLE |
1727 | +* Fixed bug 1113301: pt-online-schema-change blocks on metadata locks |
1728 | +* Fixed bug 1125665: pt-stalk --no-stalk silently clobbers other options, acts magically |
1729 | +* Fixed bug 1019648: pt-stalk truncates InnoDB status if there are too many transactions |
1730 | +* Fixed bug 1087804: pt-table-checksum doesn't warn if no slaves are found |
1731 | + |
1732 | +v2.1.9 released 2013-02-14 |
1733 | +========================== |
1734 | + |
1735 | +Percona Toolkit 2.1.9 has been released. This release primarily aims to |
1736 | +restore backwards-compatibility with pt-heartbeat 2.1.7 and older, but it |
1737 | +also has important bug fixes for other tools. |
1738 | + |
1739 | +* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps |
1740 | +* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP |
1741 | + |
1742 | +The previous release switched the time authority from Perl to MySQL, and from |
1743 | +local time to UTC. Unfortunately, these changes caused a loss of precision and, |
1744 | +if mixing versions of pt-heartbeat, made the tool report a huge amount of |
1745 | +replication lag. This release makes the tool compatible with pt-heartbeat |
1746 | +2.1.7 and older again, but the UTC behavior introduced in 2.1.8 is now only |
1747 | +available by specifying the new --utc option. |
1748 | + |
1749 | +* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index" |
1750 | + |
1751 | +This is an important bug fix for pt-table-sync: certain chunks from |
1752 | +pt-table-checksum resulted in an impossible WHERE, causing the false-positive |
1753 | +"Cannot nibble" error, if those chunks had diffs. |
1754 | + |
1755 | +* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB |
1756 | + |
1757 | +MariaDB 5.5.28 (https://kb.askmonty.org/en/mariadb-5528-changelog/) fixed |
1758 | +a bug: "Added warnings for duplicate key errors when using INSERT IGNORE". |
1759 | +However, standard MySQL does not warn in this case, despite the docs saying |
1760 | +that it should. Since pt-online-schema-change has always intended to ignore |
1761 | +duplicate entry errors by using "INSERT IGNORE", it now handles the MariaDB |
1762 | +case by also ignoring duplicate entry errors in the code. |
1763 | + |
1764 | +* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns |
1765 | + |
1766 | +pt-online-schema-change 2.1.9 handles another case of changing the primary key. |
1767 | +However, since changing the primary key is tricky, the tool stops if --alter |
1768 | +contains "DROP PRIMARY KEY", and you have to specify --no-check-alter to |
1769 | +acknowledge this case. |
1770 | + |
1771 | +* Fixed bug 1099933: pt-stalk is too verbose, fills up log |
1772 | + |
1773 | +Previously, pt-stalk printed a line for every check. Since the tool is |
1774 | +designed to be a long-running daemon, this could result in huge log files |
1775 | +with "matched=no" lines. The tool has a new --verbose option which makes it |
1776 | +quieter by default. |
1777 | + |
1778 | +All users should upgrade, but in particular, users of versions 2.1.7 and |
1779 | +older are strongly recommended to skip 2.1.8 and go directly to 2.1.9. |
1780 | + |
1781 | +Users of pt-heartbeat in 2.1.8 who prefer the UTC behavior should keep in |
1782 | +mind that they will have to use the --utc option after upgrading. |
1783 | + |
1784 | +Percona Toolkit packages can be downloaded from |
1785 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
1786 | +Repositories (http://www.percona.com/software/repositories/). |
1787 | + |
1788 | +Changelog |
1789 | +--------- |
1790 | + |
1791 | +* Fixed bug 1103221: pt-heartbeat 2.1.8 doesn't use precision/sub-second timestamps |
1792 | +* Fixed bug 1099665: pt-heartbeat 2.1.8 reports big time drift with UTC_TIMESTAMP |
1793 | +* Fixed bug 1099836: pt-online-schema-change fails with "Duplicate entry" on MariaDB |
1794 | +* Fixed bug 1103672: pt-online-schema-change makes bad DELETE trigger if PK is re-created with new columns |
1795 | +* Fixed bug 1115333: pt-pmp doesn't list the origin lib for each function |
1796 | +* Fixed bug 823411: pt-query-digest shouldn't print "Error: none" for tcpdump |
1797 | +* Fixed bug 1103045: pt-query-digest fails to parse non-SQL errors |
1798 | +* Fixed bug 1105077: pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave |
1799 | +* Fixed bug 918056: pt-table-sync false-positive error "Cannot nibble table because MySQL chose no index instead of the PRIMARY index" |
1800 | +* Fixed bug 1099933: pt-stalk is too verbose, fills up log |
1801 | + |
1802 | +v2.1.8 released 2012-12-21 |
1803 | +========================== |
1804 | + |
1805 | +Percona 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: |
1806 | + |
1807 | +* pt-table-chcecksum |
1808 | +* pt-online-schema-change |
1809 | +* pt-archive |
1810 | +* pt-mysql-summary |
1811 | +* pt-heartbeat |
1812 | +* pt-variable-advisor |
1813 | +* pt-config-diff |
1814 | +* pt-deadlock-logger |
1815 | + |
1816 | +However, 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. |
1817 | + |
1818 | +The bug fixes are widely assorted. The following highlights some of the more interesting and "hot" bugs: |
1819 | + |
1820 | +* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query |
1821 | + |
1822 | +Slow 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 */``. |
1823 | + |
1824 | +* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user" |
1825 | + |
1826 | +The "as" was misparsed and the following word would end up reported as the database; pt-query-digest now handles this correctly. |
1827 | + |
1828 | +* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5 |
1829 | + |
1830 | +Some renamed variables had caused the Percona Server section to work unreliably. |
1831 | + |
1832 | +* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only |
1833 | + |
1834 | +When using --replicate-check-only, filter options like --databases and --tables were not applied. |
1835 | + |
1836 | +* Fixed bug 886059: pt-heartbeat handles timezones inconsistently |
1837 | + |
1838 | +Previously, 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. |
1839 | + |
1840 | +* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables |
1841 | + |
1842 | +Since 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. |
1843 | + |
1844 | +2.1.8 continues the trend of solid bug fix releases, and all 2.1 users are encouraged to upgrade. |
1845 | + |
1846 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
1847 | + |
1848 | +Changelog |
1849 | +--------- |
1850 | + |
1851 | +* Beta support for MySQL 5.6 |
1852 | +* Beta support for Percona XtraDB Cluster |
1853 | +* pt-online-schema-change: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer |
1854 | +* pt-table-checksum: If ran on Percona XtraDB Cluster, requires PXC 5.5.28 or newer |
1855 | +* pt-upgrade: Added --[no]disable-query-cache |
1856 | +* Fixed bug 927955: Bad pod2rst transformation |
1857 | +* Fixed bug 898665: Bad online docs formatting for --[no]vars |
1858 | +* Fixed bug 1022622: pt-config-diff is case-sensitive |
1859 | +* Fixed bug 1007938: pt-config-diff doesn't handle end-of-line comments |
1860 | +* Fixed bug 917770: pt-config-diff Use of uninitialized value in substitution (s///) at line 1996 |
1861 | +* Fixed bug 1082104: pt-deadlock-logger doesn't handle usernames with dashes |
1862 | +* Fixed bug 886059: pt-heartbeat handles timezones inconsistently |
1863 | +* Fixed bug 1086259: pt-kill --log-dsn timestamp is wrong |
1864 | +* Fixed bug 1015590: pt-mysql-summary doesn't handle renamed variables in Percona Server 5.5 |
1865 | +* Fixed bug 1079341: pt-online-schema-change checks for foreign keys on MyISAM tables |
1866 | +* Fixed bug 823431: pt-query-advisor hangs on big queries |
1867 | +* Fixed bug 996069: pt-query-advisor RES.001 is incorrect |
1868 | +* Fixed bug 933465: pt-query-advisor false positive on RES.001 |
1869 | +* Fixed bug 937234: pt-query-advisor issues wrong RES.001 |
1870 | +* Fixed bug 1082599: pt-query-digest fails to parse timestamp with no query |
1871 | +* Fixed bug 1078838: pt-query-digest doesn't parse general log with "Connect user as user" |
1872 | +* Fixed bug 957442: pt-query-digest with custom --group-by throws error |
1873 | +* Fixed bug 887638: pt-query-digest prints negative byte offset |
1874 | +* Fixed bug 831525: pt-query-digest help output mangled |
1875 | +* Fixed bug 932614: pt-slave-restart CHANGE MASTER query causes error |
1876 | +* Fixed bug 1046440: pt-stalk purge_samples slows down checks |
1877 | +* Fixed bug 986847: pt-stalk does not report NFS iostat |
1878 | +* Fixed bug 1074179: pt-table-checksum doesn't ignore tables for --replicate-check-only |
1879 | +* Fixed bug 911385: pt-table-checksum v2 fails when --resume + --ignore-database is used |
1880 | +* Fixed bug 1041391: pt-table-checksum debug statement for "Chosen hash func" prints undef |
1881 | +* Fixed bug 1075638: pt-table-checksum Illegal division by zero at line 7950 |
1882 | +* Fixed bug 1052475: pt-table-checksum uninitialized value in numeric lt (<) at line 8611 |
1883 | +* Fixed bug 1078887: Tools let --set-vars clobber the required SQL mode |
1884 | + |
1885 | +v2.1.7 released 2012-11-19 |
1886 | +========================== |
1887 | + |
1888 | +Percona Toolkit 2.1.7 has been released which is a hotfix for two bugs when using pt-table-checksum with Percona XtraDB Cluster: |
1889 | + |
1890 | +* Bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG |
1891 | +* Bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes |
1892 | + |
1893 | +If you're using pt-table-checksum with a Percona XtraDB Cluster, you should upgrade. Otherwise, users can wait until the next full release. |
1894 | + |
1895 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
1896 | + |
1897 | +Changelog |
1898 | +--------- |
1899 | + |
1900 | +* Fixed bug 1080384: pt-table-checksum 2.1.6 crashes using PTDEBUG |
1901 | +* Fixed bug 1080385: pt-table-checksum 2.1.6 --check-binlog-format doesn't ignore PXC nodes |
1902 | + |
1903 | +v2.1.6 released 2012-11-13 |
1904 | +========================== |
1905 | + |
1906 | +Percona 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: |
1907 | + |
1908 | +* Bug 978133: pt-query-digest review table privilege checks don't work |
1909 | + |
1910 | +The 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. |
1911 | + |
1912 | +* Bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves |
1913 | + |
1914 | +A particularly important fix, as it may stop pt-table-checksum from breaking replication in these setups. |
1915 | + |
1916 | +* Bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag |
1917 | + |
1918 | +If 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. |
1919 | + |
1920 | +* Bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key |
1921 | + |
1922 | +Fixed by choosing a key on the new table for the DELETE trigger. |
1923 | + |
1924 | +* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes |
1925 | + |
1926 | +A 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. |
1927 | + |
1928 | +* Bug 821715: LOAD DATA LOCAL INFILE broken in some platforms |
1929 | + |
1930 | +This 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. |
1931 | + |
1932 | +* Bug 866075: pt-show-grant doesn't support column-level grants |
1933 | + |
1934 | +This was actually the 'hottest' bug in the tracker. |
1935 | + |
1936 | +This is another solid bug fix release, and all 2.1 users are encouraged to upgrade. |
1937 | + |
1938 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
1939 | + |
1940 | +Changelog |
1941 | +--------- |
1942 | + |
1943 | +* pt-online-schema-change: Columns can now be renamed without data loss |
1944 | +* pt-online-schema-change: New --default-engine option |
1945 | +* pt-stalk: Plugin hooks available through the --plugin option to extend the tool's functionality |
1946 | +* Fixed bug 1069951: --version-check default should be explicitly "off" |
1947 | +* Fixed bug 821715: LOAD DATA LOCAL INFILE broken in some platforms |
1948 | +* Fixed bug 995896: Useless use of cat in Daemon.pm |
1949 | +* Fixed bug 1039074: Tools exit 0 on error parsing options, should exit non-zero |
1950 | +* Fixed bug 938068: pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves |
1951 | +* Fixed bug 1009510: pt-table-checksum breaks replication if a slave table is missing or different |
1952 | +* Fixed bug 1043438: pt-table-checksum doesn't honor --run-time while checking replication lag |
1953 | +* Fixed bug 1073532: pt-table-checksum error: Use of uninitialized value in int at line 2778 |
1954 | +* Fixed bug 1016131: pt-table-checksum can crash with --columns if none match |
1955 | +* Fixed bug 1039569: pt-table-checksum dies if creating the --replicate table fails |
1956 | +* Fixed bug 1059732: pt-table-checksum doesn't test all hash functions |
1957 | +* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes |
1958 | +* Fixed bug 1043528: pt-deadlock-logger can't parse db/tbl/index on partitioned tables |
1959 | +* Fixed bug 1062324: pt-online-schema-change DELETE trigger fails when altering primary key |
1960 | +* Fixed bug 1058285: pt-online-schema-change fails if sql_mode explicitly or implicitly uses ANSI_QUOTES |
1961 | +* Fixed bug 1073996: pt-online-schema-change fails with "I need a max_rows argument" |
1962 | +* Fixed bug 1039541: pt-online-schema-change --quiet doesn't disable --progress |
1963 | +* Fixed bug 1045317: pt-online-schema-change doesn't report how many warnings it suppressed |
1964 | +* Fixed bug 1060774: pt-upgrade fails if select column > 64 chars |
1965 | +* Fixed bug 1070916: pt-mysql-summary may report the wrong cnf file |
1966 | +* Fixed bug 903229: pt-mysql-summary incorrectly categorizes databases |
1967 | +* Fixed bug 866075: pt-show-grant doesn't support column-level grants |
1968 | +* Fixed bug 978133: pt-query-digest review table privilege checks don't work |
1969 | +* Fixed bug 956981: pt-query-digest docs for event attributes link to defunct Maatkit wiki |
1970 | +* Fixed bug 1047335: pt-duplicate-key-checker fails when it encounters a crashed table |
1971 | +* Fixed bug 1047701: pt-stalk deletes non-empty files |
1972 | +* Fixed bug 1070434: pt-stalk --no-stalk and --iterations 1 don't wait for the collect |
1973 | +* Fixed bug 1052722: pt-fifo-split is processing n-1 rows initially |
1974 | +* Fixed bug 1013407: pt-find documentation error with mtime and InnoDB |
1975 | +* Fixed bug 1059757: pt-trend output has no header |
1976 | +* Fixed bug 1063933: pt-visual-explain docs link to missing pdf |
1977 | +* Fixed bug 1075773: pt-fk-error-logger crashes if there's no foreign key error |
1978 | +* Fixed bug 1075775: pt-fk-error-logger --dest table example doesn't work |
1979 | + |
1980 | +v2.1.5 released 2012-10-08 |
1981 | +========================== |
1982 | + |
1983 | +Percona 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: |
1984 | + |
1985 | +* Bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes |
1986 | + |
1987 | +* Bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes |
1988 | + |
1989 | +* Bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL |
1990 | + |
1991 | +The 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. |
1992 | + |
1993 | +The 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. |
1994 | + |
1995 | +If 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. |
1996 | + |
1997 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
1998 | + |
1999 | +Changelog |
2000 | +--------- |
2001 | + |
2002 | +* Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes |
2003 | +* Fixed bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes |
2004 | +* Fixed bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL |
2005 | +* Fixed bug 1060423: Missing version-check page |
2006 | + |
2007 | +v2.1.4 released 2012-09-20 |
2008 | +========================== |
2009 | + |
2010 | +Percona 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: |
2011 | + |
2012 | +* Fixed bug 1017626: pt-table-checksum doesn't work with Percona XtraDB Cluster |
2013 | + |
2014 | +Note 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. |
2015 | + |
2016 | +* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves |
2017 | + |
2018 | +Previously, 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. |
2019 | + |
2020 | +* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument" |
2021 | + |
2022 | +Which were stopping pt-upgrade from working on a MySQL 4.1 host. |
2023 | + |
2024 | +* Fixed bug 1036747: pt-table-sync priv checks need to be removed |
2025 | + |
2026 | +The same checks were removed in the previous release from pt-table-checksum, so this continues the trend. |
2027 | + |
2028 | +* Fixed bug 1038995: pt-stalk --notify-by-email fails |
2029 | + |
2030 | +This was a bug in our shell option parsing library, and would potentially affect any option starting with 'no'. |
2031 | + |
2032 | +Like 2.1.3, this is another solid bug fix release, and 2.1 users are encouraged to upgrade. |
2033 | + |
2034 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
2035 | + |
2036 | +Changelog |
2037 | +--------- |
2038 | + |
2039 | +* pt-table-checksum: Percona XtraDB Cluster support |
2040 | +* pt-table-checksum: Implemented the standard --run-time option |
2041 | +* Implemented the version-check feature in several tools, enabled with the --version-check option |
2042 | +* Fixed bug 856060: Document gdb dependency |
2043 | +* Fixed bug 1041394: Unquoted arguments to tr break the bash tools |
2044 | +* Fixed bug 1035311: pt-diskstats shows wrong device names |
2045 | +* Fixed bug 1036804: pt-duplicate-key-checker error parsing InnoDB table with no PK or unique keys |
2046 | +* Fixed bug 1022658: pt-online-schema-change dropping FK limitation isn't documented |
2047 | +* Fixed bug 1041372: pt-online-schema-changes fails if db+tbl name exceeds 64 characters |
2048 | +* Fixed bug 1029178: pt-query-digest --type tcpdump memory usage keeps increasing |
2049 | +* Fixed bug 1037211: pt-query-digest won't distill LOCK TABLES in lowercase |
2050 | +* Fixed bug 942114: pt-stalk warns about bad "find" usage |
2051 | +* Fixed bug 1035319: pt-stalk df -h throws away needed details |
2052 | +* Fixed bug 1038995: pt-stalk --notify-by-email fails |
2053 | +* Fixed bug 1038995: pt-stalk does not get all InnoDB lock data |
2054 | +* Fixed bug 952722: pt-summary should show information about Fusion-io cards |
2055 | +* Fixed bug 899415: pt-table-checksum doesn't work if slaves use RBR |
2056 | +* Fixed bug 954588: pt-table-checksum --check-slave-lag docs aren't clear |
2057 | +* Fixed bug 1034170: pt-table-checksum --defaults-file isn't used for slaves |
2058 | +* Fixed bug 930693: pt-table-sync and text columns with just whitespace |
2059 | +* Fixed bug 1028710: pt-table-sync base_count fails on n = 1000, base = 10 |
2060 | +* Fixed bug 1034717: pt-table-sync division by zero error with varchar primary key |
2061 | +* Fixed bug 1036747: pt-table-sync priv checks need to be removed |
2062 | +* Fixed bug 1039184: pt-upgrade error "I need a right_sth argument" |
2063 | +* Fixed bug 1035260: sh warnings in pt-summary and pt-mysql-summary |
2064 | +* Fixed bug 1038276: ChangeHandler doesn't quote varchar columns with hex-looking values |
2065 | +* Fixed bug 916925: CentOS 5 yum dependency resolution for perl module is wrong |
2066 | +* Fixed bug 1035950: Percona Toolkit RPM should contain a dependency on perl-Time-HiRes |
2067 | + |
2068 | +v2.1.3 released 2012-08-03 |
2069 | +========================== |
2070 | + |
2071 | +Percona 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: |
2072 | + |
2073 | +* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5 |
2074 | + |
2075 | +pt-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. |
2076 | + |
2077 | +* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS |
2078 | + |
2079 | +In 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. |
2080 | + |
2081 | +* Fixed bug 821703: pt-query-digest --processlist may crash |
2082 | +* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns |
2083 | + |
2084 | +Certain distributions of MySQL add extra columns to SHOW PROCESSLIST which caused pt-query-digest --processlist to crash at times. |
2085 | + |
2086 | +* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost |
2087 | + |
2088 | +pt-kill is meant to be a long-running daemon, so naturally it's important that it stays connected to MySQL. |
2089 | + |
2090 | +* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error |
2091 | + |
2092 | +The combination of these pt-heartbeat options could cause replication to break due to a duplicate key error. |
2093 | + |
2094 | +* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519 |
2095 | + |
2096 | +This bug was related to how --quiet was handled, and it could happen even if --quiet wasn't given on the command line. |
2097 | + |
2098 | +All in all, this is solid bug fix release, and 2.1 users are encouraged to upgrade. |
2099 | + |
2100 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
2101 | + |
2102 | +Changelog |
2103 | +--------- |
2104 | + |
2105 | +* pt-kill: Implemented --log-dsn to log info about killed queries to a table |
2106 | +* Fixed bug 1016127: Install hint for DBD::mysql is wrong |
2107 | +* Fixed bug 984915: DSNParser does not check success of --set-vars |
2108 | +* Fixed bug 889739: pt-config-diff doesn't diff quoted strings properly |
2109 | +* Fixed bug 969669: pt-duplicate-key-checker --key-types=k doesn't work |
2110 | +* Fixed bug 1004567: pt-heartbeat --update --replace causes duplicate key error |
2111 | +* Fixed bug 1028614: pt-index-usage ignores --database |
2112 | +* Fixed bug 940733: pt-ioprofile leaves behind temp directory |
2113 | +* Fixed bug 941469: pt-kill doesn't reconnect if its connection is lost |
2114 | +* Fixed bug 1016114: pt-online-schema-change docs don't mention default values |
2115 | +* Fixed bug 1020997: pt-online-schema-change fails when table is empty |
2116 | +* Fixed bug 1022628: pt-online-schema-change error: Use of uninitialized value in numeric lt (<) at line 6519 |
2117 | +* Fixed bug 937225: pt-query-advisor OUTER JOIN advice in JOI.003 is confusing |
2118 | +* Fixed bug 821703: pt-query-digest --processlist may crash |
2119 | +* Fixed bug 883098: pt-query-digest crashes if processlist has extra columns |
2120 | +* Fixed bug 924950: pt-query-digest --group-by db may crash profile report |
2121 | +* Fixed bug 1022851: pt-sift error: PREFIX: unbound variable |
2122 | +* Fixed bug 969703: pt-sift defaults to '.' instead of '/var/lib/pt-talk' |
2123 | +* Fixed bug 962330: pt-slave-delay incorrectly computes lag if started when slave is already lagging |
2124 | +* Fixed bug 954990: pt-stalk --nostalk does not work |
2125 | +* Fixed bug 977226: pt-summary doesn't detect LSI RAID control |
2126 | +* Fixed bug 1030031: pt-table-checksum reports wrong number of DIFFS |
2127 | +* Fixed bug 916168: pt-table-checksum privilege check fails on MySQL 5.5 |
2128 | +* Fixed bug 950294: pt-table-checksum should always create schema and tables with IF NOT EXISTS |
2129 | +* Fixed bug 953141: pt-table-checksum ignores its default and explicit --recursion-method |
2130 | +* Fixed bug 1030975: pt-table-sync crashes if sql_mode includes ANSI_QUOTES |
2131 | +* Fixed bug 869005: pt-table-sync should always set REPEATABLE READ |
2132 | +* Fixed bug 903510: pt-tcp-model crashes in --type=requests mode on empty file |
2133 | +* Fixed bug 934310: pt-tcp-model --quantile docs wrong |
2134 | +* Fixed bug 980318: pt-upgrade results truncated if hostnames are long |
2135 | +* Fixed bug 821696: pt-variable-advisor shows too long of a snippet |
2136 | +* Fixed bug 844880: pt-variable-advisor shows binary logging as both enabled and disabled |
2137 | + |
2138 | +v2.1.2 released 2012-06-12 |
2139 | +========================== |
2140 | + |
2141 | +Percona 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. |
2142 | + |
2143 | +In 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. |
2144 | + |
2145 | +Several 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. |
2146 | + |
2147 | +pt-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. |
2148 | + |
2149 | +Two pt-archiver bugs were fixed: bug 979092, --sleep conflicts with bulk operations; and bug 903379, --file doesn't create a file. |
2150 | + |
2151 | +--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. |
2152 | + |
2153 | +Other 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. |
2154 | + |
2155 | +Percona Toolkit 2.1.2 should be backwards-compatible with 2.1.1, so users are strongly encouraged to upgrade. |
2156 | + |
2157 | +Percona Toolkit packages can be downloaded from http://www.percona.com/downloads/percona-toolkit/ or the Percona Software Repositories (http://www.percona.com/software/repositories/). |
2158 | + |
2159 | +Changelog |
2160 | +--------- |
2161 | + |
2162 | +* pt-heartbeat: Implemented --recursion-method=none |
2163 | +* pt-index-usage: MySQL 5.5 compatibility fixes |
2164 | +* pt-log-player: MySQL 5.5 compatibility fixes |
2165 | +* pt-online-schema-change: Added --chunk-index-columns |
2166 | +* pt-online-schema-change: Added --[no]check-plan |
2167 | +* pt-online-schema-change: Added --[no]drop-new-table |
2168 | +* pt-online-schema-change: Implemented --recursion-method=none |
2169 | +* pt-query-advisor: Added --report-type for JSON output |
2170 | +* pt-query-digest: Removed --[no]zero-bool |
2171 | +* pt-slave-delay: Added --database |
2172 | +* pt-slave-find: Implemented --recursion-method=none |
2173 | +* pt-slave-restart: Implemented --recursion-method=none |
2174 | +* pt-table-checksum: Added --chunk-index-columns |
2175 | +* pt-table-checksum: Added --[no]check-plan |
2176 | +* pt-table-checksum: Implemented --recursion-method=none |
2177 | +* pt-table-sync: Disabled --lock-and-rename except for MySQL 5.5 and newer |
2178 | +* pt-table-sync: Implemented --recursion-method=none |
2179 | +* Fixed bug 945079: Shell tools TMPDIR may break |
2180 | +* Fixed bug 912902: Some shell tools still use basename |
2181 | +* Fixed bug 987694: There is no --recursion-method=none option |
2182 | +* Fixed bug 886077: Passwords with commas don't work, expose part of password |
2183 | +* Fixed bug 856024: Lintian warnings when building percona-toolkit Debian package |
2184 | +* Fixed bug 903379: pt-archiver --file doesn't create a file |
2185 | +* Fixed bug 979092: pt-archiver --sleep conflicts with bulk operations |
2186 | +* Fixed bug 903443: pt-deadlock-logger crashes on MySQL 5.5 |
2187 | +* Fixed bug 941064: pt-deadlock-logger can't clear deadlocks on 5.5 |
2188 | +* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s |
2189 | +* Fixed bug 994176: pt-diskstats --group-by=all --headers=scroll prints a header for every sample |
2190 | +* Fixed bug 894140: pt-duplicate-key-checker sometimes recreates a key it shouldn't |
2191 | +* Fixed bug 923896: pt-kill: uninitialized value causes script to exit |
2192 | +* Fixed bug 1003003: pt-online-schema-change uses different keys for chunking and triggers |
2193 | +* Fixed bug 1003315: pt-online-schema-change --dry-run always fails on table with foreign keys |
2194 | +* Fixed bug 1004551: pt-online-schema-change --no-swap-tables causes error |
2195 | +* Fixed bug 976108: pt-online-schema-change doesn't allow to disable foreign key checks |
2196 | +* Fixed bug 976109: pt-online-schema-change doesn't handle column renames |
2197 | +* Fixed bug 988036: pt-online-schema-change causes deadlocks under heavy write load |
2198 | +* Fixed bug 989227: pt-online-schema-change crashes with PTDEBUG |
2199 | +* Fixed bug 994002: pt-online-schema-change 2.1.1 doesn't choose the PRIMARY KEY |
2200 | +* Fixed bug 994010: pt-online-schema-change 2.1.1 crashes without InnoDB |
2201 | +* Fixed bug 996915: pt-online-schema-change crashes with invalid --max-load and --critical-load |
2202 | +* Fixed bug 998831: pt-online-schema-change -- Should have an option to NOT drop tables on failure |
2203 | +* Fixed bug 1002448: pt-online-schema-change: typo for finding usable indexes |
2204 | +* Fixed bug 885382: pt-query-digest --embedded-attributes doesn't check cardinality |
2205 | +* Fixed bug 888114: pt-query-digest report crashes with infinite loop |
2206 | +* Fixed bug 949630: pt-query-digest mentions a Subversion repository |
2207 | +* Fixed bug 844034: pt-show-grants --separate fails with proxy user |
2208 | +* Fixed bug 946707: pt-sift loses STDIN after pt-diskstats |
2209 | +* Fixed bug 994947: pt-stalk doesn't reset cycles_true after collection |
2210 | +* Fixed bug 986151: pt-stalk-has mktemp error |
2211 | +* Fixed bug 993436: pt-summary Memory: Total reports M instead of G |
2212 | +* Fixed bug 1008778: pt-table-checksum doesn't wait for checksum table to replicate |
2213 | +* Fixed bug 1010232: pt-table-checksum doesn't check the size of checksum chunks |
2214 | +* Fixed bug 1011738: pt-table-checksum SKIPPED is zero but chunks were skipped |
2215 | +* Fixed bug 919499: pt-table-checksum fails with binary log error in mysql >= 5.5.18 |
2216 | +* Fixed bug 972399: pt-table-checksum docs are not rendered right |
2217 | +* Fixed bug 978432: pt-table-checksum ignoring primary key |
2218 | +* Fixed bug 995274: pt-table-checksum can't use an undefined value as an ARRAY reference at line 2206 |
2219 | +* Fixed bug 996110: pt-table-checksum crashes if InnoDB is disabled |
2220 | +* Fixed bug 987393: pt-table-checksum: Empy tables cause "undefined value as an ARRAY" errors |
2221 | +* Fixed bug 1002365: pt-table-sync --ignore-* options don't work with --replicate |
2222 | +* Fixed bug 1003014: pt-table-sync --replicate and --sync-to-master error "index does not exist" |
2223 | +* Fixed bug 823403: pt-table-sync --lock-and-rename doesn't work on 5.1 |
2224 | +* Fixed bug 898138: pt-variable-advisor doesn't recognize 5.5.3+ concurrent_insert values |
2225 | + |
2226 | +v2.1.1 released 2012-04-03 |
2227 | +========================== |
2228 | + |
2229 | +Percona Toolkit 2.1.1 has been released. This is the first release in the |
2230 | +new 2.1 series which supersedes the 2.0 series. We will continue to fix bugs |
2231 | +in 2.0, but 2.1 is now the focus of development. |
2232 | + |
2233 | +2.1 introduces a lot of new code for: |
2234 | + |
2235 | +* pt-online-schema-change (completely redesigned) |
2236 | +* pt-mysql-summary (completely redesigned) |
2237 | +* pt-summary (completely redesigned) |
2238 | +* pt-fingerprint (new tool) |
2239 | +* pt-table-usage (new tool) |
2240 | + |
2241 | +There were also several bug fixes. |
2242 | + |
2243 | +The redesigned tools are meant to replace their 2.0 counterparts because |
2244 | +the 2.1 versions have the same or more functionality and they are simpler |
2245 | +and more reliable. pt-online-schema-change was particularly enhanced to |
2246 | +be as safe as possible given that the tool is inherently risky. |
2247 | + |
2248 | +Percona Toolkit packages can be downloaded from |
2249 | +http://www.percona.com/downloads/percona-toolkit/ or the Percona Software |
2250 | +Repositories (http://www.percona.com/software/repositories/). |
2251 | + |
2252 | +Changelog |
2253 | +--------- |
2254 | + |
2255 | +* Completely redesigned pt-online-schema-change |
2256 | +* Completely redesigned pt-mysql-summary |
2257 | +* Completely redesigned pt-summary |
2258 | +* Added new tool: pt-table-usage |
2259 | +* Added new tool: pt-fingerprint |
2260 | +* Fixed bug 955860: pt-stalk doesn't run vmstat, iostat, and mpstat for --run-time |
2261 | +* Fixed bug 960513: SHOW TABLE STATUS is used needlessly |
2262 | +* Fixed bug 969726: pt-online-schema-change loses foreign keys |
2263 | +* Fixed bug 846028: pt-online-schema-change does not show progress until completed |
2264 | +* Fixed bug 898695: pt-online-schema-change add useless ORDER BY |
2265 | +* Fixed bug 952727: pt-diskstats shows incorrect wr_mb_s |
2266 | +* Fixed bug 963225: pt-query-digest fails to set history columns for disk tmp tables and disk filesort |
2267 | +* Fixed bug 967451: Char chunking doesn't quote column name |
2268 | +* Fixed bug 972399: pt-table-checksum docs are not rendered right |
2269 | +* Fixed bug 896553: Various documentation spelling fixes |
2270 | +* Fixed bug 949154: pt-variable-advisor advice for relay-log-space-limit |
2271 | +* Fixed bug 953461: pt-upgrade manual broken 'output' section |
2272 | +* Fixed bug 949653: pt-table-checksum docs don't mention risks posed by inconsistent schemas |
2273 | + |
2274 | +v2.0.4 released 2012-03-07 |
2275 | +========================== |
2276 | + |
2277 | +Percona Toolkit 2.0.4 has been released. 23 bugs were fixed in this release, |
2278 | +and three new features were implemented. First, --filter was added to pt-kill |
2279 | +which allows for arbitrary --group-by. Second, pt-online-schema-change now |
2280 | +requires that its new --execute option be given, else the tool will just check |
2281 | +the tables and exit. This is a safeguard to encourage users to read the |
2282 | +documentation, particularly when replication is involved. Third, pt-stalk |
2283 | +also received a new option: --[no]stalk. To collect immediately without |
2284 | +stalking, specify --no-stalk and the tool will collect once and exit. |
2285 | + |
2286 | +This release is completely backwards compatible with previous 2.0 releases. |
2287 | +Given the number of bug fixes, it's worth upgrading to 2.0.4. |
2288 | + |
2289 | +Changelog |
2290 | +--------- |
2291 | + |
2292 | +* Added --filter to pt-kill to allow arbitrary --group-by |
2293 | +* Added --[no]stalk to pt-stalk (bug 932331) |
2294 | +* Added --execute to pt-online-schema-change (bug 933232) |
2295 | +* Fixed bug 873598: pt-online-schema-change doesn't like reserved words in column names |
2296 | +* Fixed bug 928966: pt-pmp still uses insecure /tmp |
2297 | +* Fixed bug 933232: pt-online-schema-change can break replication |
2298 | +* Fixed bug 941225: Use of qw(...) as parentheses is deprecated at pt-kill line 3511 |
2299 | +* Fixed bug 821694: pt-query-digest doesn't recognize hex InnoDB txn IDs |
2300 | +* Fixed bug 894255: pt-kill shouldn't check if STDIN is a tty when --daemonize is given |
2301 | +* Fixed bug 916999: pt-table-checksum error: DBD::mysql::st execute failed: called with 2 bind variables when 6 are needed |
2302 | +* Fixed bug 926598: DBD::mysql bug causes pt-upgrade to use wrong precision (M) and scale (D) |
2303 | +* Fixed bug 928226: pt-diskstats illegal division by zero |
2304 | +* Fixed bug 928415: Typo in pt-stalk doc: --trigger should be --function |
2305 | +* Fixed bug 930317: pt-archiver doc refers to nonexistent pt-query-profiler |
2306 | +* Fixed bug 930533: pt-sift looking for *-processlist1; broken compatibility with pt-stalk |
2307 | +* Fixed bug 932331: pt-stalk cannot collect without stalking |
2308 | +* Fixed bug 932442: pt-table-checksum error when column name has two spaces |
2309 | +* Fixed bug 932883: File Debian bug after each release |
2310 | +* Fixed bug 940503: pt-stalk disk space checks wrong on 32bit platforms |
2311 | +* Fixed bug 944420: --daemonize doesn't always close STDIN |
2312 | +* Fixed bug 945834: pt-sift invokes pt-diskstats with deprecated argument |
2313 | +* Fixed bug 945836: pt-sift prints awk error if there are no stack traces to aggregate |
2314 | +* Fixed bug 945842: pt-sift generates wrong state sum during processlist analysis |
2315 | +* Fixed bug 946438: pt-query-digest should print a better message when an unsupported log format is specified |
2316 | +* Fixed bug 946776: pt-table-checksum ignores --lock-wait-timeout |
2317 | +* Fixed bug 940440: Bad grammar in pt-kill docs |
2318 | + |
2319 | +v2.0.3 released 2012-02-03 |
2320 | +========================== |
2321 | + |
2322 | +Percona Toolkit 2.0.3 has been released. The development team was very |
2323 | +busy last month making this release significant: two completely |
2324 | +redesigned and improved tools, pt-diskstats and pt-stalk, and 20 bug fixes. |
2325 | + |
2326 | +Both pt-diskstats and pt-stalk were redesigned and rewritten from the ground |
2327 | +up. This allowed us to greatly improve these tools' functionality and |
2328 | +increase testing for them. The accuracy and output of pt-diskstats was |
2329 | +enhanced, and the tool was rewritten in Perl. pt-collect was removed and |
2330 | +its functionality was put into a new, enhanced pt-stalk. pt-stalk is now |
2331 | +designed to be a stable, long-running daemon on a variety of common platforms. |
2332 | +It is worth re-reading the documentation for each of these tools. |
2333 | + |
2334 | +The 20 bug fixes cover a wide range of problems. The most important are |
2335 | +fixes to pt-table-checksum, pt-iostats, and pt-kill. Apart from pt-diskstats, |
2336 | +pt-stalk, and pt-collect (which was removed), no other tools were changed |
2337 | +in backwards-incompatible ways, so it is worth reviewing the full changelog |
2338 | +for this release and upgrading if you use any tools which had bug fixes. |
2339 | + |
2340 | +Thank you to the many people who reported bugs and submitted patches. |
2341 | + |
2342 | +Download the latest release of Percona Toolkit 2.0 from |
2343 | +http://www.percona.com/software/percona-toolkit/ |
2344 | +or the Percona Software Repositories |
2345 | +(http://www.percona.com/docs/wiki/repositories:start). |
2346 | + |
2347 | +Changelog |
2348 | +--------- |
2349 | + |
2350 | +* Completely redesigned pt-diskstats |
2351 | +* Completely redesigned pt-stalk |
2352 | +* Removed pt-collect and put its functionality in pt-stalk |
2353 | +* Fixed bug 871438: Bash tools are insecure |
2354 | +* Fixed bug 897758: Failed to prepare TableSyncChunk plugin: Use of uninitialized value $args{"chunk_range"} in lc at pt-table-sync line 3055 |
2355 | +* Fixed bug 919819: pt-kill --execute-command creates zombies |
2356 | +* Fixed bug 925778: pt-ioprofile doesn't run without a file |
2357 | +* Fixed bug 925477: pt-ioprofile docs refer to pt-iostats |
2358 | +* Fixed bug 857091: pt-sift downloads http://percona.com/get/pt-pmp, which does not work |
2359 | +* Fixed bug 857104: pt-sift tries to invoke mext, should be pt-mext |
2360 | +* Fixed bug 872699: pt-diskstats: rd_avkb & wr_avkb derived incorrectly |
2361 | +* Fixed bug 897029: pt-diskstats computes wrong values for md0 |
2362 | +* Fixed bug 882918: pt-stalk spams warning if oprofile isn't installed |
2363 | +* Fixed bug 884504: pt-stalk doesn't check pt-collect |
2364 | +* Fixed bug 897483: pt-online-schema-change "uninitialized value" due to update-foreign-keys-method |
2365 | +* Fixed bug 925007: pt-online-schema-change Use of uninitialized value $tables{"old_table"} in concatenation (.) or string at line 4330 |
2366 | +* Fixed bug 915598: pt-config-diff ignores --ask-pass option |
2367 | +* Fixed bug 919352: pt-table-checksum changes binlog_format even if already set to statement |
2368 | +* Fixed bug 921700: pt-table-checksum doesn't add --where to chunk size test on replicas |
2369 | +* Fixed bug 921802: pt-table-checksum does not recognize --recursion-method=processlist |
2370 | +* Fixed bug 925855: pt-table-checksum index check is case-sensitive |
2371 | +* Fixed bug 821709: pt-show-grants --revoke and --separate don't work together |
2372 | +* Fixed bug 918247: Some tools use VALUE instead of VALUES |
2373 | + |
2374 | +v2.0.2 released 2012-01-05 |
2375 | +========================== |
2376 | + |
2377 | +Percona Toolkit 2.0.2 fixes one critical bug: pt-table-sync --replicate |
2378 | +did not work with character values, causing an "Unknown column" error. |
2379 | +If using Percona Toolkit 2.0.1, you should upgrade to 2.0.2. |
2380 | + |
2381 | +Download the latest release of Percona Toolkit 2.0 from |
2382 | +http://www.percona.com/software/percona-toolkit/ |
2383 | +or the Percona Software Repositories |
2384 | +(http://www.percona.com/docs/wiki/repositories:start). |
2385 | + |
2386 | +Changelog |
2387 | +--------- |
2388 | + |
2389 | +* Fixed bug 911996: pt-table-sync --replicate causes "Unknown column" error |
2390 | + |
2391 | +v2.0.1 released 2011-12-30 |
2392 | +========================== |
2393 | + |
2394 | +The Percona Toolkit development team is proud to announce a new major version: |
2395 | +2.0. Beginning with Percona Toolkit 2.0, we are overhauling, redesigning, and |
2396 | +improving the major tools. 2.0 tools are therefore not backwards compatible |
2397 | +with 1.0 tools, which we still support but will not continue to develop. |
2398 | + |
2399 | +New in Percona Toolkit 2.0.1 is a completely redesigned pt-table-checksum. |
2400 | +The original pt-table-checksum 1.0 was rather complex, but it worked well |
2401 | +for many years. By contrast, the new pt-table-checksum 2.0 is much simpler but |
2402 | +also much more efficient and reliable. We spent months rethinking, redesigning, |
2403 | +and testing every aspect of the tool. The three most significant changes: |
2404 | +pt-table-checksum 2.0 does only --replicate, it has only one chunking algorithm, |
2405 | +and its memory usage is stable even with hundreds of thousands of tables and |
2406 | +trillions of rows. The tool is now dedicated to verifying MySQL replication |
2407 | +integrity, nothing else, which it does extremely well. |
2408 | + |
2409 | +In Percona Toolkit 2.0.1 we also fixed various small bugs and forked ioprofile |
2410 | +and align (as pt-ioprofile and pt-align) from Aspersa. |
2411 | + |
2412 | +If you still need functionalities in the original pt-table-checksum, |
2413 | +the latest Percona Toolkit 1.0 release remains available for download. |
2414 | +Otherwise, all new development in Percona Toolkit will happen in 2.0. |
2415 | + |
2416 | +Download the latest release of Percona Toolkit 2.0 from |
2417 | +http://www.percona.com/software/percona-toolkit/ |
2418 | +or the Percona Software Repositories |
2419 | +(http://www.percona.com/docs/wiki/repositories:start). |
2420 | + |
2421 | +Changelog |
2422 | +--------- |
2423 | + |
2424 | +* Completely redesigned pt-table-checksum |
2425 | +* Fixed bug 856065: pt-trend does not work |
2426 | +* Fixed bug 887688: Prepared statements crash pt-query-digest |
2427 | +* Fixed bug 888286: align not part of percona-toolkit |
2428 | +* Fixed bug 897961: ptc 2.0 replicate-check error does not include hostname |
2429 | +* Fixed bug 898318: ptc 2.0 --resume with --tables does not always work |
2430 | +* Fixed bug 903513: MKDEBUG should be PTDEBUG |
2431 | +* Fixed bug 908256: Percona Toolkit should include pt-ioprofile |
2432 | +* Fixed bug 821717: pt-tcp-model --type=requests crashes |
2433 | +* Fixed bug 844038: pt-online-schema-change documentation example w/drop-tmp-table does not work |
2434 | +* Fixed bug 864205: Remove the query to reset @crc from pt-table-checksum |
2435 | +* Fixed bug 898663: Typo in pt-log-player documentation |
2436 | + |
2437 | +v1.0.1 released 2011-09-01 |
2438 | +========================== |
2439 | + |
2440 | +Percona Toolkit 1.0.1 has been released. In July, Baron announced planned |
2441 | +changes to Maatkit and Aspersa development;[1] Percona Toolkit is the |
2442 | +result. In brief, Percona Toolkit is the combined fork of Maatkit and |
2443 | +Aspersa, so although the toolkit is new, the programs are not. That means |
2444 | +Percona Toolkit 1.0.1 is mature, stable, and production-ready. In fact, |
2445 | +it's even a little more stable because we fixed a few bugs in this release. |
2446 | + |
2447 | +Percona Toolkit packages can be downloaded from |
2448 | +http://www.percona.com/downloads/percona-toolkit/ |
2449 | +or the Percona Software Repositories |
2450 | +(http://www.percona.com/docs/wiki/repositories:start). |
2451 | + |
2452 | +Although Maatkit and Aspersa development use Google Code, Percona Toolkit |
2453 | +uses Launchpad: https://launchpad.net/percona-toolkit |
2454 | + |
2455 | +[1] http://www.xaprb.com/blog/2011/07/06/planned-change-in-maatkit-aspersa-development/ |
2456 | + |
2457 | +Changelog |
2458 | +--------- |
2459 | + |
2460 | +* Fixed bug 819421: MasterSlave::is_replication_thread() doesn't match all |
2461 | +* Fixed bug 821673: pt-table-checksum doesn't include --where in min max queries |
2462 | +* Fixed bug 821688: pt-table-checksum SELECT MIN MAX for char chunking is wrong |
2463 | +* Fixed bug 838211: pt-collect: line 24: [: : integer expression expected |
2464 | +* Fixed bug 838248: pt-collect creates a "5.1" file |
2465 | + |
2466 | +v0.9.5 released 2011-08-04 |
2467 | +========================== |
2468 | + |
2469 | +Percona 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. |
2470 | + |
2471 | +Changelog |
2472 | +--------- |
2473 | + |
2474 | +* Forked, combined, and rebranded Maatkit and Aspersa as Percona Toolkit. |
2475 | +>>>>>>> MERGE-SOURCE |
2476 | |
2477 | === added file 't/pt-online-schema-change/bug-1315130.t' |
2478 | --- t/pt-online-schema-change/bug-1315130.t 1970-01-01 00:00:00 +0000 |
2479 | +++ t/pt-online-schema-change/bug-1315130.t 2014-07-03 18:13:52 +0000 |
2480 | @@ -0,0 +1,78 @@ |
2481 | +#!/usr/bin/env perl |
2482 | + |
2483 | +BEGIN { |
2484 | + die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n" |
2485 | + unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH}; |
2486 | + unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib"; |
2487 | +}; |
2488 | + |
2489 | +use strict; |
2490 | +use warnings FATAL => 'all'; |
2491 | +use English qw(-no_match_vars); |
2492 | +use Test::More; |
2493 | +use Time::HiRes qw(sleep); |
2494 | + |
2495 | +$ENV{PTTEST_FAKE_TS} = 1; |
2496 | +$ENV{PERCONA_TOOLKIT_TEST_USE_DSN_NAMES} = 1; |
2497 | + |
2498 | +use PerconaTest; |
2499 | +use Sandbox; |
2500 | +require "$trunk/bin/pt-online-schema-change"; |
2501 | +require VersionParser; |
2502 | + |
2503 | +use Data::Dumper; |
2504 | +$Data::Dumper::Indent = 1; |
2505 | +$Data::Dumper::Sortkeys = 1; |
2506 | +$Data::Dumper::Quotekeys = 0; |
2507 | + |
2508 | +my $dp = new DSNParser(opts=>$dsn_opts); |
2509 | +my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp); |
2510 | +my $master_dbh = $sb->get_dbh_for('master'); |
2511 | +my $slave_dbh = $sb->get_dbh_for('slave1'); |
2512 | + |
2513 | +if ( !$master_dbh ) { |
2514 | + plan skip_all => 'Cannot connect to sandbox master'; |
2515 | +} |
2516 | +elsif ( !$slave_dbh ) { |
2517 | + plan skip_all => 'Cannot connect to sandbox slave'; |
2518 | +} |
2519 | + |
2520 | +my $q = new Quoter(); |
2521 | +my $tp = new TableParser(Quoter => $q); |
2522 | +my @args = qw(--set-vars innodb_lock_wait_timeout=3); |
2523 | +my $output = ""; |
2524 | +my $dsn = "h=127.1,P=12345,u=msandbox,p=msandbox"; |
2525 | +my $exit = 0; |
2526 | +my $sample = "t/pt-online-schema-change/samples"; |
2527 | +my $rows; |
2528 | + |
2529 | + |
2530 | +# ############################################################################# |
2531 | +# Issue 1315130 |
2532 | +# Failed to detect child tables in other schema, and falsely identified |
2533 | +# child tables in own schema |
2534 | +# ############################################################################# |
2535 | + |
2536 | +$sb->load_file('master', "$sample/bug-1315130_cleanup.sql"); |
2537 | +$sb->load_file('master', "$sample/bug-1315130.sql"); |
2538 | +($output, $exit) = full_output( |
2539 | + sub { pt_online_schema_change::main(@args, "$dsn,D=bug_1315130_a,t=parent_table", |
2540 | + '--dry-run', |
2541 | + '--alter', "add column c varchar(16)", |
2542 | + '--alter-foreign-keys-method', 'auto'), |
2543 | + }, |
2544 | +); |
2545 | +print STDERR "[$output]\n"; |
2546 | + like( |
2547 | + $output, |
2548 | + 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, |
2549 | + "Correctly identify child tables from other schemas and ignores tables from same schema referencig same named parent in other schema.", |
2550 | + ); |
2551 | +# clear databases with their foreign keys |
2552 | +$sb->load_file('master', "$sample/bug-1315130_cleanup.sql"); |
2553 | + |
2554 | +# Done. |
2555 | +# ############################################################################# |
2556 | +$sb->wipe_clean($master_dbh); |
2557 | +ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox"); |
2558 | +done_testing; |