Together with David Smith - Zarafa Groupware Advanced Engineer from mars Solutions Germany we found the following way for Zarafa Groupware Backup, Restore and Single Object Restore:
VM Preparations:
Zarafa Groupware runs on Linux. So the first thing you need to do, is to prepare the Linux VM for correct restore.
Set a static MAC in VM settings or edit the network settings in Linux that if MAC Address will change the LAN Adapter keeps his IP address.
Backup Job
Create a Backup Job and add the Zarafa Servers.
Enable VMware Tools quiescence.
Job-Storage-Advanced-vSphere-Enable VMware Tools quiescence
Pre-Freeze script
Zarafa uses a MySQL database for metadata and a file based content system.
To have a consistent copy of the MySQL database use the following pre-freeze script:
Code: Select all
#!/bin/bash
/usr/bin/mysqldump --single-transaction --skip-opt --add-drop-table --add-locks --create-options --disable-keys --extended-insert --quick --set-charset --all-databases --pass=demo > /var/backup/database.dump
exit 0
/usr/sbin/pre-freeze-script
and make it executable
Code: Select all
chmod +x /usr/sbin/pre-freeze-script
Run backup job and check if database.dump is now there at /var/backup/database.dump
SureBackup (to do automatically restore checks and to recover single object like mails):
Create a new xml File and place it here:
C:\Program Files\Veeam\Backup and Replication\SbRoles\ZarafaServer.xml
Code: Select all
<?xml version="1.0" encoding="utf-8" ?>
<SbRoleOptions>
<Role>
<SbRole>
<Id>9C0EDDD0-7BA5-48cd-AD87-2CF67F28B8A1</Id>
<Name>Zarafa Server</Name>
</SbRole>
</Role>
<Options>
<SbVerificationOptions>
<ActualMemoryPercent>100</ActualMemoryPercent>
<MaxBootTimeoutSec>600</MaxBootTimeoutSec>
<AppInitDelaySec>120</AppInitDelaySec>
<TestScripts>
<TestScripts>
<TestScript>
<Name>Zarafa Server</Name>
<Type>Predefined</Type>
<TestScriptFilePath>VmConnectionTester.exe</TestScriptFilePath>
<Arguments>%vm_ip% 236</Arguments>
</TestScript>
</TestScripts>
</TestScripts>
<HeartbeatEnabled>True</HeartbeatEnabled>
<PingEnabled>True</PingEnabled>
</SbVerificationOptions>
</Options>
</SbRoleOptions>
Create a Virtual Lab (see Userguide)
Create a SureBackup Job "Zarafa Recovery Check" and add the Zarafa backup job.
Select the Servers/Job and tick the Roles: Mail Server and Zarafa Server
Hint: If you use LDAP/AD as a directory service together with Zarafa Groupware you need to backup this server as well and ad it as an Application Group to the SureBackup Job.
Run SureBackup job and check if everything runs successfull.
Recovery of the whole Server with "VM Recovery" or "Instant VM Recovery":
Restore the Server with "VM Recovery" or "Instant VM Reovery" but do not start the Server.
Edit VM Settings and disconnect (not delete!) the network interface. (You can use the checkboxes in Instant VM Recovery, too)
Start the VM and run the following command to restore Metadata Database to the dumped consisting state:
Code: Select all
/etc/init.d/zarafa-server stop
mysql --user=root --password=demo < /var/backup/database.dump
ini/etc/init.d/zarafa-server start
Have a lock at the syslog if it was successful then:
Code: Select all
tail -n 200 /car/log/syslog
Single Object Restore / Single Mail Restore (Veeam Backup & Restore Enterprise):
This described process uses the recommended way from Zarafa by Using Veeam U-AIR technology.
Yes, this process is a little bit long, but the recommended way by Zarafa.
Start the Zarafa Groupware Server with the "Universal Application Item Recovery" => See Userguide
For File transfer preparation start the B&R User Interface and go to Managed Servers.
Add Zarafa Groupware Server.
Add the SureBackup Zarafa Groupware Server with it´s new IP address. Go Advanced - Preferred TCP Connection Role and tic "Run Server on this side"
Extract an User:
Go to the VirtualLab Zarafa Server.
List all existing Users
Code: Select all
/usr/bin/zarafa-admin -l
Export the User "max" to /var/backup/
Code: Select all
/usr/bin/zarafa-backup -a -v -u max -o /var/backup/
Code: Select all
/usr/bin/zarafa-backup -a -v -o
To restore the whole user "max":
Go the production Zarafa server and use
Code: Select all
cd /var/backup
/usr/share/zarafa-backup/full-restore.sh max
At best we use the normal Webinterface on the VirtualLab SureBackup Server and indentify the Subject.
Go the production Zarafa Sever and Search for the Subject of an Object(here for example: "Answer to your Mail - Invoice211")
Code: Select all
cd /var/backup
/usr/share/zarafa-backup/readable-index.pl max.index.zbk | grep "Answer to your Mail - Invoice211"
"max" is again our user.
Code: Select all
cd /var/backup
/usr/bin/zarafa-restore -v -u max 48000000
You can view a video how it works here:
http://www.veeam.com/de/videos/zarafa-b ... -1671.html
All comments are in German, but we talk about the exact same thing writen here above.
If you find this information helpful, please like it. If you need mor information or if you have questions leave a comment.
Happy backup and restore
CU Andy