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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 如何恢复金蝶没有备份的账套?

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 文末

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

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

目录
相关文章
|
消息中间件 存储 缓存
分布式中间件核心原理与RocketMQ最佳实践
随着互联网业务的不断扩展和复杂化,分布式系统的需求也越来越迫切。为了满足这一需求,分布式中间件应运而生。在分布式系统中,中间件的角色是协调和管理各个节点之间的通信和数据交换,它起到了桥梁的作用。本文将介绍分布式中间件的核心原理和RocketMQ最佳实践,帮助读者更好地理解和应用分布式中间件。
806 107
|
开发框架 移动开发 JavaScript
uniapp优缺点
UniApp 是一个跨平台的应用开发框架,基于 Vue.js 和 Webpack,可以将代码编译成多个平台的应用,如小程序、H5、App 等。
|
3月前
|
人工智能 数据可视化 API
AI 时代,那些你需要了解的开源项目 (一) |AI应用开发平台篇
本文深入解析了Dify、n8n和Flowise三大AI应用开发平台的功能特点与适用场景。在AI技术日益普及的今天,这些工具让非专业人士也能轻松构建AI应用,助力企业实现智能化转型。并介绍了快速部署的方案
369 4
|
3月前
|
人工智能 自然语言处理 算法
2025智能客服选型指南:核心原理、关键功能与价值剖析(附2025趋势洞察)
2025年智能客服核心趋势:情感分析、全渠道整合、预测引擎及知识图谱自进化能力构成关键选型维度。以合力亿捷等先进方案为例,其融合大模型与业务流自动化技术,助力某零售企业客服效率提升50%,用户满意度增长25%。聚焦业务适配、数据治理与渐进式部署是成功核心。
|
6月前
|
存储 Java Maven
Maven系统级别依赖:解决部署时Jar包缺失问题
以上就是关于Maven系统级别依赖解决部署时Jar包缺失问题的解答,希望对你有所帮助。在软件开发中,遇到问题并解决问题是常态,希望你能够善用这些工具,解决你遇到的问题。
369 28
|
10月前
|
数据库
脏读、幻读、不可重复读的定义?
脏读、不可重复读和幻读是数据库事务处理中的三种异常现象。脏读指读取未提交的修改数据;不可重复读指同一事务中多次读取数据不一致;幻读指读取记录范围时,前后读取结果数量不一致。这些现象通常由并发事务操作引起。
387 7
|
10月前
|
存储 分布式计算 安全
阿里云服务器经济型、通用算力型、计算型、通用型各主要实例性能、适用场景对比
在阿里云目前的活动中,云服务器实例规格有几大类,分别是轻量应用服务器、经济型e实例、通用算力型u1实例,第七代计算型c7、通用型g7、内存型r7实例,第八代计算型c8i、通用型g8i、内存型r8i实例,倚天云服务器实例计算型c8y、通用型g8y、内存型r8y实例,不同类型的实例规格,性能和适用场景不同,本文将这些热门实例规格的性能和适用场景全部展示出来,以供大家做对比和选择参考,从而选择出适合自己需求的云服务器实例规格。
|
Android开发 Kotlin
kotlin开发安卓应用 如何修改app安装后的名称
在 Android 应用中,要修改安装后的显示名称,需更新 AndroidManifest.xml 文件中 application 标签的 android:label 属性。可直接在该属性内设置新名称,或在 res/values/strings.xml 文件中修改 app_name 并在 manifest 中引用。推荐使用 strings.xml 方式,以便支持多语言和集中管理。
|
搜索推荐 物联网 5G
|
Python
python中random.choice用法
python中random.choice用法
561 0