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:
- -uroot = use username of root
- -p = ask for password
- -e = extended inserts (makes the dump 10x smaller)
- --single-transaction = run this in a single transaction (to prevent corruption)
- -q = quick
- -r = file location to store
- openmrs = name of your database
If you want to automate it, you can provide the username and password for mysql in the command:
If you want to exclude a few of the extremely large tables, you can do that too
If you are on a linux variant, you can insert the date automatically into the backup sql filename:
If you are on windows, you can insert the date automatically too, its just a little uglier:
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:
- Create your new database
- create database openmrsbackuprestoration default character set utf8;
- Tell mysql to work against that new database
- use openmrsbackuprestoration
- Run the sql file
- source backup.sql
Now wait for 1, 20, or 30 minutes and you'll have all your data back.