docker部署的seafile如何恢复数据?


#1

我已经可以使用docker正常部署和使用seafile7,然而现在想尝试在docker状态下对备份的数据进行恢复,然而根据官方文档进行恢复后碰到一些问题。

1、备份之前,是否应该先暂停seafile service,否则此时如果有客户端同步(尤其是上传),数据岂不是丢失?
2、恢复的时候,是否需要确保service处于正常运行状态?

恢复数据库

docker cp /opt/seafile-backup/databases/ccnet_db.sql seafile-mysql:/tmp/ccnet_db.sql
docker cp /opt/seafile-backup/databases/seafile_db.sql seafile-mysql:/tmp/seafile_db.sql
docker cp /opt/seafile-backup/databases/seahub_db.sql seafile-mysql:/tmp/seahub_db.sql

docker exec -it seafile-mysql /bin/sh -c "mysql -uroot ccnet_db < /tmp/ccnet_db.sql"
docker exec -it seafile-mysql /bin/sh -c "mysql -uroot seafile_db < /tmp/seafile_db.sql"
docker exec -it seafile-mysql /bin/sh -c "mysql -uroot seahub_db < /tmp/seahub_db.sql"

这是不是意味着,seafile service需处于正常运行状态,然后在线恢复数据库?


#2

有了新的进展。
手工完成数据库和数据的备份之后。我先用docker-compose down删掉了seafile services(含3个容器),接着手工删除volume中残留的数据。

接着docker-compose up,重新创建新的seafile services,通过浏览器使用管理员账号登陆,确保服务可用之后,开始恢复动作。

以下操作均参照官方文档:

恢复数据库
恢复数据

然后重新用管理员登陆seafile,发现恢复成功。客户端重新登陆,也可以正常的同步和上传。

然而,我尝试着重启seafile services,docker-compose restart,logs显示:

Error happened during creating seafile admin

seafile 管理页面就无法正常访问了。页面错误显示如下:

Page unavailable

Sorry, but the requested page is unavailable due to a server hiccup.

Our engineers have been notified, so check back later.

什么原因?