前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库置疑处理_sqlserver可疑数据库恢复

数据库置疑处理_sqlserver可疑数据库恢复

作者头像
全栈程序员站长
发布2022-09-23 10:40:52
8630
发布2022-09-23 10:40:52
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君 现象说明:新备份出的数据库Geb,在还原时报错”Microsoft SQL-DMO (ODBC SQLState: 42000)”

解决方法:

分离出还原失败的数据库Geb 先创建一个同样的数据库Geb 停掉server服务,用旧的数据文件覆盖新创建的文件(只要mdf就可以)。 启动server服务 运行以下命令 sp_configure ‘allow’ ,1 reconfigure with override update sysdatabases set status=32768 where name=’Geb’ dbcc rebuild_log(‘Geb’,’d:\database\newlog.ldf’) update sysdatabases set status=0 where name=’Geb’ sp_configure ‘allow’,0 reconfigure with override dbcc checkdb(‘Geb’)

若发现有错误,还要进一步找出出错的地方,可以先检查 DBCC CHECKTABLE (sysobjects) DBCC CHECKTABLE (sysindexes) DBCC CHECKTABLE (syscolumns ) DBCC CHECKTABLE (systypes) DBCC CHECKTABLE ( ‘表名 ‘,REPAIR_ALLOW_DATA_LOSS) DBCC CHECKDB ( ‘database_name ‘ ,REPAIR_ALLOW_DATA_LOSS ) dbcc dbreindex(’database_name.dbo.Employee’,’’,90)

WITH NO_INFOMSGS DBCC CHECKTABLE(‘dbo.xxx’)

‘dbo.xxx’是表面,查到有50个一致性错误

然后用下面的语句进行修复: alter database 你要修复的数据库名 set single_user with rollback immediate go dbcc checktable(‘dbo.xxx’,repair_allow_data_loss) go

修复无错后注意要恢复数据库的多用户使用状态,否则整个数据库处于锁定状态,一次只能有一个人访问。

alter database 你要修复的数据库名 set multi_user

go exec sp_dboption ‘你的数据库名 ‘, ‘single user ‘, ‘true ‘ Go

DBCC CHECKTABLE( ‘库存管理_库存明细帐1 ‘,repair_allow_data_loss) go

sp_dboption ‘你的数据库名 ‘, ‘single user ‘, ‘false ‘ Go

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171436.html原文链接:https://javaforall.cn

...

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档