官方链接:Backup — Nextcloud latest Administration Manual latest documentation
维护模式
操作之前首先进入维护模式,主要目的是防止文件被客户端更新导致不一致
进入nextcloud安装目录cd /var/www/html/nextcloud执行
sudo -E -u www-data php occ maintenance:mode --on或者编辑文件 config/config.php 将"maintenance" => false改为true
迁移完成之后,再关闭维护模式
备份数据库
我使用的是mysql数据库备份命令:
mysqldump --single-transaction --default-character-set=utf8mb4 -h localhost -u root -p nextcloud > nextcloud-sqlbkp_`date +
"%Y%m%d"`.bak--default-character-set=utf8mb4 表示开启了4-byte支持符号emoji
备份文件夹
安装目录和数据目录是分开的,所以得分开备份
备份安装目录
进入安装目录 cd /var/www/html/nextcloud
rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/-Aavx:保留原目录的权限,创建时间和用户
备份数据目录
进入数据目录 cd /var/www/html/nextcloud
rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/恢复到旧版本
查找旧版本,如果升级过版本,旧版本查找目录/sata-data/nextcloud/data/updater-oc6ndg14ub2h/backups
里边包含了以前的版本的所有配置信息,比如找到 nextcloud-31.0.10.2-1763542985
将这个版本复制到 /var/www/html/nextcloud,替换旧版本
关闭维护模式 sudo -E -u www-data php occ maintenance:mode --off
降级成功!
如果数据库不兼容,则修复数据库
sudo -u www-data php /var/www/nextcloud/occ maintenance:repair迁移当前版本到新服务器
将上面的备份复制到新服务器
恢复配置和数据文件夹
rsync -Aax nextcloud-dirbkp/ nextcloud/恢复数据库
创建数据库,支持emjo
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"恢复数据库数据
mysql -h localhost -u root -p nextcloud < nextcloud-sqlbkp.bak