怎样恢复seafile上的所以用户信息和资料文件啊?


#1

在Amazon的EC2里搭建的Ubuntu 16 Lite,然后搭建的Seafile。昨天Amazon上的EC2实例突然崩了,用puTTY也无法连接了,重启系统也无济于事了。看来Amazon也不靠谱啊!因为上面有100G的重要资料,所以又新建了一个实例并搭建了seafile 6.0.4,但不知道怎样把数据导入的新的seafile服务器里。过去每周都有对seafile-data做拷贝备份,也有MySQL的整个目录的拷贝。但没有用命令备份MySQL里面的数据。不知道该怎样恢复所有数据?包括MySQL用户数据和资料数据恢复到新seafile服务器里。目前新建的Seafile可以使用,但里面是空的,没有原来的文件。

刚搭建Seafile时,怕随着地久天长地使用MySQL会使数据量增加,就把Ubuntu下安装的MySQL目录迁移到了挂载盘xvdf上了,跟Seafile服务器文件都放在同一个挂载盘上了。所以每次只是把在挂载盘上的MySQL整个目录以及seafile-data目录都拷贝到另一个挂载盘上做为备份,但不知道怎样恢复回去啊!已经折腾了两天了,还是不得其法啊。

真心求助于技术大咖的解疑答惑!先声谢过!


社区版数据迁移要怎么做,换服务器
#2

你能导出 mysql 备份数据库表的话,就可以按着这个 文档来恢复 seafile 数据
https://manual-cn.seafile.com/maintain/backup_recovery.html


#3

LIan,谢谢!
根据Lian的提示,按照先恢复数据库表的思路去搞了。先在网上查看了一大堆怎样恢复数据库的说法,当然这些资料良莠不齐,还需要去粗存精。通过查看了seafile数据库文件夹里的表文件目录,发现只有frm格式的文件,综合了一下网上的资料,得知应该用针对innoDB类型数据库的恢复方法,大致过程如下:

  1. 重建一个新的EC2实例,并按照Seafile的手册安装好Seafile服务器。主要是需要Seafile的数据库结构,里面的ccnet-db、seafile-db、seahub-db三个数据库基本是空的,但保持了跟原来的结构一样,这个也是容易恢复的关键,接下来就要被需要恢复的数据库代替了;

  2. 停掉MySQL服务,修改一下存放三个数据库的文件夹(/var/lib/mysql)权限,删除掉ccnet@002ddb、seafile@002ddb、seahub@002ddb三个文件夹以及ib开头的三个文件;

  3. 把自己拷贝备份的三个相同名称的数据库文件夹拷贝到上面的已经删掉的文件夹了,但只把ibdata1文件拷贝进去;

  4. 找到MySQL的配置文件(/etc/mysql/my.cnf),windows版的MySQL配置文件好像是my.ini,在配置文件中的[mysqld]下面,增加一句强制恢复数据表的参数innodb_force_recovery = 1,(也可以是2或3、4、5、6,具体的不同之处,请参考MySQL网站);

  5. 重启MySQL服务,这个时候Seafile还是不能正常登入的,但数据库已经恢复好了。接下来需要停掉MySQL服务,并把刚才添加到配置文件里的那句强制恢复参数注释掉;

  6. 重新配置Seafile。删除掉Seafile服务器文件夹里面的Seafile-data目录,因为要重新setup一下Seafile服务器,有这个目录就无法用缺省值完成Setup;

  7. 运行./setup-seafile-mysql.sh,当选择用[1]新建数据库[2]已有数据库的时候,选择[2],并根据提示依次输入三个数据库名ccnet-db、seafile-db、seahub-db,直到最后完成。但最后会有一个提示:因为已经存在api2_token表了,不能初始化seahub-db了(不知道这个情况对Seafile系统会有什么影响,希望Lian能说明一下);

  8. 把自己备份的Seafile-data拷贝到相应的目录下面,启动Seafile和seahub服务,到此就可以登入并找到原来的所有文件和用户信息了。

注:在建立新MySQL数据库时,要保持跟原来数据库里的用户和密码一致。


#4

api2_token,是用来记录客户端登录的,你用客户端(android, ios, 桌面客户端任一个)试试,能正常登录就可以了。

这个可能是 setup 脚本在做数据库检查的时候,没有处理好这种情况,这个我们会检查一下。


#5

谢谢这么快的答复!
是的,即使有那个提示,客户端也是可以正常登入的。
Seafile系统真是非常的好用,目前我们的工作都离不开它了。这几天停摆后,美国那边的同事也是急得哇哇叫!


#6

如果你用的是专业版,可以试试实时备份功能
https://manual.seafile.com/deploy_pro/real_time_backup.html