单个账套登录报错:无法打开所请求的数据库,且DBCC报错“文件不可访问,或者内存或磁盘不足”
【问题描述】
单个账套登录报错:无法打开所请求的数据库,且DBCC报错“文件不可访问,或者内存或磁盘不足”。
【场景介绍】
前台单个账套登录报错:无法打开所请求的数据库。
后台运行DBCC CHECKDB('账套号'),结果为:文件不可访问,或者内存或磁盘不足,如下图所示:
图1 - dbcc运行结果
【解决方案】
在该场景下,初步判定为日志文件损坏,以下为日志文件损坏的修复流程,该过程中软件不能使用:
1、一般情况,建议把实体文件复制一份作为备份。直接进行复制会出现报错,需要关闭数据库服务再进行复制(如果不知道关什么,就把SQL相关的正在运行的服务都停止),复制完毕后需要重新开启之前被停止的服务。
图2 - 复制报错
图3 - 停止SQL相关服务
图4 - 启用SQL相关服务
2、在SQL Server里新建一个和损坏账套一模一样的账套号名字的数据库(如果此时损坏账套在数据库列表里,需要把损坏账套脱机或者删除)
图5 - 新建数据库
图6 - 设置好新账套的名称和路径
3、用备份好的数据库实体的mdf文件复制到新账套的存储路径里,替换新账套的mdf文件。
图7 - 替换新账套的mdf文件
图8 - 替换之后刷新数据库列表对应数据库的状态为"恢复挂起"
4、执行以下脚本(以下的AIS20230207171606都对应的账套号,新建的日志文件放置路径可自行设置,建议一条一条按顺序执行)
--修改账套为紧急模式
ALTER DATABASE AIS20230207171606 SET EMERGENCY
GO
--修改账套为单用户模式
ALTER DATABASE AIS20230207171606 SET SINGLE_USER
GO
--重建日志文件
alter database AIS20230207171606 set Emergency WITH ROLLBACK IMMEDIATE
GO
exec sp_dboption AIS20230207171606,single,true
GO
alter database AIS20230207171606 Rebuild Log on (name=AIS20230207171606,filename='D:\AIS20230207171606_log.ldf')
GO
alter database AIS20230207171606 set multi_user
GO
5、利用DBCC CHECKDB检查账套是否正常:
图9 - DBCC检查账套正常
【注意事项】
本条知识针对特定的账套数据进行分析,并不代表相同的报错一定就是这个原因引发,
相关的修复SQL也不适合直接使用,主要供读者参考,请读者根据实际情况具体分析。
单个账套登录报错:无法打开所请求的数据库,且DBCC报错“文件不可访问,或者内存或磁盘不足”
【问题描述】单个账套登录报错:无法打开所请求的数据库,且DBCC报错“文件不可访问,或者内存或磁盘不足”。【场景介绍】前台单个账套登录...
点击下载文档
本文2024-09-22 15:54:32发表“kis知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-kis-84494.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章