|
|
@@ -0,0 +1,45 @@ |
|
|
#!/bin/bash |
|
|
# This script has to be run as your confluence user or root |
|
|
# Create a backup of, and attempt to restore a confluence h2 internal database |
|
|
|
|
|
# Go home. |
|
|
cd ~ |
|
|
|
|
|
# Stop confluence |
|
|
/opt/atlassian/confluence/bin/stop-confluence.sh |
|
|
# Really though... |
|
|
pgrep java | xargs kill |
|
|
|
|
|
#create a good backup of your database files |
|
|
mkdir -p ~/confluence-db-restore/originals |
|
|
cp /var/atlassian/application-data/confluence/database/*.db ~/confluence-db-restore/originals |
|
|
|
|
|
# create another good backup of your database files |
|
|
tar -cvzf ~/confluence-db-restore/"$(date '+%Y-%m-%d')_h2db_backup.tar.gz" ~/confluence-db-restore/originals |
|
|
|
|
|
# create a copy of your db to work from |
|
|
cp ~/confluence-db-restore/originals/*.db ~/confluence-db-restore |
|
|
|
|
|
# Create recovery SQL script |
|
|
/opt/atlassian/confluence/jre/bin/java -cp \ |
|
|
/opt/atlassian/confluence/confluence/WEB-INF/lib/h2-*.jar \ |
|
|
org.h2.tools.Recover |
|
|
|
|
|
# move working files and restore database |
|
|
mkdir -p ~/confluence-db-restore/recovery |
|
|
mv *.sql ~/confluence-db-restore/recovery |
|
|
cd ~/confluence-db-restore/recovery |
|
|
/opt/atlassian/confluence/jre/bin/java -cp \ |
|
|
/opt/atlassian/confluence/confluence/WEB-INF/lib/h2-*.jar \ |
|
|
org.h2.gools.RunScript -url jdbc:h2:./h2db -user sa -script *.sql |
|
|
|
|
|
|
|
|
################################################################################ |
|
|
# IMPORTANT THAT YOU MOVE THE RECOVERED DATABASE IF THE RESTORE WAS SUCCESSFUL # |
|
|
# Uncomment this line to copy the restored database over your existing # |
|
|
################################################################################ |
|
|
|
|
|
# cp -f ~/confluence-db-restore/recovery/*.db /var/atlassian/application-data/confluence/database/ |
|
|
# chown -R confluence:confluence /var/atlassian/application-data/confluence |
|
|
|
|
|
systemctl restart confluence |