前言:由于系统损坏导致用友T+只有MDF数据库数据文件,那么该如何修复呢?下面来做详细分享说明。
1、假设某账套数据库数据文件名为:UFTData888250_000003.mdf。首先我们需要在 T+软件中建立一个账套,本例中,我们建立了一个 008 账套。
2、我们需要进数据库查看 008 账套对应的物理文件名称,点击“开始”-“所有程序”-“Microsoft SQL Server 2008 R2”-“SQL Server Management Studio”- 服务器名称选择“(local)”,身份验证选择“windows 身份验证”,点击“连接”按钮,进入 SQL2008R2 数据库企业管理器,如下图所示:
3、点击“新建查询”,输入如下 SQL 语句:select cAcc_Name as 账套名称,DsName as 数据库名称fromUFTSystem..EAP_Account,如下图所示,查到 008 账套的数据库名称为:UFTData55174_000008
4、展开 SQL2008R2 数据库企业管理器左侧数据库前面的+号,找到 UFTData55174_000008,右击并选择“属性”,查看 MDF 和 LDF 文件所在的路,如下图所示,可知物理文件存放在 C:\Program Files (x86)\Chanjet\TPlus11510\DBServer\data 下,
5、打开 C:\Program Files (x86)\Chanjet\TPlus11510\DBServer\data,查看物理文件是否确实存在,如下图所示:
6、将之前备份的 UFTData888250_000003.mdf 更名为: UFTData55174_000008.mdf
7、点击“开始”-“运行”输入 “net stop mssqlserver”停止数据库服务,(注意:如果安装的数据库实例名称不是 mssqlserver,请将 mssqlserver 改成自己的数据库实例名称)
8、将更名后的 UFTData55174_000008.mdf 拷贝到之前新建 008 账套的路径 C:\Program Files (x86)\Chanjet\TPlus11510\DBServer\data,并替换原文件,如下图所示:
9、替换完成后,点击“开始”-“运行”输入 “net start mssqlserver”启动数据库服务,(注意:如果安装的数据库实例名称不是 mssqlserver,请将 mssqlserver 改成自己的数据库实例名称)
10、此时登录 T+软件,会发现输入用户名密码后找不到对应的账套,进入 SQL 2008 R2 企业管理器,点击 UFTData55174_000008 时,提示“ 无法访问数据库 UFTData55174_000008 。(objectExplorer)”如下图所示:
11、出现上述错误的原因是由于我们新建账套的 LDF 文件,并不是恢复的账套对应的 LDF 文件,所以我们需要使用语句重建 LDF 文件。
use master
go
alter database UFTData55174_000008 set emergency
go
alter database UFTData55174_000008 set single_user with rollback immediate
go
alter database UFTData55174_000008 Rebuild Log on
(name=SuspectDB_log,filename='D:/Log/UFTData55174_000008.LDF') go
alter database UFTData55174_000008 set multi_user
go
注意查看数据库给出的提示,如下表示重建LDF文件成功了! 消息5105,级别16,状态2,第1 行出现文件激活错误。物理文件名'D:/Log/UFTData55174_000008.LDF' 可能不正确。请诊断并更正其他错误,然后重试此操作。
警告: 数据库'UFTData55174_000008' 的日志已重新生成。已失去事务的一致性。RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。应运行DBCC CHECKDB 验证物理一致性。数据库已置于dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。
12、右击 SQL 2008 R2 企业管理器左侧的数据库,选择“刷新”刷新一下数据库状态,并点开UFTData55174_000008 前面的+号,看能否正常打开。(注:在 MDF 文件无损坏的情况,按上述操作后如果正常打开,表示重建 LDF 文件成功,修复完成,如果不能正常打开,可能是操作有误, 请参照前面的步骤重新操作。)
13、注意 ,照上述方法修复后 ,008 账套的MDF文件在C:\Program Files (x86)\Chanjet\TPlus11510\DBServer\data,而 LDF 文件却在 D:\log\下,如下图所示(为了后续数据安全起见,我们需要将 MDF 和 LDF 文件放在一块):
14、在 SQL 2008 R2 企业管理器中,右击 UFTData55174_000008 选择“任务”,选择“分离”,勾上“删除链接”点击“确定”按钮,如下图所示:
15、分离成功后将 D:\log 下的 UFTData55174_000008.LDF 文件拷贝到C:\Program Files (x86)\Chanjet\TPlus11510\DBServer\data 下,如下图所示:
16、在 SQL 2008 R2 企业管理器中,左侧右击数据库,选择“附加”如下图所示:
17、在附加数据库窗口中选择 “ 添 加 ” 按钮,选择 C:\Program Files (x86)\Chanjet\TPlus11510\DBServer\data\ UFTData55174_000008,点击“确定”后,检查一下附加的数据库名称,及附加的 MDF 和 LDF 文件是否正确,确定准确无误后,点击确定,执行附加数据库操作,如下图所示:
18、附加成功后用原来备份的账套的用户名和密码登录软件,登录正常。
至此就分享完毕了,建议小伙们收藏并转发,不明白的小伙伴们可以联系我们!
补充:提供东莞用友软件,深圳用友软件,用友财务软件,仓储管理系统,用友ERP管理系统,MES系统等。