一、工具概述
本工具是通过导表手段修复T+数据损坏的工具,仅支持T+产品,T1、T3、T6等产品并不支持。使用工具前,请尽量不要使用【Repair_Allow_Data_Loss】模式对数据进行修复(社区的数据库修复助手使用的就是该模式),以免数据丢失或数据混乱。
二、使用环境
1、操作系统:支持Windows7 、Windows Vista、Windows8、Windows10
【仅支持64位系统】
注意:非纯净版本的Win7、以及Windows server(服务器专用系统)可能会因为兼容性问题无法打开工具。
2、数据库版本:需要有损坏账套一样版本的数据库环境
例如:损坏的账套是Sql2016,那么修复环境必须有Sql2016的数据库(数据库的具体版本可以不一致,比如Sql2008r2 和Sql2008Rtm,工具视同Sql2008)
3、T+环境:并不要求一定要有T+环境,修复和是否有T+环境没有必然关系。
PS:有T+环境只是可以修复后立刻测试。
三、使用说明
1、目录构成说明
【Config】是存放配置文件的位置
【Data】是存放恢复的数据的位置
【help】是存放说明和T+字典的位置
【logs】是存放日志的位置
【temp】文件夹是存放临时数据的位置
TplusDBmend.exe是修复工具的二进制可执行程序
以上是工具的基本构成部分,请保证放到一个非桌面路径的文件夹下,请勿随意删除(虽然仅有TplusDBmend.exe时,打开会自动生成这些文件夹,但是help文件夹下的说明和字典不会重建)
2、工具说明
2.1模式说明
A、双击TplusDBmend.exe
B、选择对应的修复模式
【数据库模式】对应的情况:虽然无法备份账套,但是数据库列表里还可以访问对应的账套数据,可以读出账套信息的情况。
【ZIP备份模式】对应的情况:能正常备份数据,只是特定的操作会报错,或者打补丁时提示数据损坏的情况。
2.2配置说明
A、进入模式(以ZIP模式图为例)
B、点开配置选项
2.2配置说明:
数据库配置部分
【服务器】:指的是数据库实例名和服务器名的组合
举例:1、比如本机是默认实例,本机IP 是192.168.2.3,本机计算机名字叫PSX 则服务器这里填写【192.168.2.3】 ,【127.0.0.1】、【PSX】、【.】均正确
2、比如本机实例名叫SQL2016,本机IP 是192.168.2.3,本机计算机名字叫PSX 则服务器这里填写【192.168.2.3\SQL2016】 ,【127.0.0.1\SQL2016】、【PSX\SQL2016】、【.\SQL2016】均正确。
【用户名】:指的是数据库管理员权限的账号
PS:通常我们指的是SuperAdmin,填写的是SA
【密码】:指的是和用户名对应的密码
PS:通常填写SA对应的密码
【测试连接】:用来测试数据库配置是否正确的按钮,填写完毕后记得测试下。
模式配置部分
【是否清除冗余数据】:是专门针对ZIP修复模式的,如果勾选【是】,则修复完毕之后,会删除数据库中修复时产生的冗余数据,并且会清理Data文件夹下修复产生的多余文件。反之,则会生成多余的数据在数据库和Data文件夹下,而不会自动清除。(后期可以用【重置状态】去清除)
【预留输出模式】:该选项是制作者多做出来以备不时之需的功能,目前没有任何作用,勾选的选项不对修复产生任何影响。
【是否补全备用账套】:是专门针对ZIP修复模式的,如果勾选【是】,会在备用账套没有选择的时候,默认以空账替代。反之,则不会选择任何数据,这会导致校验数据有没有选择时无法通过。
【是否手动添加修复表】:两个模式下均有效,勾选【是】,会在检测完坏表之后,弹出坏表列表的时候,允许手工加入要修复的表名(专门针对特定表需要特别修复的情况)。反之,则不允许修改和增加修复的表名,当没有损坏的表的情况下,甚至不会弹出坏表列表。
2.3实际修复操作
2.3.1 数据库修复模式
A、打开程序选择【数据库模式】
B、打开选项配置,做好配置
C、点击【连接】,去选择对应的数据库
注意:坏账、空账、备用账套是三个独立的数据库不能重复选择。
备用账套是用空账改名恢复的账套,PS:特殊情况下是用账套之前正常的备份
D、点击【开始修复】,等待坏表检测
注意:如果选了【是否手动添加修复表】的【是】,中间一定会弹出损坏表列表。
如果勾选【是否手动添加修复表】的【否】,并且没有检测到坏表,不会弹框,会自动跳入下个步骤
E、完善并确认完坏表能否修复,点击【确认】继续修复,【退出】则结束修复
注意:这里的完善是指【研发老师】或者支持网老师有指出有特定表要单独修复的情况,通常不需要添加,直接点击【确认】,不清楚是否关键表的情况下,可以通过【帮助反馈】按钮跳转选择T+字典查看
F、等待后续的修复步骤自动结束。
注意:如果出现报错,通过主窗体的【日志】去查看原因。
如果没有报错,直接修复完成,修复后的数据为:【新建的空账】对应的数据库
G、后续操作:把数据库服务停止,将新建的空账的数据库名字改成坏账的数据库名字,替换覆盖,而后重启数据库即可(操作前:记得备份好坏账的物理文件)
2.3.2 ZIP修复模式
A、打开程序选择【ZIP备份模式】
B、打开选项配置,做好配置
C、点击【打开文件】选择对应的T+zip备份。
注意:如果勾选了【是否补全备用账套】的【是】,没有选择备用的账套的时候,软件会自动把空账备份填到对应位置。反之,则不会自动补充。
PS:备用账套的目的是在有表损坏的时候,从备用账套替换过去。
D、点击【开始修复】,等待坏表检测
注意:如果选了【是否手动添加修复表】的【是】,中间一定会弹出损坏表列表。
如果勾选【是否手动添加修复表】的【否】,并且没有检测到坏表,不会弹框,会自动跳入下个步骤
E、若检测发现坏表,工具则无法继续修复,请您提交支持网问题并上传对应的空白账套与损坏账套。
F、等待后续的修复步骤自动结束。
注意:如果出现报错,通过主窗体的【日志】去查看原因。
如果没有报错,直接修复完成,修复后会自动跳转到工具下的Data\OKzip下,显示出修复后的备份(原备份+(repaired)命名的zip包)
如果勾选了【是否清除冗余数据】的【是】,则会将修复过程中产生的额外数据都清除,反之则不会。
四、注意事项
Q1:打不开工具,要怎么办?
A1:工具有些服务器操作系统不兼容,需要更换系统环境,修复只要在数据库版本一致的环境即可,修复好后一样可以恢复备份去验证。
Q2:数据库连接(信息都填写正确,为何还是无法连接)
A2:考虑是Tcp\Ip和Named Piped协议没开
【注:开启协议后需要重启数据库服务才可生效】
Q3:报错了,但是不清楚具体的原因
A3:可以看日志,将日志信息反馈支持网工程师
Q4:修复后的数据是否能继续使用
A4:如果
1、只有总账、报表等简单的财务模块
2、没有做过二开
3、没有检测出损坏的表
4、补丁版本能正常升级,是可以继续使用的。
但是即便如此,这里依旧不建议继续使用账套,如果要使用,依然建议横向导入一个新的账套去做账。
Q5:为什么一直用的好好的,突然就数据损坏了,以后继续使用要如何避免。
A5:数据损坏有以下的原因:
1、异常断电2、硬盘故障3、计算机病毒4、数据库软件异常
Q6:如何减少损坏的情况:
A6:1、尽量避免异常关机2、定期检查维护硬盘3、做好计算机防毒工作4、尽量使用SQL2012以上版本的数据库5、升级至t+cloud