It is good practice to back up your server regularly. If you are using MySQL, the mysqldump command makes it very easy.

The typical command to back up your entire database is:

mysqldump -u root -p -e --single-transaction -q -r"/home/ben/backup.sql" openmrs

If you want to automate it, you can provide the username and password for mysql in the command:

mysqldump -u root -pPA$$W0rd -e --single-transaction -q -r"/home/ben/backup.sql" openmrs

If you want to exclude a few of the extremely large tables, you can do that too

mysqldump -u root -p -e --single-transaction -q -r"/home/ben/backup.sql" --ignore-table=hl7_in_archive --ignore-table=formentry_archive openmrs

If you are on a linux variant, you can insert the date automatically into the backup sql filename:

mysqldump -uroot -p -e --single-transaction -q -r"/home/ben/backup`date +%Y%m%d`.sql" openmrs

If you are on windows, you can insert the date automatically too, its just a little uglier:

mysqldump -u root -p -e --single-transaction -q -r"C:\backup%date:~10,4%%date:~4,2%%date:~7,2%" openmrs

After creating the backup .sql file, you can zip it and store it for later use.

Restoring From A Backup File

The now get the data out of an archived sql backup file and into a new database its merely three simple steps:

  1. Create your new database
  2. Tell mysql to work against that new database
  3. Run the sql file

Now wait for 1, 20, or 30 minutes and you'll have all your data back.