Restoring Backup¶
To restore a Nextcloud installation there are four main things you need to restore:
- The configuration directory
- The data directory
- The database
- The theme directory
Note
You must have both the database and data directory. You cannot complete restoration unless you have both of these.
When you have completed your restoration, see the Setting Strong Directory
Permissions
section of Installation Wizard.
Also make sure to run the maintenance:data-fingerprint command afterwards, to ensure your sync clients can recover from the restored backup.
Restore Folders¶
Note
This guide assumes that your previous backup is called “nextcloud-dirbkp”
Simply copy your configuration and data folder (or even your whole Nextcloud install and data folder) to your Nextcloud environment. You could use this command:
rsync -Aax nextcloud-dirbkp/ nextcloud/
Restore Database¶
Clean Database Before Restoring¶
Warning
Before restoring a backup you need to make sure to delete all existing database tables.
The easiest way to do this is to drop and recreate the database. SQLite does this automatically.
MySQL¶
MySQL is the recommended database engine. To restore MySQL:
mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud"
If you use UTF8 with multibyte support (e.g. for emoijs in filenames), use:
mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
PostgreSQL¶
PGPASSWORD="password" psql -h [server] -U [username] -d nextcloud -c "DROP DATABASE \"nextcloud\";"
PGPASSWORD="password" psql -h [server] -U [username] -d nextcloud -c "CREATE DATABASE \"nextcloud\";"
Restoring¶
Note
This guide assumes that your previous backup is called “nextcloud-sqlbkp.bak”
MySQL¶
MySQL is the recommended database engine. To restore MySQL:
mysql -h [server] -u [username] -p[password] [db_name] < nextcloud-sqlbkp.bak
SQLite¶
rm data/owncloud.db
sqlite3 data/owncloud.db < nextcloud-sqlbkp.bak
PostgreSQL¶
PGPASSWORD="password" pg_restore -c -d nextcloud -h [server] -U [username]
nextcloud-sqlbkp.bak