SQL Server附加数据库失败,823错误。
SQL Server附加数据库失败,823错误。
服务器在正常运行的情况下突然断电,导致数据库文件严重损坏。附加或还原数据库无果,在附加数据库过程中出现823字样的错误。
查阅SQL server 联机丛书中关于823错误的解释:
错误编号 : 823
严重级别 : 24
消息正文 :
在文件 '%ls' 中、偏移量为 %#016I64x 的位置执行 %S_MSG 期间,操作系统已经向 SQL Server 返回了错误 %ls。SQL Server 错误日志和系统事件日志中的其他消息中可能提供了更详细信息。这是一个威胁数据库完整性的严重系统级错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。
说明 :
Windows 读取或写入请求失败。将 Windows 返回的错误代码和相应的文本插入到消息中。对于读取操作,SQL Server 已经重试读取请求四次。通常是硬件错误导致此错误,但也可能是设备驱动程序导致的。
----------------------------------------------------------------------------------------------------------------------------------------------------------
解决办法:
1. 在企业管理器中,新建同名数据库(data_db);
2. 停止SQL Server服务,将损坏的数据库文件 data_db.mdf 替换掉刚刚新建好的数据库文件,并删除该数据库的日志文件 data_db.mdf _log.ldf;
3. 重新启动SQL Server服务,此时再打开企业管理器,发现该数据库有“置疑”字样;
4. 接下来打开SQL自带查询分析器,执行如下SQL语句:
(1)选择master系统库,打开修改系统表的开关
EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE
(2)选择master系统库,设置数据库状态为紧急修复模式
UPDATE sysdatabases set status=32768 where name='data_db'
(3)选择master系统库,执行重建data_db_log.ldf文件命令
DBCC REBUILD_LOG ('data_db', 'D:\database_fix\data_db_Log.LDF')
(4)选择master系统库,关闭数据库紧急修复模式
UPDATE sysdatabases set status=0 where name='data_db'
(5)选择data_db,执行恢复数据库命令
RESTORE database data_db WITH RECOVERY
(6)选择master系统库,关闭打开修改系统表的开关
EXEC sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE
----------------------------------------------------------------------------------------------------------------------------------------------------------
通过以上六个步骤把数据库恢复后,数据库表里还有损坏的表(tb_damage),将坏表导出或修改的时候可能会无响或者不成功。可以尝试 DBCC CHECKTABLE 命令,例 :
DBCC CHECKTABLE ('tb_damage' , REPAIR_ALLOW_DATA_LOSS)
以上内容谨供本人日后查阅
SQL Server附加数据库失败,823错误。相关推荐
- SQL Server附加数据库失败:无法打开物理文件,操作系统错误5:拒绝访问”解决方法
在Windows2008/Win7以上操作系统附加时,会出现此错误,这是由于Windows的文件访问权限问题引起的,解决方法有两种: 一.设置当前操作系统用户对数据库文件所在的文件夹具有完全控 ...
- SQL Server附加数据库错误5123,另一个进程正在调用
情况一:在使用sql server附加数据库时,出现了 首先,我想讲一个故事:我想拿自己的银行卡,取出父亲银埋在家中30米地下的钱 这两个对象的位置是同一个吗?显然不是 出现此报错的原因是,我在自己的 ...
- SQL Server 附加数据库
SQL Server 附加数据库 本节主要阐述如何向SQL Server 2008 附加已有的数据库文件. 关键词:SQL Server 2008:附加数据库 一 准备文件:复制.MDF与.LDF 二 ...
- SQL Server附加数据库(2005)
SQL Server2005实现附加数据库操作: (1)通过SQL Server2005管理器工具实现. 步骤: 1.登录SQL Server2005管理器工具. 2.分离数据库.在"数据库 ...
- 使用SQL Server发布数据库快照遇到错误:对路径”xxxxx“访问被拒绝的解决方法...
2019独角兽企业重金招聘Python工程师标准>>> 使用SQL Server发布数据库快照的配置中,如果你选择了使用SQL Server代理,而SQL Server代理服务使用的 ...
- 在SQL Server 2005数据库中进行错误捕捉
在SQL Server数据库中,如果执行Transact-SQL时出现了错误,我们可以使用两种捕捉错误的方法解决此问题,一种是在客户端代码(如c#.delphi等)中使用类似try...catch的语 ...
- sql server 附加数据库 错误5123 解决办法
错误实例: 解决办法: 1. 修改权限: a: 将这个机房收费系统文件夹设置成完全控制: b: 将文件夹中的charge_sys_data.MDF中的user设置成完全控制(原因是有些电脑出不来u ...
- MSSQL - SQL Server2008附加数据库失败 错误号:5120
附加数据库时,显示错误,错误信息为 一种解决方法为,设置mdf文件所在文件夹的权限(有些资料说只设置mdf文件的权限就好,但我试了不管用),在文件夹上右击--属性--安全,如图所示: 选择组或用户名中 ...
- SQL Server2008附加数据库失败
今天旁晚时分,我准备把老师在上课时候发给我们的一个数据库附加到我的SQL Server2008上面去,本来在学校机房用的SQL Server2000是很顺利地就成功了,但是把*.mdf文件附加到我的0 ...
最新文章
- 365Rss.cn Beta 1.0 (内测版本)更新 2007-1-18:速度、人性化、简洁化
- TCP/IP网络协议的通俗理解,socket,http,soap。
- 5 加盐_小葱拌豆腐的5种做法,收藏起来慢慢学!
- 成功解决tensorflow.keras: AttributeError: ‘str‘ object has no attribute ‘decode‘
- C语言 回调函数 produce(arr,len,getRand)
- etag java_你知道HTTP协议的ETag是干什么的吗?
- U盘安装Ubuntu
- 使用Expression实现数据的任意字段过滤(1)
- Linux C多线程编程
- CnOpenData中国海关统计数据
- 第5章第24节:如何在幻灯片中播放视频文件 [PowerPoint精美幻灯片实战教程]
- 不要在意FIl短期,FIl未来价值可期
- MEX and Increments
- DLink624+A拨号失败的问题
- D3D坐标系统下3D世界坐标映射到2D屏幕坐标的平移矩阵
- 【2021版】吐血整理_专升本计算机文化基础—Word2010
- 求个人所得税和税后收入
- Easy-Pay一行代码解决支付宝微信支付功能
- git同步本地与远程代码命令
- RDF查询语言SPARQL