博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库修复
阅读量:4210 次
发布时间:2019-05-26

本文共 1868 字,大约阅读时间需要 6 分钟。

盐酸特比萘芬凝胶

CREATE UNIQUE NONCLUSTERED INDEX [pk_idcode] ON [dbo].[IDCODE] 
(
    [IDCODE] ASC
)

数据库 CHECKDB 发现了x个分配错误和 x 个一致性错误

现在以数据库text为例,说明该问题的处理方法:
--1、在SQL查询分析器中执行以下语句:(注以下所用的text为数据库名称,请用户手工改为自己的数据库名)
use pg
dbcc checkdb;
DBCC CHECKDB WITH NO_INFOMSGS;
默认情况下,CheckDB命令会将输出所有的信息,但通常我们并不关心这些信息,而是只关心错误信息,
因此实际中通常给DBCC指定不显式信息的参数,如代码清单3所示。

--2、查看查询结果,有很多红色字体显示,最后结果有这样的提示:
--CHECKDB --发现了x个分配错误和 x 个一致性错误(在数据库 'text' 中)。
--一般情况下,引起分配错误的原因是磁盘损坏或突然停电;一致性错误可能是数据库中的表或索引坏,一般都可修复。
--3、查看红色字体,并把有错误的数据库表名记录下来,或把索引损坏的表名记录下来。
--4、把数据库设置为单用户模式,直接在查询分析器中执行以下语句即可:(如发现语句运行不成功,请把用户的电脑注销一下,后再重新运行一下。)
EXEC sp_dboption 'pg', 'single user', 'TRUE'  
--5、进入查询分析器执行如下语句:
use text

EXEC sp_dboption 'pg', 'single user', 'TRUE'  

dbcc checkdb ('pg',REPAIR_REBUILD)           -------执行不会丢失数据的修复
dbcc checkdb('pg',repair_allow_data_loss)  -------修复数据库
EXEC sp_dboption 'pg', 'single user','FALSE'

--6、再执行:dbcc checkdb,检测数据库,出现结果为:

--CHECKDB  发现了0个分配错误和 0个一致性错误(在数据库 'text' 中)。
--数据库已经修复完毕。
--7、取消单用户模式,即直接在查询分析器中执行以下语句即可:
EXEC sp_dboption 'pg', 'single user','FALSE'
这样这个数据库的错误修复就完成了。然后停止掉SQLSERVER,重新启动服务器就可以。
DBCC CHECKDB (xb28,repair_allow_data_loss)
执行以上修复,可能会丢失一些数据.
如果没有备份,也只能这样.
别盲目用数据库修复
用表修复

SELECT OBJECT_NAME(ID)--获取表名

--获取所有表 
select s.name as NAME, convert(varchar(100),  p.value) as COMMENT from sysobjects as s  
left join sys.extended_properties as p on s.id=p.major_id and p.minor_id=0  
where s.xtype='u'  、

EXEC sp_dboption 'pg', 'single user', 'TRUE'  

DBCC CHECKTABLE(tablename)--检查
DBCC CHECKTABLE(IDCODE,REPAIR_REBUILD);--修复
DBCC CHECKTABLE(IDCODE,REPAIR_ALLOW_DATA_LOSS);--尝试修复报告的所有错误。 这些修复可能会导致一些数据丢失
EXEC sp_dboption 'pg', 'single user','FALSE'

select convert(varchar(10),MAKEDATE,120),COUNT(*) 

from dbo.IDCODE 
group by convert(varchar(10),MAKEDATE,120)

--有错误时再用以下命令修复
DBCC CHECKTABLE(IDCODE,REPAIR_ALLOW_DATA_LOSS );--修复
--REPAIR_ALLOW_DATA_LOSS --可能会造成数据丢失,所有安全起见,先用REPAIR_REBUILD 能修复时就不用这命令

转载地址:http://fzrli.baihongyu.com/

你可能感兴趣的文章
Entity Framework First Code 的一些网址
查看>>
linq 的查询的学习 (google 中输入 101 linq) -- select的应用
查看>>
Sql中 union all 的用法
查看>>
j-query中 live方法的应用
查看>>
加载IE9 不支持 3D, 但IE10支持3D
查看>>
用sql脚本 来查询指定表的所有列名称
查看>>
php 中 查询数据前五条
查看>>
解决 Asp.net 中,url传参乱码 方法之一:(UrlDecode)
查看>>
在Asp.net中,(Entityframework,Linq的写法中) .ToList().Take(10)与.Take(10).ToList() 的区别
查看>>
在Asp.net中,Web.Config中 membership 及 roleManager 的配置:
查看>>
打开php的方法 或 工具
查看>>
HTTP 错误 403
查看>>
Js - 可拖动可改变大小div的实现代码
查看>>
网页中抓取数据 搜索 获取以下的网址
查看>>
打开一个现有的php 网站
查看>>
pdf的转换网址:
查看>>
js 拖动div 并改变div大小 的搜索网址
查看>>
(在VM中安装苹果系统)VMware Workstation 9 安装 MAC OS 10.8全程图解(超详细,百图杀猫)
查看>>
苹果系统:MonoTouch的学习 网址( Hello,Iphone)
查看>>
截取两个字符串之间不同的部分 sql脚本(可以延伸到进一步判断两字符串之间的相同部分)
查看>>