I'm one of the administrators for SourceForge.net: ZCS Tools, which is a script to automate doing backups of the Open Source Edition, as the Open Source Edition doesn't come with the backup tools that Network Edition has.
At the moment that script stops all of the zimbra processes, rsyncs the entire /opt/zimbra directory, and starts all of the zimbra processes.
The recent blog post on ldap made me think that we could do a lot better. But I don't know enough of how zimbra works. My rough outline below is what I think might work. Can I get some feedback on if it would, or what a better approach might be?
- prevent changes
- stop postfix and stop tomcat
- write lock on mysql and slapd
- grab account data
- dump the slapd database to somewhere
- grab message metadata
- dump the mysql database to somewhere
- grab messages
- dump the emails somewhere
- allow changes
- release locks on mysql and slapd
- start postfix
Am I missing stuff? Where is the lucene database stored, is that in mysql, or do I need an extra step to dump that? Where are the actual email messages stored?
Is there another way to prevent changes, apart from stopping postfix and tomcat? Postfix could probably be reconfigured to hold all messages. Is there a mode that you can prevent all new logins, and suspend current logins?