-
-
Save Floppe/818d3cb4b873551f3ffb7d0f0f9c60ca to your computer and use it in GitHub Desktop.
Shell script to recover corrupted Confluence h2 database
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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.tools.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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment