Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question was asked on the MySQL forums in 2004 with no answers.

I'm installing MySQL 5.0.x on a Windows 2003 Server for use with Drupal. I began to configure the backup with mysqldump when it occurred to me that an ntbackup taken using shadow copying should be reliable enough for backing up the database. Is there any flaw in my logic?

share|improve this question
up vote 6 down vote accepted

It entirely depends on the state of the mysql service at the time of the backup. But the simple answer is no, it is not a safe or good way to make a mysql backup. You should use the included mysqlbackup to make periodic backups of the database. You can make backups to the local machine and then backup the backups with ntbackup.

share|improve this answer

As a general rule, never backup the data directory (directories) of a running database. Only backup the directory if you can shut the database down first. If the database is running and supports hot backups, you can backup with the database running. This usually requires communication between the backup software and the database software.

Possibly, but I wouldn't count on it. Data may be cached in memory or modified while you are copying it. If you shut down MySQL before backing up the data then it should be reliable. There are administration tools to do backups. These will create reliable backups in another directory.

share|improve this answer

I guess the mysql db is in use. Otherwise it would not make sense.

  • It is not possible to compare the files after backup. They could have changed in the meantime.
  • And also you do not get a consistent snapshot.

Maybe you want to set up a replicated mysql db and disconnect the slave from the master during you backup the slave db and then reconnect, so the slave can catch up again until your next backup. You can do this with some scripting.

Edit: If you take read only snapshots using nt shadow copy, this does not change much. It will help you with the comparing problem but not with the consistency.

If you want a consistent backup you should do it on mysql level, for example as I described above. Mysql will use the binary log to replicate the databases, and you should have maximum consistency. The binary log will respect the transactions.

But on the application level there is something to consider:

share|improve this answer
@matnagal I edited the question a bit. I assume shadowcopy will provide consistency for me. – Justin Dearing Jun 8 '10 at 18:53
Assuming shadow copy will provide consistency is not a good idea. Shadow copy does not know anything about the state of the database and if their are partially committed transactions. – Zoredache Jun 8 '10 at 18:56
@Justin: I updated the answer. Thank you. – user12096 Jun 8 '10 at 19:12

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.