SQLSERVER数据库中的5173错误解决方法
发布时间:2024-01-23 16:25:58
标签:附加,5173错误
昨天同事给你我一个有问题的数据库,叫我修复一下因为客户那边需要这个数据库,这个数据库只有一个mdf文件和一个ldf文件,
当我附加数据库的时候报错,数据库是SQL2005
因为之前在论坛也遇到过,所以按照论坛的方法来解决,结果还是不行
把ldf文件移到别的地方,然后附加的时候使用下面SQL语句重建事务日志文件
我的数据库文件放在C:\Users\Administrator\Desktop\新建文件夹目录下
USE [master]
GO
CREATE DATABASE [AdventureWorks2012] ON
( FILENAME = N'C:\Users\Administrator\Desktop\新建文件夹\GPOSDB.mdf' )
FOR ATTACH_REBUILD_LOG
GO
报错内容:
1 文件激活失败。物理文件名称'D:\MSSSQL\Data\GPOSDB_log.LDF'可能不正确。
2 由于数据库没有完全关闭,无法重新生成日志。
3 消息 1813,级别 16,状态 2,第 1 行
4 无法打开新数据库 'GPOSDB'。CREATE DATABASE 中止。
我现在按照这篇文章再试一下
http://www.blogjava.net/kent/articles/200991.html
先新建一个GPOSDB的空库,然后停掉SQL服务
将刚才生成的数据库的日志文件GPOSDB_log.ldf删除
用要恢复的GPOSDB.mdf文件覆盖刚才生成的数据库数据文件GPOSDB.mdf
然后把有问题的GPOSDB.mdf文件放在D盘,因为我新建的GPOSDB数据库放在D盘
启动SQL服务
文章说会显示数据库置疑,但是我的没有显示置疑
设置数据库允许直接操作系统表
在SSMS里输入下面SQL语句
USE master
go
sp_configure 'allow updates', 1
go
RECONFIGURE WITH OVERRIDE
go
设置GPOSDB为紧急修复模式
ALTER DATABASE [GPOSDB] SET EMERGENCY
GO
ALTER DATABASE GPOSDB SET SINGLE_USER
GO
UPDATE sysdatabases
SET status = -32768
WHERE dbid = DB_ID('GPOSDB')
GO
但是报错
1 消息 259,级别 16,状态 1,第 1 行
2 不允许对系统目录进行即席更新。
尝试重建日志,但是语法错误,估计那篇文章是SQL2000的
1 DBCC rebuild_log('GPOSDB','D:\GPOSDB_log.ldf')
2 GO
1 消息 2526,级别 16,状态 3,第 1 行
2 DBCC 语句错误。请查阅文档以了解正确的 DBCC 语法和选项。
一查果然是
--* DBCC REBUILDLOG
--重建SQL Server 2000事务日志文件
其实一开始在步骤“设置数据库允许直接操作系统表” 就怀疑是不是SQL2000的,因为SQL2005或以后已经不能修改系统表了
最后把事务日志文件也放到D盘,然后使用下面的SQL语句来修复还是不行
ALTER DATABASE [GPOSDB] SET EMERGENCY
GO
ALTER DATABASE GPOSDB SET SINGLE_USER
GO
DBCC CheckDB (GPOSDB, REPAIR_ALLOW_DATA_LOSS)
GO
消息 5173,级别 16,状态 1,第 2 行
一个或多个文件与数据库的主文件不匹配。如果是尝试附加数据库,请使用正确的文件重试该操作。如果这是现有数据库,则文件可能已损坏,应该从备份进行还原。
日志文件 'D:\GPOSDB_log.ldf' 与主文件不匹配。该文件可能来自另一数据库,或者可能以前重新生成了日志。
消息 5123,级别 16,状态 1,第 2 行
尝试打开或创建物理文件 'D:\MSSSQL\Data\GPOSDB_log.LDF' 时,CREATE FILE 遇到操作系统错误 3(系统找不到指定的路径。)。
消息 5024,级别 16,状态 2,第 2 行
在 sysfiles1 中找不到主日志文件所对应的条目。无法重建日志。
消息 5028,级别 16,状态 2,第 2 行
系统无法激活足够的数据库来重建日志。
GPOSDB的 DBCC 结果。
CHECKDB 在数据库 'GPOSDB' 中发现 0 个分配错误和 0 个一致性错误。
消息 7909,级别 20,状态 1,第 2 行
紧急模式修复失败。您必须从备份中还原。


猜你喜欢
- jQuery中文入门指南,翻译加实例,jQuery的起点教程中文版译者:Keel此文以实例为基础一步步说明了jQuery的工作方式。现以中文
- 1 create table test(coltest varchar(20))2 实现这一功能 的 sql 语句 s
- cuda上tensor的定义a = torch.ones(1000,1000,3).cuda()某一gpu上定义cuda1 = torch.
- 你写了一个Python 3程序,还想要它适用于其他语言。你能复制全部代码库,然后刻意地检查每个.py文件,替换掉所有找到的文本字符串。但这意
- 我们知道深度神经网络的本质是输入端数据和输出端数据的一种高维非线性拟合,如何更好的理解它,下面尝试拟合一个正弦函数,本文可以通过简单设置节点
- 调试JavaScript程序时,有时需要打印函数调用的栈信息,这可以通过使用console.trace()来实现。以下面的代码为例:func
- 本文实例为大家分享了js简单计算器的实现代码,供大家参考,具体内容如下1.html代码 <input type="text&
- 以下为引用的内容: <html> <head> <title>不刷新页面查询的方法&
- 本文实例讲述了php实现XSS安全过滤的方法。分享给大家供大家参考。具体如下:function remove_xss($val) { &nb
- 一个常常令设计师和前端开发人员都头疼的事情就是字体的使用,设计师常常在设计稿中使用某些很漂亮的字体,以实现比较酷炫的界面。但这样常常给编码人
- 本文实例分析了Python操作Access数据库基本步骤。分享给大家供大家参考,具体如下:Python编程语言的出现,带给开发人员非常大的好
- 本文实例讲述了Python实现的FTP通信客户端与服务器端功能。分享给大家供大家参考,具体如下:一 代码1、服务端代码import sock
- 在blueidea上看到movoin转的一个动态加载include文件代码,接着dnawo又修改了下,我用了dnawo修改后的版本,感觉挺好
- Access允许您在数据库表中包含附件。通过利用微软的对象链接和嵌入(OLE)技术,您可以将照片、图表、文档及其他文件存储在您的Access
- 本文实例讲述了python中metaclass原理与用法。分享给大家供大家参考,具体如下:什么是 metaclass.metaclass (
- watch监听不到对象内部的变化有的时候vue会出现这种现象,无法监听到复杂对象内部的变化:当对象里面原本有某一个属性,并对这个属性操作时,
- 本文实例讲述了MySQL 的启动选项和系统变量。分享给大家供大家参考,具体如下:MySQL的配置信息可以通过两种方式实现,一种是命令行形式,
- 本文实例讲述了Python贪心算法。分享给大家供大家参考,具体如下:1. 找零钱问题:假设只有 1 分、 2 分、五分、 1 角、二角、 五
- 以前写点小程序其实根本不在乎并行,单核跑跑也没什么问题,而且我的电脑也只有双核四个超线程(下面就统称核好了),觉得去折腾并行没啥意义(除非在
- 源码:from pyecharts import Barimport reimport requestsnum=0b=[]for i in