误删了数据库,怎么恢复数据?

今天在升级测试服务器时,不知道有同事在测试机上装了seafile,结果直接删除了mariadb,并清空了数据目录,现在只剩下seafile的数据,请教怎么能够快速的恢复所有数据为可用的?

如果seafile-data 目录还在,可以用fsck导出数据 https://manual.seafile.com/maintain/seafile_fsck.html

下面是我的seafile-data目录,目前只有storage有数据,请问lib_id、repo_id怎么对应的?
/root/data/seafile/seafile-data/storage/
├── blocks
│ ├── 005877f0-634e-4437-9626-b72b91f31e1b
│ ├── 0cab8bac-1963-46b7-9add-e65c186cc605
│ ├── 115664fc-519f-4c02-bbdd-038b704effd4
│ ├── 2d16e59f-db8b-4aa4-9069-a508dfdd9aab
│ ├── 467db332-15a1-4c45-a4df-5c5f8a861fee
│ ├── 607970e1-1435-4d60-80f4-1ed6b764a464
│ ├── 6ba649fc-bf5e-40b1-b6d9-6e51fdee7a24
│ ├── 7e67accb-57b3-437f-8524-c0db9c317dda
│ ├── 83e65cb3-3ed0-4355-968b-3a4d6dfad88e
│ ├── 89defdfd-267a-4224-bd99-139a5408c308
│ ├── 9bcd333e-0c6f-4911-b01b-ca59fd4fd927
│ ├── a3e17fb4-d478-4bf6-9b3a-fa75fe70b49e
│ ├── b8f286e5-e0aa-46bd-948e-62a1c6a2ad5b
│ ├── b95890e2-a4ca-4c21-831b-0f9eb35a6ec9
│ ├── bd916b38-3a0d-45d4-9e9b-96a35bf0b56f
│ ├── ce155ba7-48d8-48df-b114-271ca49b660e
│ ├── e2924dd2-149a-44be-8f5e-6bda667433c5
│ ├── f26aa3bb-6ad9-43e5-8a82-e86c69637f1d
│ └── fb5610fd-bbb1-4653-b3a9-f4a4a176ea64
├── commits
│ ├── 005877f0-634e-4437-9626-b72b91f31e1b
│ ├── 08141d11-49ba-4a62-ad00-0dbf1d26b860
│ ├── 0cab8bac-1963-46b7-9add-e65c186cc605
│ ├── 115664fc-519f-4c02-bbdd-038b704effd4
│ ├── 27cef68b-391b-4156-b763-bc5d1991fc29
│ ├── 2d16e59f-db8b-4aa4-9069-a508dfdd9aab
│ ├── 467db332-15a1-4c45-a4df-5c5f8a861fee
│ ├── 607970e1-1435-4d60-80f4-1ed6b764a464
│ ├── 6ba649fc-bf5e-40b1-b6d9-6e51fdee7a24
│ ├── 7e67accb-57b3-437f-8524-c0db9c317dda
│ ├── 83e65cb3-3ed0-4355-968b-3a4d6dfad88e
│ ├── 8423f6f6-bec6-4dc7-a17a-1443cd335dbe
│ ├── 89defdfd-267a-4224-bd99-139a5408c308
│ ├── 9bcd333e-0c6f-4911-b01b-ca59fd4fd927
│ ├── a21861a9-f03f-41ca-adba-5324e0e26df3
│ ├── a3e17fb4-d478-4bf6-9b3a-fa75fe70b49e
│ ├── a6a1dea0-f8fe-4a4f-b755-3c2738a5bad5
│ ├── b8f286e5-e0aa-46bd-948e-62a1c6a2ad5b
│ ├── b95890e2-a4ca-4c21-831b-0f9eb35a6ec9
│ ├── bd916b38-3a0d-45d4-9e9b-96a35bf0b56f
│ ├── cc95c820-7860-4a52-83c1-36d2dbb798e4
│ ├── ce155ba7-48d8-48df-b114-271ca49b660e
│ ├── e2924dd2-149a-44be-8f5e-6bda667433c5
│ ├── f26aa3bb-6ad9-43e5-8a82-e86c69637f1d
│ └── fb5610fd-bbb1-4653-b3a9-f4a4a176ea64
└── fs
├── 005877f0-634e-4437-9626-b72b91f31e1b
├── 0cab8bac-1963-46b7-9add-e65c186cc605
├── 115664fc-519f-4c02-bbdd-038b704effd4
├── 2d16e59f-db8b-4aa4-9069-a508dfdd9aab
├── 467db332-15a1-4c45-a4df-5c5f8a861fee
├── 607970e1-1435-4d60-80f4-1ed6b764a464
├── 6ba649fc-bf5e-40b1-b6d9-6e51fdee7a24
├── 7e67accb-57b3-437f-8524-c0db9c317dda
├── 83e65cb3-3ed0-4355-968b-3a4d6dfad88e
├── 89defdfd-267a-4224-bd99-139a5408c308
├── 9bcd333e-0c6f-4911-b01b-ca59fd4fd927
├── a3e17fb4-d478-4bf6-9b3a-fa75fe70b49e
├── b8f286e5-e0aa-46bd-948e-62a1c6a2ad5b
├── b95890e2-a4ca-4c21-831b-0f9eb35a6ec9
├── bd916b38-3a0d-45d4-9e9b-96a35bf0b56f
├── ce155ba7-48d8-48df-b114-271ca49b660e
├── e2924dd2-149a-44be-8f5e-6bda667433c5
├── f26aa3bb-6ad9-43e5-8a82-e86c69637f1d
└── fb5610fd-bbb1-4653-b3a9-f4a4a176ea64

@xie.zhang 现在我数据库的任何元数据都找不回来了,请问lib_id、repo_id怎么对应的?

恢复好像成功了,但是文件没导出来

[root@s168 seafile-server-latest]# ./seaf-fsck.sh --repair 2d16e59f-db8b-4aa4-9069-a508dfdd9aab

Starting seaf-fsck, please wait ...

[12/28/16 11:55:57] fsck.c(586): Running fsck for repo 2d16e59f-db8b-4aa4-9069-a508dfdd9aab.
[12/28/16 11:55:57] repo-mgr.c(324): Failed to get master branch of repo 2d16e59f.
[12/28/16 11:55:57] fsck.c(603): Repo 2d16e59f HEAD commit is corrupted, need to restore to an old version.
[12/28/16 11:55:57] fsck.c(498): Scanning available commits...
[12/28/16 11:55:57] fsck.c(558): Find available commit 8d283614(created at 2016-12-27 17:29:26) for repo 2d16e59f.
[12/28/16 11:55:57] fsck.c(413): Checking file system integrity of repo UI(2d16e59f)...

[12/28/16 11:58:14] fsck.c(391): Update repo 2d16e59f status to commit 81c42dfc.
[12/28/16 11:58:14] fsck.c(650): Fsck finished for repo 2d16e59f.

seaf-fsck run done

Done.

你用 seaf-fsck.sh 提供的 export 命令把文件都导出来。具体的操作可以参考 https://manual.seafile.com/maintain/seafile_fsck.html 的末尾