论坛转换网's Archiver

白乐天 发表于 2008-1-28 22:38

Discuz6.0论坛备份数据互补工具

Discuz6.0论坛备份数据互补工具
Version 1.00
版权: 白乐天
联系方式:QQ 466356742 ;MSN &&  EMAIL: [email]bailetian@hotmail.com[/email]


论坛运行中,因人为误删会员,帖子,甚至整个版块,以及其他原因致使数据受损的情况屡见不鲜。此时我们通常可以使用近期备份进行恢复,但这样作就会丢失上次备份以来的新生数据!新数据舍不得,旧数据还想要,此时即陷入两难境地。数据是站长们的命根,如何最大程度补回丢失数据而又保全现有数据,就是本工具解决的问题。

本工具的功能是可以从前期备份数据中,自动将现有论坛丢失(没有)的部分抽离出来,补充进现论坛。以形成“旧数据找回,新数据不丢”的最佳状况。


本工具可以轻松使Discuz6.0论坛备份数据进行互补。有如下特点
[color=Blue][b]1.完整互补会员,主题,帖子,附件,版块,用户组等重要数据。
2.简单方便,用户可以按需选择自己所需要的项目进行互补。
3.速度快,容错性好。反复互补也不会造成数据重复。[/b][/color]

说明:
本工具为免费版。未经授权,禁止用于商业用途。

[color=Red][b]注意:此工具只能互补同一论坛不同时期的备份数据,并不能将完全不同的两个论坛的数据进行互补(处理方式不同,若需实现此种功能,请使用作者另外发布的合并工具,如将并非同一论坛的数据进行互补,会造成数据混乱,请慎重操作!)[/b][/color]


下载地址:

[url=http://www.bbstobbs.com/downfile/DiscuzUnion.rar]Discuz6.0论坛备份数据互补工具下载[/url]

白乐天 发表于 2008-1-28 22:43

帮助

一、运行平台
win2000/winxp/win2003


二、环境
mysql4.0/mysql5.0+apache+php(推荐dz官方的Discuz!6.0.0Release 20070904!Discuz!EXP 6.0.0)


三、步骤
1.搭建环境
2.分别还原两个时期的论坛备份。注意两个论坛要放在不同数据库中。
3.运行转换程序,填入各项设置。
注:数据库用户一栏推荐使用 root用户 ,或者具有操作两数据库权限的用户名。
4.点连接,此时可以看到两个备份之间的差异程度以及可补充的数据量。
5.点开始互补。等待,直至提示互补完成出现。程序目录下生成ErrorLog.txt,提供给熟悉SQL的用户用以分析互补失败原因。
6.登入后台,更新缓存。刷新论坛首页面,将看到互补后的效果。

三、说明
本工具为免费版。未经授权,禁止用于商业用途。
自己不便搭建转换环境的用户,可以联系作者进行操作(有偿)。


作者: 白乐天
联系方式:QQ 466356742 ;MSN &&  EMAIL: [email]bailetian@hotmail.com[/email]


四、常见问题
1.附件也可以互补么?
附件数据可以互补,但要在附件文件存在(也进行过备份)的前提下。附件互补后,将备份过的附件文件覆盖在attachments目录下即可。

2.如果装的环境是Discuz!EXP 6.0.0,请将端口设置为6033


3.此工具可以远程连接虚拟空间么?
除非该空间开放了mysql的远程连接权限,否则不可以。请在自己的服务器上或本机环境进行互补操作。

51好东西 发表于 2008-2-18 17:44

:Q
老大,你这个是正式版吗?我用这个失败了哈,数据是有了,但是补进来的的帖子打开都是这样的

未定义操作,请返回。

[ 点击这里返回上一页 ]

白乐天 发表于 2008-2-18 22:05

是正式版。详述你两个备份的情况,因什么原因导致缺失。如果有特殊情况我会升级程序。

51好东西 发表于 2008-2-20 22:29

[quote]原帖由 [i]白乐天[/i] 于 2008-2-18 22:05 发表 [url=http://www.bbstobbs.com/redirect.php?goto=findpost&pid=78&ptid=14][img]http://www.bbstobbs.com/images/common/back.gif[/img][/url]
是正式版。详述你两个备份的情况,因什么原因导致缺失。如果有特殊情况我会升级程序。 [/quote]

好的,情况是这样的。2008年1月19日由于服务器上一个站出现问题导致服务器给网警扣押了,而我没有及时备分数据,最后一次备分的时间是2007年12月29日。服务器给扣押了,我的网站也当然无法访问了,这对于一个站长来说简直是要命,于是重新找了个空间,装了个官方原版6.0的,然后把我的12.29的数据恢复进去,也就是说2008年1月20日我的站可以访问了,但是数据是2007年12月29日的,然后运行到2008年2月10日原来的服务器拿回来了,然后我赶紧上去把数据备分出来了。

  现在我是要把[color=red]2008年1月19日 到 2008年2月10日[/color] 这20多天的数据弄进来,不知道老大能否明白我的意思。。

[[i] 本帖最后由 51好东西 于 2008-2-20 22:33 编辑 [/i]]

51好东西 发表于 2008-2-20 22:34

都是DZ 6.0版本的

白乐天 发表于 2008-2-20 22:52

明白了。你这种情况并不完全算互补。
你用12.29的数据恢复后,运行至今产生的2008年1月20日到2008年2月10日的数据,生成的tid,pid等,是与原服务器上的数据是有一部分重合的。相当于两个备份各自运行过一段时间,而不完全是同一论坛的备份。而本工具是基于同论坛不同时期备份的互补,不会引入重合pid,tid的那部分数据。

想解决有两种办法。一是用这个互补工具前,先将2008年1月20日后的帖子表和主题表的tid,pid加上一个增量,以该段时期最小tid,pid值,大于原论坛的最大tid,pid值为准。然后再进行互补。

二是使用我做的另一个合并工具,可以把那部分数据补充进去,不过那是完全合并,对你这种情况会产生大量重复数据。想要完美的解决,要把2008年1月20日前的主题,帖子,会员,完全删除后(为的是剔除重复数据),再进行合并。

51好东西 发表于 2008-2-21 17:50

[quote]原帖由 [i]51好东西[/i] 于 2008-2-20 22:29 发表 [url=http://www.bbstobbs.com/redirect.php?goto=findpost&pid=79&ptid=14][img]http://www.bbstobbs.com/images/common/back.gif[/img][/url]


好的,情况是这样的。2008年1月19日由于服务器上一个站出现问题导致服务器给网警扣押了,而我没有及时备分数据,最后一次备分的时间是2007年12月29日。服务器给扣押了,我的网站也当然无法访问了,这对于一个站长 ... [/quote]

我下面这句话好像说错了,
[quote]现在我是要把[color=red]2008年1月19日 到 2008年2月10日[/color] 这20多天的数据弄进来,[/quote]

应该是

[quote]现在我是要把原来服务器上的数据 [color=red](2007年12月29日 到 2008年1月19日)[/color] 这20多天的数据弄进来,[/quote]

51好东西 发表于 2008-2-21 18:02

[quote]原帖由 [i]白乐天[/i] 于 2008-2-20 22:52 发表 [url=http://www.bbstobbs.com/redirect.php?goto=findpost&pid=81&ptid=14][img]http://www.bbstobbs.com/images/common/back.gif[/img][/url]
明白了。你这种情况并不完全算互补。
你用12.29的数据恢复后,运行至今产生的2008年1月20日到2008年2月10日的数据,生成的tid,pid等,是与原服务器上的数据是有一部分重合的。[color=red][b]相当于两个备份各自运行过一段时间[/b][/color],而不完全是同一论坛的备份。而本工具是基于同论坛不同时期备份的互补,不会引入重合pid,tid的那部分数据。
[/quote]
[color=#ff0000]相当于两个备份各自运行过一段时间   ,,   [/color]没理解这句话的意思,我把原服务器上的数据备份出来就直接用来补呀,没有再运行



[quote]
二是使用我做的另一个合并工具,可以把那部分数据补充进去,不过那是完全合并,对你这种情况会产生大量重复数据。想要完美的解决,要把2008年1月20日前的主题,帖子,会员,完全删除后(为的是剔除重复数据),再进行合并。
[/quote]

这个也不完美呀,不可能2008年1月20日后的帖子都是新注册会员发的.那要是以前会员发的,按照老大你说的操作,都把发这个贴的会员删除了,那这个贴还会存在吗?

[[i] 本帖最后由 51好东西 于 2008-2-21 18:06 编辑 [/i]]

白乐天 发表于 2008-2-21 18:02

情况是一样的。只要两个备份分别运行过一段时间,其中的数据就会重合。无法直接将其抽离出来,需要先把这部分数据“特殊化”一下。你如果仔细看过我上楼的回复,也是可以同样处理的。我说的有什么不理解的可以提出。

白乐天 发表于 2008-2-21 18:16

[quote]相当于两个备份各自运行过一段时间   ,,   没理解这句话的意思,我把原服务器上的数据备份出来就直接用来补呀,没有再运行[/quote]

这样说吧,你的服务器运行到1.19,tid,pid等等假设增长到10000,20000。而12.29的备份,当时的tid,pid可能只有8000,16000。这样你直接用12.29备份恢复后继续运行,从tid8000~10000,pid16000~20000,就会重复生成,而这部分数据是被互补工具视作“重复”数据而不会被补充。你只有为12.29论坛的tid,pid找到当时那个新生成数据切入点,将2008年1月20日后的帖子表和主题表的tid,pid加上一个增量,以该段时期最小tid,pid值,大于1.29论坛的最大tid,pid值为准。然后再进行互补。


[quote]这个也不完美呀,不可能2008年1月20日后的帖子都是新注册会员发的.那要是以前会员发的,按照老大你说的操作,都把发这个贴的会员删除了,那这个贴还会存在吗?[/quote]

帖子是存在的,但要后台允许浏览游客发的贴才会显示。也可以不删除会员,这样会员会有重合数据,但没什么问题。

51好东西 发表于 2008-2-21 20:42

:Q
唉,太复杂了,估计我不会的

白乐天 发表于 2008-2-21 23:43

第一种方法有点麻烦,第二种应该不算太麻烦。

51好东西 发表于 2008-2-24 19:03

好的,那我就用第2种方法试一下,但是下面的我不是很懂

[quote]原帖由 [i]白乐天[/i] 于 2008-2-21 18:16 发表 [url=http://www.bbstobbs.com/redirect.php?goto=findpost&pid=91&ptid=14][img]http://www.bbstobbs.com/images/common/back.gif[/img][/url]


帖子是存在的,但要后台允许浏览游客发的贴才会显示。也可以不删除会员,这样会员会有重合数据,但没什么问题。[/quote]

但要后台允许浏览游客发的贴才会显示   

这句话是什么意思

白乐天 发表于 2008-2-25 19:31

就是后台基本设置,论坛功能,隐藏敏感帖子内容:,选择“否”

min015758 发表于 2008-5-13 12:23

感谢白老大的互补工具,虽然还是有很多帖子没了(数据库的问题),但是还是把以前的帖子合并过来了

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.