Discuz!3.2论坛版块被误删除后怎么恢复

作者: 鲁智深 分类: Discuz!X 发布时间: 2016-05-06 14:34

前几天由于自己的操作失误,将论坛板块给删除了,Discuz!后台版块被删除后是无法恢复的,如下图:

板块删除

板块删除

想了一下,我用的是阿里云ESC服务器,应该有快照保存的,本人没有每天备份的习惯,打开阿里云后台看见我在5月1日居然保存了快照,但又不能直接恢复到5月1日,到今天可就差3天时间啊,不能全部快照回滚,所以就开始数据恢复旅程!如下图:

阿里云快照

阿里云快照

第一:必须先保存现在当前时间的数据,有用户量的话最好在晚上11后开始操作,避免用户数据丢失!

接下来,就是操作了,要找到被删除版块数据,操作—》快照回滚到5月1日-》进入论坛–》后台–》删除所有数据(不包括被误删除数据),也是就说留下“被误删除的数据版块”。

删除干净后,进入数据库管理后台,我用的是phpmyadmin,找到2张表是“pre_forum_post帖子表”和“pre_forum_thread主题表”,如下图:

数据表

数据表

将其数据内容全部导出保存下来,以sql后缀名保存到本地。我是直接导出sql语句保存,当然保存方法有很多,我就不一一说明了,如下图:

直接导出sql语句

直接导出sql语句

别以为这就是结束了,这才刚刚开始呢,找到了“pre_forum_post帖子表”和“pre_forum_thread主题表”,当然还有图片和附件数据表呢,如下图,一张“附件关联表”和“10张附件图片信息表”。

附件表

附件表

将其内容如同上面一样,全部保存成sql数据。

接下来,“pre_forum_post帖子表”和“pre_forum_thread主题表”,图片附件数据表都有了,还缺呢?对了,还缺图片、附件文件没有保存(ps:mysql只是保存附件图片路径地址),图片附件文件藏在:bbs\data\attachment\forum,所以带日期文件夹里面。

附件文件夹

附件文件夹

接下来,快照回滚到最新时间数据,在论坛上新建一个版块,版块名称就叫“我被误删除”,并记录下fid如下图:

板块fid

板块fid

打开“pre_forum_post帖子表”和“pre_forum_thread主题表”,修改其字段fid值,对应如上图fid,批量修改字段fid,sql语句是:

1
update 表名 set 字段名=新值;
fid字段

fid字段

准备工作已经全部完成了,下面开始导入数据,在论坛后台执行sql语句,如下图:

部分sql语句

部分sql语句

插入数据时,如有出现“sql报错主键已存在”,那有可能是一开始删除数据不干净,导出数据重复,因为现在导入的数据是“被误删的数据”。

最后将图片和附件上传到服务器中,打开帖子会发现图片附件还是不显示,只要点一下“编辑”就显示了!具体原因为什么,可能是php是需要浏览器刷新后才能执行语言吧!

版块数据就这样恢复了!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

一条评论
  • 鲁智深

    2017 年 10 月 5 日 20:00

    这是评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注