|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
×
只有MDF文件如何恢复成正常账套
【问题现象】
账套物理文件只有 mdf文件,没有ldf文件如何恢复数据?
【解决思路】1、将mdf文件恢复到数据库中;
【解决方案】中第1-第4步骤
2、检查账套物理文件对应的软件版本及补丁号,保证安装的软件版本及补丁号与账套数据版本及补丁号必须一致(非常重要!);
【解决方案】中第5步骤
3、账套备份,再重新恢复;
【解决方案】中第6-第9步骤
【解决方案】
1、找到电脑桌面左下角【开始】,在所有程序中找到【SQL Server xxx Management Studio】管理器,如图所示;
2、双击打开后进入数据库,选中【数据库】点击鼠标右键新建数据库,新建需要恢复成正常账套的同名数据库,在数据库名称中填入UFTData033594_448182,记录好新建数据库的路径,例如D:\Chanjet\TPlusPro\DBServer\data,可以看到新建数据库是没有任何表的;
Ps.新建数据库的路径以实际安装软件的路径为准,例如:D:\Chanjet\TPlusPro\DBServer\data
3、找到电脑桌面的【计算机】或【我的电脑】,右击点击【管理】,在服务和应用程序下面找到数据库主服务SQL Server(MSSSQLSERVER),右键停止数据库服务;
PS.默认实例的数据库名称一般是SQL Server(MSSSQLSERVER),命名实例的数据库名称以实际命名为依据,通常格式为SQL Server(实际名称)。
4、接下来恢复成正常账套的操作方式一共有两种,具体内容如下:
方案一:右键复制备份好的mdf文件,在该路径下D:\Chanjet\TPlusPro\DBServer\data(以实际路径为准)右击点击粘贴,替换掉新建的同名mdf文件后,保留同名ldf文件
参考第三步重启数据库服务
使用数据库检测修复助手修复下这个新建数据库,修复之后查看能不能正常打开,有没有表
工具链接: https://www.chanjetvip.com/product/tool/detail?id=639ad24fa2a57d2e46415353
检测完成后点击修复,提示数据库上下文已经更改
重新点检测,修复,显示数据库正常
查看数据库中的表可以正常打开即可,且文件所在路径下会形成新的ldf文件
方案二:右键复制备份好的mdf文件,在该路径下D:\Chanjet\TPlusPro\DBServer\data(以实际路径为准)右击点击粘贴,替换掉新建的同名mdf文件,替换掉新建的同名mdf文件后,同时删除新建的同名ldf文件;
参考第三步,启动数据库服务,在数据库中执行脚本,然后重建日志文件;
具体操作如下:
在数据库的右上角点击新建查询
把下段内容复制到数据库中的空白页面:
以下脚本中,【UFTData033594_448182】需要修改为需要重建日志的数据名称,【D:\Chanjet\TPlusStd\DBServer\data】需要修改为T+安装的真实路径。
use master
alter database UFTData033594_448182 set EMERGENCY
alter database UFTData033594_448182 set single_user with rollback IMMEDIATE
alter database UFTData033594_448182 Rebuild Log on (name = MyDB_log, filename = 'D:\Chanjet\TPlusStd\DBServer\data\UFTData033594_448182_log.LDF')
alter database UFTData033594_448182 set Multi_USER
执行完脚本后只要能正常打开数据库账表且数据存储路径下有LDF文件即可;
5、检查账套物理文件对应的软件版本及补丁号,保证安装的软件版本与账套数据版本必须一致(非常重要!)
5.1、 账套数据恢复到数据库中后,在账套数据库中执行语句
select * from sm_upgrade order by version,orderno
如以下截图:表中字段status=1 表示脚本执行成功,表示账套已更新到了233号补丁。
如以下截图:表示账套已更新到了37号补丁,表中字段status=1 表示脚本执行成功。
37号之后的补丁,都未执行成功,此账套的真实补丁信息是37号。
执行 delete from sm_upgrade where version>'16.000.000.0037' --删除37号补丁之后未执行的脚本信息。
5.2、在账套数据库中,执行语句,可判断账套的补丁:
select value from EAP_AccInformation where Name='UpgradeFinishFlag'
将查询出的结果,复制到网址:https://www.bejson.com/enc/base64/,进行解密,如下图:
表示账套已更新到了233号补丁
注意:最终以5.1步骤判断的版本和补丁号为准,5.2是辅助判断。
5.3、判断产品具体的版本
如果有系统库,看系统库eap_account表的Version字段,TplusPro为专业版,TplusStd为标准版,TplusPop为普及版
只有账套库的情况下,在账套数据库中,执行语句,可判断账套的版本及补丁:
select value from EAP_AccInformation where Name='UpgradeFinishFlag'
将查询出的结果,复制到网址:https://www.bejson.com/enc/base64/,进行解密,如下图:
可以看到解密出来的内容是TplusPro,也就是专业版
注意:如果执行select value from EAP_AccInformation where Name='UpgradeFinishFlag'没查询到具体内容,可继续执行脚本:select value from EAP_AccInformation where Name='ProductFlag'
将查询出来的Value值复制到 https://www.bejson.com/enc/base64/ 进行解密
6、用系统管理员登录账套,点击【新建账套】,任意新建一个空账套,启用的模块信息和用户等都无限制
7、如图所示空白账套的账套编码是000003,进入到数据库中,找到系统库,例如UFTSystemDec1700Pro,在系统库下面找到dbo.EAP_Account表,右击该表点击编辑前两百行,把空白账套的dsname改成需要恢复成正常账套的mdf文件的名称;
若系统库dbo.EAP_Account表打不开的情况可先查询空白账套的的dsname字段值
select DsName,*from EAP_Account where cAcc_Num='sss'
sss代表实际的账套编码
然后执行更新dsname字段的脚本,执行完成后提示1行受影响即可:
update EAP_Account set DsName='实际名称' where cAcc_Num='sss'
8、更新完dsname字段后,点击服务器电脑左下角【开始】-找到畅捷通T+文件夹,例如【畅捷通T+专属云17.0专业版】;在该文件夹中找到【T+账套维护工具】,然后备份账套,备份出来以后重新恢复,恢复时需要手工维护账套信息中的账套编号
9、恢复完成后可用原密码登录,若无法登录,有两种操作方式:
专属云账号问题处理工具进行检测,重置密码为123456
工具链接:https://www.chanjetvip.com/product/tool/detail?id=5ea530fd9464482f7d4a1b7e
本地账号问题处理工具进行检测,重置账号密码为123456
工具链接:https://www.chanjetvip.com/product/tool/detail?id=632d1f2a1a609301df1e0bd2
也可参考文档【如何修改T+用户的密码】
文档链接:https://docs.qq.com/doc/DUm9aR1pqamhoTUJJ
如遇修改完密码后仍然登录不了的情况,参考文档【账号或者密码不正确,或用户不在云运用开通的企业中】,更新用户的clouduserid字段
文档链接:https://docs.qq.com/doc/DUk1CYmR2Um5KS29y |
|