Performance Zone is brought to you in partnership with:

I specialise MySQL Server performance as well as in performance of application stacks using MySQL, especially LAMP. Web sites handling millions of visitors a day dealing with terabytes of data and hundreds of servers is king of applications I love the most. Peter is a DZone MVB and is not an employee of DZone and has posted 240 posts at DZone. You can read more from them at their website. View Full User Profile

Zero-Downtime Schema Changes In MySQL

01.08.2013
| 1919 views |
  • submit to reddit

The recording of yesterday’s webinar, as well as a PDF of my slide deck, is now available. You can watch the recording and get the slides here.

I got a lot of questions, and did not have enough time to answer all of them, so let me try to answer some of the remaining questions here.

Q: Isn’t it possible to take all the locks required in the beginning to prevent dead locks? So you would get a lock wait instead of a dead lock. No, that would cause blocking that would defeat the purpose of the tool.

Q: When you say bail out, what does that mean? Does the tool clean up (i.e., remove table / triggers?) About cleanup.. What about manual aborting a run. will that cleanup ? Q: dose the tool exit gracefully while interupted? The tool doesn’t clean up the temporary table or triggers. It is designed to be resumable, although we don’t yet have a “resume” feature implemented.

Q: periodically the ALTER isn’t written to the bin-log and thus isn’t replicated, why ? without any replication filters or relevant args, the replication breaks reliably on the __tmp_x table why ? The first question sounds like a potential MySQL bug. Are you sure this is really happening? I would be extremely surprised for such a bug to be happening. In reply to the second question, the 2.1 version of the tool does NOT have any features to disable the binary log; my experience has been that this is a very dangerous thing to do and causes way too many bugs in the server and the tool, so there is no code in the tool that disables binary logging at all. Are you using the 2.0 version of this tool? It was completely rewritten in version 2.1.

Q: qw() as use of () is deprecated That sounds like you’re using an old version of the tool.

Q: Old version of PT OSC said risk in replication environment, I didn’t see that in the new version, does it mean the tool has been well tested in replication environment? Yes.

Published at DZone with permission of Peter Zaitsev, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)