On 8/19/2010 12:03 PM, Mick wrote:
I use mysqldump to back up a database from a development environment and
upload it to a production environment.

A couple of days ago I was surprised to see that I was getting errors as soon
as I uploaded the backed up database to the production machine!  I repeated
the backup (more in disbelief than anything else) but the error remained.

I spent a few minutes looking around and scratching my head as to what was
amiss with it, until eventually I noticed that the recent backup was smaller
than the previous version (it should have been bigger due to extra data that
has accumulated in the database).  I had another final go in running the same
good ol' mysqldump command and this time it worked.  The backup was a
reasonable size and the upload restored the application in the production
environment in a good working order.

Is there a right and a wrong way of backing up mysql?  Did I do something
wrong?  How should one verify that a back up is sound?  (Imagine trying to
restore from that incomplete backup!)

mysqldump -A --single-transaction

That's usually the best way to backup if you have a single machine. Without --single-transaction you may or may not get a proper backup when using Innodb tables on a busy server.

However in a busy production environment it's usually best to use a slave to do backups. Bringing LVM snapshots into the mix is also useful, but you must lock and flush Mysql in order to get a correct snapshot which makes it only an option on the slave.

kashani

Reply via email to