如何恢复金蝶没有备份的账套?

本文详细描述了在金蝶软件中,当账套文件丢失时,如何通过导出SQLServer数据库、新建账套并导入备份文件的方法来恢复数据。重点介绍了导出数据库命令和使用SSMS进行数据还原的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01 引言

最近我老婆在运行金蝶软件时,发现打不开了,软件修复了也没用。最重要的是没有备份账套文件!!!

可能是操作系统更新的原因,或许是其它的问题,没办法了,于是只能在新的一台电脑重新安装金蝶的软件,那么问题来了,旧电脑的账套文件如何恢复呢?

我研究了一番,大致了解了金蝶的运行流程,于是就有了本文,旨在解决“在没有备份金蝶账套的情况下,如何恢复账套?”。

02 金蝶是如何备份的?

金蝶的备份分为手动备份自动备份,我画了一张简单的流程图:

在这里插入图片描述

一般很容易忘记手动备份,或者自动备份需要等待一段周期(7天)才会备份一次,如果系统出了问题,或者没有手动备份的习惯,这是很容易导致数据丢失的。

上述的图片,表明金蝶在备份是分为如下两个文件:

  1. bak:即是备份账套的完整数据库的内容(包括表结构、表数据等);
  2. dbb:这个文件应该主要是辅助金蝶导入的一些元数据,即这个文件必须存在,才可以使用金蝶去恢复导入。

我们的想法肯定是生成之后,然后拷贝到新的电脑,直接使用新的金蝶导入账套的,但是旧电脑的金蝶软件打不开了,所以是无法备份的了。那么问题来了,这两个文件都没有,如何生成呢?。

03 导出数据库账套文件?

其实金蝶安装时,是直接顺便安装了SQLServer数据库的,新建账套时,会在SQL Server新建对应的一个数据库名与账套名一样的数据库。比如:新建了账套“XX20231013”,那么在SQLServer数据库也会新建一个数据库名为XX20231013的数据库。

所以,可以理解为账套的所有数据都存在对应数据库名的数据库里面,因此,导出该数据库,就意味着把账套的所有内容导出了,导出之后的格式跟金蝶备份到磁盘的格式一样,即:bak结尾的文件

导出命令如下(在安装金蝶的机器,打开搜索cmd,打开执行以下命令即可):

sqlcmd -S [SQL Server 实例] -Q "BACKUP DATABASE 数据库名 TO DISK='D:\数据库名.bak' WITH FORMAT"

举例(表示:将名为 “XX20231013” 的数据库备份到 “D:\XX20231013.bak” 文件中,其中 SQL Server 实例名称为 “LAPTOP-GF57IB6L\SQLEXPRESS”,这个不懂的可以请教博主如何查看):

sqlcmd -S LAPTOP-GF57IB6L\SQLEXPRESS -Q "BACKUP DATABASE XX20231013 TO DISK='D:\XX20231013.bak' WITH FORMAT"

那么bak的文件是导出来了,但是dbb文件呢?这个文件是金蝶程序生成的,我们可以不用管它,直接绕过它的“门面”,直捣黄龙😁,下面来讲讲。

04 新建一套完全一样的账套

接着在新的电脑,我们可以按照以前的步骤,在金蝶新建一套与之前一模一样的账套,忘记截图了,所以这里没图(注意的是:账套名必须与待备份的账套名一样,对应的是数据库的名称)。

新建完成之后,就相当于现在已经有了以前的账套了,只是没数据而已

05 新账套导入数据

这些数据就是存储前面步骤导出的bak文件里面(例子中的XX20231013.bak文件),我们把它拷贝到新的电脑,以准备恢复这些数据。

恢复数据之前,需要下载SSMS连接工具(也就是连接SQL Server的客户端),下载地址(免费的):https://download.microsoft.com/download/a/c/a/aca4e29f-6925-4d50-a06b-5576c6ea629f/SSMS-Setup-CHS.exe

安装完成之后,打开并进行依次如下操作:

  1. 右键单击目标数据(比如例子中的:XX20231013);
  2. 选择 “任务” > “还原”;
  3. 在 “还原数据库” 对话框中,选择 “设备”,然后单击 “…” 按钮;
  4. 在 “选择备份设备” 对话框中,单击 “添加” 按钮,然后选择你的 .bak 文件(如前面例子的:XX20231013.bak文件);
  5. 然后单击 “确定” 来开始还原操作。

注意:如果上面的还原操作失败,提示“数据库正在使用,所以无法获得对数据库独占访问权”,说明金蝶的客户端占用了该数据库的连接,需要把这些连接杀掉,然后再次执行上述步骤。可以直接在ssms里查询哪些进程占用了该数据库,然后kill掉,相关命令如下:

USE master;
-- 查询哪些进程占用了该数据库的连接,并查出spid
EXEC sp_who;
-- 根据spid 杀掉该进程
KILL spid;

上述步骤都没问题之后, 重启电脑,打开金蝶,进入账套查看,会发现之前账套的记录全部恢复了。

06 文末

很高兴自己能在短时间内给老婆解决了金蝶账套恢复的问题,主要是金蝶的教程太少了,而且很多的都是吐槽软件的问题。其实静下心来,利用自己的已有的专业知识,会发现这些问题也不是很难解决的,只要愿意去思考与尝试。

希望本文能帮助到遇到相同问题的人,欢迎关注,谢谢大家的阅读,本文完!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值