Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

DX1.5论坛数据备份恢复功能分析 | 关键词:数据库 备份 恢复 搬家

[复制链接]
StayGallant 发表于 2010-12-4 00:52:20 | 显示全部楼层 |阅读模式
本帖最后由 StayGallant 于 2010-12-4 13:18 编辑

  声明:本文前提是按照默认DX和UC数据在同一数据库来分析的。

  这两天研究DX1.5论坛数据备份与恢复功能,首先百度,出来的帖子差不多都是同一篇:https://discuz.dismall.com/thread-1929294-1-1.html

  我用DX1.5亲自测试,发现帖子中有不实之处,至于是作者的疏忽,还是康盛官方对数据库备份方式做了改动,原因不明。数据备份有更简洁的方式,另外在别的帖子中讨论,本帖会基本按照上面篇帖子所说的步骤进行,在备份恢复的过程中发现一些问题,下面给我我的见解,但愿对和我一样的新手站长有所帮助,能对DX1.5论坛的数据备份功能有所了解。

  经过多次试验得出结论:UCenter中的数据备份功能可以完整地备份UCenter自身相关的数据,但是,对UC的应用之一Discuz! Board,UC并不能备份它的所有数据;而通过论坛后台“后台→ 站长→ 备份→ 站点全部数据”备份的数据却是包含UCenter数据在内的全部数据。

  通过UCenter备份的数据,如果你把UCenter和Discuz! Board都勾选了,那么备份数据会出现在两个地方:一部分出现在"论坛根目录/uc_server/data/backup/backup_日期_XXXXXX"中,这部分数据是UCenter自己的;还有一部分出现在"论坛根目录/data/backup_日期_XXXXXX"中,这部分是UCenter替Discuz! Board备份的部分数据,至于是哪些数据,我没深入研究,总之是不完整的。(注:XXXXXX字符是每次备份系统随机生成的,但是每次备份所生成的两个文件夹名字是完全一样的)

  通过论坛后台备份的数据,只会出现在"论坛根目录/data/backup_YYYYYY"下,注意,此处的文件夹名和上面说的并不一样,所以我用"YYYYYY"标注,并且,这个"YYYYYY"是固定的,只要你不更改通信密钥,这串数字是不会变的,任何时候通过论坛后台备份的文件都会被放入这个文件夹。

  既然,论坛后台备份的数据是完整的,包括了站点的全部数据,那么只需要通过论坛后台备份、恢复文件就可以了。按照这个思路进行,在恢复站点数据的时候,问题来了,上图:

  在论坛后台备份,选择,备份站点全部数据

  提示,全部数据备份成功

在新站点重新安装并上传相关文件后,进入恢复数据界面,
如果你的通信密钥填写正确,会自动列出所有过去的备份数据

  选择最近的一次备份,点击右面的“导入”,别因为习惯左边打钩然后点提交,那你就惨了,因为这是删除,我就失手删掉过备份数据。。。

  然后开始导入数据,数据一般都有多个分卷,系统默认依次导入。

第一分卷上传完成,当然要点击确定

  好了,悲剧就此发生,你会发现一个无比熟悉的界面,并且一直停留在那里让你继续熟悉:

点击确定后,显示管理中心的登录界面

  此时,你会发现,无论你输入什么,你都登不进去,你是创始人也不认了。重复多次,无一例外。

  利用url访问UC后台,发现在这里创始人密码还有效,心中窃喜,还有认我的地方,但是进去以后,再一次失望,数据呢?UCenter里本来应该存在的数据呢!!!

  所有应该存在数据记录的地方无一例外都是空的。

应用管理是空的,DX论坛的记录没有出现


用户管理是空的,没有任何用户信息

  看到这些,只能得出一个结论:站点数据恢复并不成功,多个分卷在导入第一个之后,后面的根本没有导入,而UCenter的数据就应该存在于后面的几个分卷中,于是进入UCenter以后全部记录都是空的。

  怎么办?论坛自带的数据恢复不能用?直接操作数据库试试,换用phpmyAdmin挨个导入全部分卷以后,赶紧去网站前台看一下,结果出现了更让人伤心的情况:

用phpmyAdmin导入全部数据后,访问首页

  这是什么东西啊,折腾了半天,难道这样恢复数据都不行?别着急,这时候你到UC后台,会发现该有的数据已经都有了。既然UC的数据恢复了,那么配置文件正确的情况下,登录论坛后台也应该不成问题了,到论坛后台试试你的创始人账号,一般情况下已经可以进入论坛后台了,然后 工具→更新缓存,更新完后再次到前台页面查看(可能需要ctrl+F5强制刷新一下),发现站点面貌已经全部恢复了,这证明备份数据导入成功。

  现在来猜测一下为什么不能通过论坛后台恢复全部数据,我是这样理解的:后台操作需要权限凭据,而用户信息数据表pre_common_member也属于被恢复的数据之一,也就是说,这个凭据应该是由UC提供的。作为UC的应用,DX要操作UC的用户数据,如果顺利、一气呵成也就罢了,偏偏中间多出个完全多余的提示“分卷数据第一卷成功导入数据库,你需要自动导入本次备份的其他数据吗?”,多了这一个环节不要紧,点击“确定”按钮的同时页面需要向服务器返回选择信息,这时候系统可能发起了多操作权限的验证,但此时UC旧的用户数据已经被清除掉了,新的用户数据还没有填充进来,DX无法从UC获取有效凭证证明当前用户有这个操作权限,于是就让你重新登录,然后就永远也登不进去了。

  以上只是我的猜测,没有深入研究,请各位高手指点,接触DX,帖子中有不对的地方,欢迎大家指正。

  附上我的网站地址,欢迎换链http://www.86931.net

  PS:论坛数据备份、恢复的方法很多,本文只是就自己的一点经历发表一下个人看法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

2

查看全部评分

cecishi 发表于 2010-12-4 10:31:12 | 显示全部楼层
看不懂啊。。。
回复

使用道具 举报

sunjiujian 发表于 2010-12-4 10:53:23 | 显示全部楼层
我出现的问题和你描述的一样,我的uc恢复的很好,开始的时候在dz后台恢复,永远都不行,正如你说的,导入了第一个数据后就登陆不了了,后来尝试在uc中恢复,虽然提示恢复成功,但估计不完整,还是不能登录论坛,而且首页不正常,后来我没办法使用tools工具恢复dz数据,晕,虽然恢复成功,但还是不能登录,首页也是不正常的,我没办法只有使用tools工具,恢复管理员账号,登录后更新缓存,这时论坛才正常显示,但是新问题出现了,除了管理账号发的帖子能显示外,其它的用户均被删除,帖子被屏蔽,晕死,到现在都还没解决呢(显示uc与论坛通信正常,晕死了),求救啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

632idc 发表于 2010-12-4 10:58:06 | 显示全部楼层
帮你顶一下。。我也遇到了这个问题了。。哈哈。。还好老子有原用phpmyadmin的数据库备份!!!
回复

使用道具 举报

keesky 发表于 2010-12-4 11:00:01 | 显示全部楼层
收藏了
回复

使用道具 举报

lian26680 发表于 2010-12-4 11:01:59 | 显示全部楼层
我是通过UC备份的,然后在UC后台恢复,好像都没问题
回复

使用道具 举报

sunjiujian 发表于 2010-12-4 11:07:42 | 显示全部楼层
回复 lian26680 的帖子

我通过uc备份,和论坛都备份了,两者都不能恢复,最关键的问题是论坛中用户被删除
回复

使用道具 举报

lian26680 发表于 2010-12-4 11:12:28 | 显示全部楼层
回复 sunjiujian 的帖子

怎么回删除呢,有没有备份成功
回复

使用道具 举报

sunjiujian 发表于 2010-12-4 11:17:02 | 显示全部楼层
回复 lian26680 的帖子

不知道,显示数据全部导入成功,帖子打开就提示用户被删除,内容被屏蔽
回复

使用道具 举报

lian26680 发表于 2010-12-4 11:20:33 | 显示全部楼层
回复 sunjiujian 的帖子

我在UC后台备份UC的和论坛的,然后在UC恢复,恢复后出现一个问题,就是UC没用户数据,然后在论坛找了一个月终于解决了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-7-1 16:46 , Processed in 0.151057 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表