今天突然断电,导致satable容器数据损坏,系统无法访问;
按照文档提供的备份恢复方法无法备份成功,遂在linux下保存了/opt/seatable整个目录到seatable_back中,然后重新部署了一套新的到/opt/seatable目录,然后想请教一下,如何才能把数据恢复过来呢?或者有没有可能恢复过来?
PS1:新部署的ip和目录路径都没有变化,我尝试复制了原始目录中的所有文件到新目录中,然后restart,还是看不到表格
PS2:在论坛中搜索了一下,把mysql-data和seatable-data目录复制过来覆盖,也不行
解决方法:
1、新数据seatable文件夹重命名为seatable01
2、原备份文件夹seatable_back重命名为seatable,目的是新系统读取原来文件夹的数据
3、新建dbback文件夹,cd进入dbback文件夹,再运行数据库备份命令
4、以下三条命令要做相应修改,seatable-mysql改成seatable-mariadb,MYSQL_ROOT_PASSWORD要改成实际密码
docker exec -it seatable-mysql mysqldump -uroot -pMYSQL_ROOT_PASSWORD --opt ccnet_db > ccnet_db.sql
docker exec -it seatable-mysql mysqldump -uroot -pMYSQL_ROOT_PASSWORD --opt seafile_db > seafile_db.sql
docker exec -it seatable-mysql mysqldump -uroot -pMYSQL_ROOT_PASSWORD --opt dtable_db > dtable_db.sql
修改为以下代码后分别运行
docker exec -it seatable-mariadb mysqldump -uroot -p替换成.env中设置的数据库密码 --opt ccnet_db > ccnet_db.sql
docker exec -it seatable-mariadb mysqldump -uroot -p替换成.env中设置的数据库密码 --opt seafile_db > seafile_db.sql
docker exec -it seatable-mariadb mysqldump -uroot -p替换成.env中设置的数据库密码 --opt dtable_db > dtable_db.sql
5、此时原备份文件夹中三个数据库都已经备份到dbback中
6、再还原1、2步骤中的文件夹
7、进入dbback使用恢复数据库命令恢复数据,同样要注意
seatable-mysql改成seatable-mariadb,MYSQL_ROOT_PASSWORD要改成实际密码
8、把原备份文件夹/seatable-data/seatable下的文件移动或者复制到新系统,覆盖原始文件,清空logs文件夹
9、容器restart一下,数据已全部恢复