Had a friend send me this general info about MySQL and back-ups... hope
it's helpful...
----
Here's a good overview of the options:
http://tinyurl.com/dazpev
Mifos is using the InnoDB storage engine, so you can ignore the parts of
the article relating to MyISAM storage engine.
AFAIK, the main thing people use for enterprise-ready (aka fast,
reliable) backups is this product:
http://www.innodb.com/wp/products/hot-backup/ (pricing is here)
MySQL 6.0 is supposed to (finally) have support for real backups like
the product above. Given the acquisition by Oracle, not sure when 6.0 is
gonna come out. Not soon.
If the DB is running on Linux (and you're willing to do more work),
there are other solutions like using a linux filesystem which supports
taking "snapshots" of the disk and storing them for later use.
http://tinyurl.com/dmzggq
This obviously doesn't work if your DB is running on Windows.
------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations
Conference from O'Reilly Media. Velocity features a full day of
expert-led, hands-on workshops and two days of sessions from industry
leaders in dedicated Performance & Operations tracks. Use code vel09scf
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
We do use InnoDB for most tables, but it looks like some logging and
reporting tables are still MyISAM, so those could potentially have
inconsistent state if mysqldump is used while anything else besides
mysqldump itself (including Mifos) is connected to the database.
This combination sounds like a good way to go:
* pause replication, then run mysqldump against a slave
* use binary logs for incrementals
LVM snapshots sound interesting, but I've found LVM to require quite a
bit of administrative overhead.
Here are two backup strategies fleshed out in a bit more detail. First,
my current ideal scenario:
* constant replication to slave
* slave is [perhaps] only used for backups
* slave runs on another machine
* weekly full
* pause replication
* run mysqldump against slave
* remove daily incrementals
* daily incremental
* flush binary log
* sync to backup server
Here's a simpler plan that would be useful if you didn't want to use
replication:
* weekly full backups
* stop Mifos, close all database connections
* run mysqldump
* restart application
* daily incrementals
* flush binary log
* sync to backup server
Edward Chin-Mook
CEO-Global Ink - www.globalinkjamaica.com - 754-7444 /754-5513 /1-888-Need-Ink
President - Small Business Association of Jamaica - www.sbaj.org.jm - 927-7071/978-0168