数据库823错误解决方法

上传人:工**** 文档编号:512330737 上传时间:2023-09-11 格式:DOCX 页数:12 大小:29.94KB
返回 下载 相关 举报
数据库823错误解决方法_第1页
第1页 / 共12页
数据库823错误解决方法_第2页
第2页 / 共12页
数据库823错误解决方法_第3页
第3页 / 共12页
数据库823错误解决方法_第4页
第4页 / 共12页
数据库823错误解决方法_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《数据库823错误解决方法》由会员分享,可在线阅读,更多相关《数据库823错误解决方法(12页珍藏版)》请在金锄头文库上搜索。

1、标题:MySQLMSSQL数据库823错误解决方法出处: 时间: Sat, 12 Apr 2008 10:12:27 +0000作者: ah011地址: http:/ 832,请问要如何解决?use mastergosp_configure allow updates,1goreconfigure with overridegoupdate sysdatabases set status=-32768 where dbid=DB_ID(linyi_pljy)godbcc rebuild_log(linyi_pljy,e:Program FilesMicrosoft SQLServerMSSQL

2、Datalinyi_pljy_log.ldf)gosp_dboption linyi_pljy,dbo use only,falsegosp_configure allow updates,0goreconfigure with overridego 2.附加数据库文件时,提示823错误(1)朋友单位有台电脑的数据库 ufdata_001_2008 状态为置疑,我断开再附加 时提示如下图所示说明,附加时失败,错误 823。原因分析:出现这种情况可能是由于电脑忽然断电或者异常关机造成的。 解决方法:在SQL企业管理器中,新建同名数据库ufdata_001_2008,新建库后现有数据名称是 ufd

3、ata_001_2008.mdf 和 ufdata_001_2008_log.LDF; 停止数据库,把损坏的数据库文件 ufdata.mdf 和 ufdata.LDF 修改名称为 ufdata_001_2008.mdf 和 ufdata_001_2008_log.LDF,并覆盖刚才新建数据库目 录下的数据,同时删除ufdata_001_2008_log.LDF文件;启动数据库服务,发现数据库名ufdata_001_2008后面有“置疑”字样;打开SQL自带查询分析器,执行如下SQL语句:use master goexec sp_configure allow updates,1 RECONFI

4、GURE WITH OVERRIDE /* 打 开修改系统表的开关 */goupdate sysdatabases set status=32768 where name=ufdata_001_2008 /* 设 置数据库状态 */goDBCC REBUILD_LOG (ufdata_001_2008,E:ufdataufdata.LDF) /* 重建LDF文件*/goupdate sysdatabases set status=0 where name=ufdata_001_2008 /* 重置数据库状态 */gorestore database ufdata_001_2008 WITH R

5、ECOVERY /* 恢复数据库 */goexec sp_configure allow updates,0 RECONFIGURE WITH OVERRIDE /* 关 闭打开修改系统表的开关 */执行以上语句后,ufdata_001_2008没有了置疑状态,数据可以正常读取了(2)use mastergoEXEC sp_configure allow updates,1 RECONFIGURE WITH OVERRIDE /* 打 开修改系统表的开关 */update sysdatabases set status = 32768 where name = 数据库名DBCC REBUILD

6、_LOG (数据库名, E: dzzdatabase dzz1204_Log.LDF ) update sysdatabases set status = 0 where name = 数据库名 restore database 数据库名 WITH RECOVERYEXEC sp_configure allow updates,0 RECONFIGURE WITH OVERRIDE /* 关 闭打开修改系统表的开关 */3 因为停电等原因造成 MSSQL 数据库,提示 823 错误USE MASTERGOsp_dboption databaseName, single user, true G

7、oDBCC CHECKDB(databaseName, REPAIR_REBUILD) GoUSE databaseNamegoexec sp_msforeachtable DBCC CHECKTABLE(?,REPAIR_REBUILD) gosp_dboption databaseName, single user, falseGo如果还不行,可以采用允许丢失数据的方式修复,如下:USE MASTERGOsp_dboption databaseName, single user, trueGoDBCC CHECKDB(databaseName, REPAIR_ALLOW_DATA_LOSS

8、)GoUSE databaseNamegoexec sp_msforeachtable DBCC CHECKTABLE(?,REPAIR_REBUILD) gosp_dboption databaseName, single user, falseGo 4.数据库恢复资料SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据 库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件Idf的方式。 下面将主要讨论一下后者的备份与恢复。本文假定您能熟练使用 SQL Server Enterprise Manager(SQL Server 企业管理器)和 SQ

9、L Server Quwey AnaIyser(SQL Server 查询分析器)1、正常的备份、恢复方式 正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器 中断开,或者停掉整个数据库服务器,然后复制文件。卸下数据库的命令:Sp_detach_db数据库名连接数据库的命令: Sp_attach_db 或者 sp_attach_singIe_fiIe_db s_attach_db db name =,db name: file namel = file name_n,,.16 sp_attach_s in gle_file_db db name = db name: phy

10、s name =physical, name使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要 点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数 据文件,ldf是数据库日志文件。例子:假设数据库为test,其数据文件为test_data.mdf,日志文件为test_log.ldf。下 面我们讨论一下如何备份、恢复该数据库。卸下数据库: sp_detach_db test连接数据库: sp_attach_db test,C:Program FilesMicrosoft SQL ServerMSSQLDatatest_data

11、.mdf,C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.ldfsp_attach_single_file_db test,C:Program FilesMicrosoft SQL ServerMSSQLDatatest_data.mdf2、只有mdf文件的恢复技术由于种种原因,我们如果当时仅仅备份了 mdf文件,那么恢复起来就是一件很 麻烦的事情了。如果您的 mdf 文件是当前数据库产生的,那么很侥幸,也许你使用 sp_attach_db 或者 sp_attach_single_file_db 可以恢复数据库,但是会出现类似下面的提示

12、信 息设备激活错误。物理文件名 C:Program FilesMicrosoft SQL ServerMSSQLdatatest_Log.LDF 可能有误。已创建名为 C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.LDF 的新日志文件。 但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上 述办法就行不通了。你也许会得到类似下面的错误信息服务器: 消息 1813,级别 16,状态 2,行 1未能打开新数据库test。CREATE DATABASE将终止。 设备激活错误。物理文件名 d:test_log.LDF 可能有

13、误。 怎么办呢?别着急,下面我们举例说明恢复办法。A. 我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager 里面建立。B. 停掉数据库服务器。C. 将刚才生成的数据库的日志文件test_logdf删除,用要恢复的数据库mdf 文件覆盖刚才生成的数据库数据文件test_data.mdf。D. 启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对 此数据库进行任何操作。E. 设置数据库允许直接操作系统表。此操作可以在SQL Server EnterpriseManager里面选择数据库服务器,按右键,选择“

14、属性”,在“服务器设置”页面中 将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。use mastergosp_configure allow updates,1goreconfigure with overridegoF. 设置test为紧急修复模式update sysdatabases set status=-32768 where dbid=DB_ID(test) 此时可以在SQL Server Enterprise Manager里面看到该数据库处于只读置疑 脱机紧急模式”可以看到数据库里面的表,但是仅仅有系统表G. 下面执行真正的恢复操作,重建数据库日志文件dbcc r

15、ebuild_log(test,C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.ldf)执行过程中,如果遇到下列提示信息: 服务器: 消息 5030,级别 16,状态 1,行 1未能排它地锁定数据库以执行该操作。DBCC执行完毕。如果DBCC输出了错误信息,请与系统管理员联系。brown 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL ServerEnterprise Manager 打开了 test 库的系统表,那么退出 SQL Server Enterprise Manager 就可以了。正确执行完成的提示应该类似于:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号