Sidehistorik
This article describes the way to make a Disaster Recovery Site of a Confluence Installation
Indholdsfortegnelse |
---|
Assumptions taken below
What | Where |
---|---|
Confluence Installation Directory | /opt/confluence |
Confluence Home Directory | /opt/confluence-data |
MySQL Backup | Setup and working, backing up to /backup/mysqlbackup/ |
Disaster Recovery (Stand by) Server DNS name | drserver.site.dk |
rsync between servers | Setup and working via SSH keys |
rsyncing MySQL, Confluence Installation and Confluence Home Files
The MySQL backup of the Confluence database and the files of the installation must be syncronised to the alternate server (called drserver.site.dk)
This should be run with cron in regular intervals
Kodeblok |
---|
#!/bin/bash
rsync -avz /backup/mysqlbackup/confluence.sql.gz drserver.site.dk:/mysqlbackup/ >/dev/null
rsync -avz /opt/confluence-data --exclude *.log drserver.site.dk:/opt/
rsync -avz /opt/confluence --exclude catalina.out drserver.site.dk:/opt/ |
Scripts and files
Script for dropping and creating a new database
Kodeblok | ||
---|---|---|
| ||
drop database confluence;
create database confluence CHARACTER SET utf8 COLLATE utf8_bin;
grant all privileges on confluence.* to confluence@localhost identified by 'confconf';
flush privileges; |
Why change the server.xml and setenv.sh
Due to the fact this (problably) is a DR site, some facts can be:
- The HW specs are lower
- The URL (and hence Base URL) are different
So we want to change the server.xml and setenv.sh to reflect those changes, otherwise the system may never start correctly.
So, make a copy of :
Kodeblok |
---|
scp /opt/confluence/conf/server.xml drsite.server.dk:/scripts/server.xml.confluence
scp /opt/confluence/bin/setenv.sh drsite.server.dk:/scripts/setenv.sh.confluence |
Now, change the files as needed.
Restore Confluence script
This is the script that restores the Confluence on the DR server drserver.site.dk - It needs the files from above to work.
Kodeblok |
---|
#!/bin/bash
if [ `id | grep "uid=0(root)" | wc -l` -lt 1 ]
then
echo "must be executed as root"
exit 1
fi
if [ -f /mysqlbackup/confluence.sql ]
then
rm /mysqlbackup/confluence.sql
fi
echo "Unpacking Confluence database backup"
gunzip -c /mysqlbackup/confluence.sql.gz > /mysqlbackup/confluence.sql
echo "Dropping and Creating Confluence and JIRA databases"
mysql -uroot -password < /scripts/CreateConfluenceDatabase.sql
echo "Importing Confluence database backup into MySQL - This takes a while..."
mysql -uroot -password < /mysqlbackup/confluence.sql
if [ $? -eq 0 ]
then
echo "Import finished ok"
else
echo "mysql client ended with exit code different from 0. Stopping script"
exit 1
fi
echo "Copying server.xml and setenv.sh to Confluence configuration"
cp /scripts/server.xml.confluence /opt/confluence/conf/server.xml
cp /scripts/setenv.sh.confluence /opt/confluence/bin/setenv.sh
rm /opt/confluence/logs/catalina.out
echo "Ready for Starting Confluence for http://drserver.site.dk"
echo "Start with: /opt/confluence/bin/startup.sh;tail -f /opt/confluence/logs/catalina.out" |