本帖最后由 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:论坛数据备份、恢复的方法很多,本文只是就自己的一点经历发表一下个人看法。
|