首页 修复SQL2000数据库置疑时出现的错误

修复SQL2000数据库置疑时出现的错误

举报
开通vip

修复SQL2000数据库置疑时出现的错误修复SQL2000数据库置疑时出现的错误 修复SQL2000数据库置疑时出现的错误 在执行最后一步dbcc checkdb(dbname) 检查完整性上出的错 服务器: 消息 8946,级别 16,状态 12,行 2 表错误: 分配页 (1:461016) 的 PFS_PAGE 页首结构值无效。类型为 0。请检查该页上的类型、对象 ID 和页 ID。 服务器: 消息 7995,级别 16,状态 1,行 1 数据库 'dbname' 在 sysobjects、sysindexes、syscolumns 或 s...

修复SQL2000数据库置疑时出现的错误
修复SQL2000数据库置疑时出现的错误 修复SQL2000数据库置疑时出现的错误 在执行最后一步dbcc checkdb(dbname) 检查完整性上出的错 服务器: 消息 8946,级别 16,状态 12,行 2 表错误: 分配页 (1:461016) 的 PFS_PAGE 页首结构值无效。类型为 0。请检查该页上的类型、对象 ID 和页 ID。 服务器: 消息 7995,级别 16,状态 1,行 1 数据库 'dbname' 在 sysobjects、sysindexes、syscolumns 或 systypes 中存在一致性错误,妨碍了进一步的 CHECKDB 处理。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 提问者: 风之辟尘 - 三级最佳答案备份数据文件,然后按下面的步骤处理: 1.新建一个同名的数据库(数据文件与原来的要一致) 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) 6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,解决办法是,利用 数据库的脚本创建一个新的数据库,并将数据导进去就行了. USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名' Go sp_dboption '置疑的数据库名', 'single user', 'true' Go DBCC CHECKDB('置疑的数据库名') Go update sysdatabases set status =28 where name='置疑的数据库名' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption '置疑的数据库名', 'single user', 'false 假设数据库为TEST: 按以下步骤执行 A(设置数据库允许直接操作系统表。此操作可以在 SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go B(设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表 C(下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf') 执行过程中,如果遇到下列提示信息: 服务器: 消息 5030,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。 正确执行完成的提示应该类似于: 警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。 D(验证数据库一致性(可省略) dbcc checkdb('test') 一般执行结果如下: CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 E(设置数据库为正常状态 sp_dboption 'test','dbo use only','false' 如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。 F(最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成 sp_configure 'allow updates',0 go reconfigure with override go 上面的语句操作步骤有点问题: 应该如下: A(我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。 B(停掉数据库服务器。 C(将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。 D(启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。 E(设置数据库允许直接操作系统表。此操作可以在 SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go F(设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表 G(下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf') 执行过程中,如果遇到下列提示信息: 服务器: 消息 5030,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。 正确执行完成的提示应该类似于: 警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。 H(验证数据库一致性(可省略) dbcc checkdb('test') 一般执行结果如下: CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 I(设置数据库为正常状态 sp_dboption 'test','dbo use only','false' 如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。 J(最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成 sp_configure 'allow updates',0 go reconfigure with override go 18回答者: 格拉底欧拉 - 五级 2008-11-29 18:49 我来评论>> 相关内容 ? sql2000数据库(置疑) 1 2008-3-4 ? 如何分析sql2000数据库置疑的原因 3 2008-10-10 ? SQL2000数据库在操作过程中突然断电引起的置疑, 1 2006-7-22 ? 谁有修复SQL2000数据库文件(.mdf和.ldf)的工具, 2010-6-12 ? SQL2000数据库不能备份如何修复 2008-11-5 更多关于sql 数据库 置疑的问题>> 查看同主题问题: sql2000 数据库 数据库 置疑 修复 等待您来回答更多 1回答 20 谁给我个dnf好感度查询器啊 能自动送礼物的那种~~~~~~~ 1回答 大家推荐一个诺基亚5230电影播放器啊~要放f4v不卡的~用uc会卡~ 2回答 50 您好,邵老师,我梦见家里墙倒向外侧,请问这是, 0回答 南京新港叉车工 培训 焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载 机构有哪些 0回答 能把《周瞳探案四剥皮者》第12章 情难自禁(3)开始,到最新的章节发... 0回答 求诺基亚手机主题的下载网站,谢谢 2回答 我爱上了拜托了老师里得老师,做梦还梦见了,咋办啊 0回答 南京新港开发区乐金显示南京有限公司的邮寄地址是什么 其他回答 共 4 条 A(我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。 B(停掉数据库服务器。 C(将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。 D(启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。 E(设置数据库允许直接操作系统表。此操作可以在 SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go F(设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表 G(下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf') 执行过程中,如果遇到下列提示信息: 服务器: 消息 5030,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出 SQL Server Enterprise Manager就可以了。 正确执行完成的提示应该类似于: 警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。 H(验证数据库一致性(可省略) dbcc checkdb('test') 一般执行结果如下: CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 I(设置数据库为正常状态 sp_dboption 'test','dbo use only','false' 如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。 J(最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成 sp_configure 'allow updates',0 go reconfigure with override go 回答者: clanboo - 七级 2008-11-29 16:33 1.新建一空数据库,点空数据库所有任务,选择导入数据,数据源选择问 题库 doc摄影基础题库高中语文题库及参考答案安全生产模拟考试平台题库选择大学英语b统考题库消防知识竞赛题库 ,目标空数据库!注意要选择"在SQL之间复制对象或数据".选择全部的表复制过去即可 2.如果还是不行,那只有用dbcc checkdb('dbname',repair_allow_data_loss) 修复受损库.但是可能会丢失数据! 回答者: 16956995 - 三级 2008-12-2 08:40 数据库出问题、客户告急、修复中、、没修好、数据要完蛋、、本想放弃、、不甘心、继续、、鼓捣半天终于搞定、、 过程如下: sql2000 表损坏时提示 select * from A 时提示 连接中断、、、、 1:首先将数据库设置成单用户模式。可以在企业管理器里选择数据库然后右键,属性,选项里改为单用户模式。or执行语句: sp_dboption '数据库名','single user','true' go 2:执行DBCC CHECKDB(数据库名) 3: 有错误提示继续执行:DBCC CHECKTABLE('表名 ',,REPAIR_ALLOW_DATA_LOSS) 如果出错的表多 那就执行这句: select 'DBCC CHECKTABLE('+''''+name+''''+',REPAIR_ALLOW_DATA_LOSS)'+'' from sysobjects where xtype='u' 然后copy出来 在查询分析器里执行即可。 这样修复数据库表容易丢失数据 不过没办法还没想到更好的方法。、、、 回答者: ?菜鸟也疯狂? - 三级 2008-12-3 11:31 这和我遇到的问题是一样的, 可以使用下面的方法进行修复(需要将数据库名修改成你的数据库名): --MyDB为修复的数据名 USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO ALTER DATABASE MyDB SET EMERGENCY GO sp_dboption 'MyDB', 'single user', 'true' GO DBCC CHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS') GO ALTER DATABASE MyDB SET ONLINE GO sp_configure 'allow updates', 0 reconfigure with override GO sp_dboption 'MyDB', 'single user', 'false' GO
本文档为【修复SQL2000数据库置疑时出现的错误】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_215732
暂无简介~
格式:doc
大小:29KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-22
浏览量:54