sql 2008R2系统表损坏

某客户单位,一台运行服务器突然出现故障不能进入系统,里面有运行的用友数据库,出现故障后自己公司DBA以及运维折腾了将近一星期后来能够进入系统了发现数据库已经无法正常使用,且所有之前6月份备份都损坏了,最近的备份也只有4月30号的,询问那边做过什么操作时,客户已经描述不清,无奈只能让客户发库过来看,客户是用友U8数据库运行平台为2008r2.

对数据MDF文件进行损坏发现很多物理页面损坏,先直接重建日志DBCC检测一下看看,在2008R2平台下重建日志之后发现DBCC语句根本无法查询跟运行,直接报错

消息 8921,级别 16,状态 1,第 1 行
检查已终止。收集事实数据时检测到错误。可能是 tempdb 空间用尽或某个系统表不一致。请检查前面的错误消息。

出现这个错误不管是DBCC查询还是修复语句都无法正常执行,一般此错误都是系统表损坏导致,之前已经检测到页面损坏的情况了,先将页面损坏全部修复,客户提供l了一个4月30号数据备份,因此可以参照备份尝试修复,修复之后开始查找损坏的表数据看看是哪些表损坏,把损坏的表记录下来进行单独对表修复,DBCC  checktable(XX,repair_allow_data_loss),但是对损坏厉害的表发现修复语句依然报错不能正常修复,报错结果为:修复失败  如需修复此错误 请先修复其他错误。

一般为表所在页面或许系统表有错乱或损坏导致,大家可以借鉴下百度一篇修复系统表帖子:http://wenku.baidu.com/link?url=HJukdgSFmEEb-_FxsjoUUKx7xUviC_kF2tLISI7cgG8sICWmMZH3tNumFV7Jqhuw-1wa1-2CP5-eEno_kErTusQv2LcuRkWiOPeoYQQyj-y

此方法太过繁琐,最后研究发现可以通过直接修改其他参数之后再次进行DBCC语句修复即可顺利执行进行修复。

最后再次进行DBCC库检测发现全部OK没有数据报错!

时间: 2024-10-17 17:59:20

sql 2008R2系统表损坏的相关文章

SQL Server系统表sysobjects介绍与使用

原文:SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器.你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工. 这就让sysobjects表格有了用武之地.虽然我不建议你更新这个表格,但是你当然有权对其进行审查. sysobjects 表 在数据库内创建的每个对象(约

SQL Server系统表sysobjects介绍与使用(转)

SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器.你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工. 这就让sysobjects表格有了用武之地.虽然我不建议你更新这个表格,但是你当然有权对其进行审查. sysobjects 表  在数据库内创建的每个对象(约束.

SQL Server系统表sysobjects介绍

SQL Server系统表sysobjects 介绍 sysobjects 表结构: 列名 数据类型 描述 name sysname 对象名,常用列 id int 对象标识号 xtype char(2) 对象类型.常用列.xtype可以是下列对象类型中的一种: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 IF = 内嵌表函数  P = 存储过程  PK = PRIMARY KEY 约束(类型是 K) 

Sql 2000系统表 语句查询表结构

SQL2000系统表的应用 –1:获取当前数据库中的所有用户表 select Name from sysobjects where xtype='u' and status>=0 –2:获取某一个表的所有字段 select name from syscolumns where id=object_id('表名') –3:查看与某一个表相关的视图.存储过程.函数 select a.* from sysobjects a, syscomments b where a.id = b.id and b.

ms sql server 系统表详细说明

sysaltfiles  主数据库 保存数据库的文件 syscharsets  主数据库字符集与排序顺序 sysconfigures 主数据库 配置选项 syscurconfigs 主数据库当前配置选项 sysdatabases 主数据库服务器中的数据库 syslanguages 主数据库语言 syslogins 主数据库 登陆帐号信息 sysoledbusers 主数据库 链接服务器登陆信息 sysprocesses 主数据库进程 sysremotelogins主数据库 远程登录帐号 sysc

sql server 系统表系统视图 及作用说明

sql server 系统视图,可分为: 目录视图   兼容性视图    动态管理视图和函数    信息架构视图    复制视图 系统表: sysaltfiles主数据库 保存数据库的文件 syscharsets主数据库字符集与排序顺序 sysconfigures主数据库 配置选项 syscurconfigs主数据库当前配置选项 sysdatabases主数据库服务器中的数据库 syslanguages主数据库语言 syslogins主数据库 登陆帐号信息 sysoledbusers主数据库 链

SQL SERVER系统表和常用函数介绍

sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项sysdatabases 主数据库 服务器中的数据库syslanguages 主数据库 语言syslogins 主数据库 登陆帐号信息sysoledbusers 主数据库 链接服务器登陆信息sysprocesses 主数据库 进程 sysremotelogins主数据库 远程登录帐号syscolumn

sql server2008系统表详细说明sys.开头的表

一.库里有多少个表,表名等 select * from INFORMATION_SCHEMA.TABLES 二.查询表.字段.类型.是否主键.长度.小数位.是否允许空.默认值等详细查询 效果: SELECT (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空 a.colorder as 字段序号, a.name as 字段名, (case when COLUMNPROPERTY( a.id,a.name,'IsI

SQL SERVER系统表

sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项sysdatabases 主数据库 服务器中的数据库syslanguages 主数据库 语言syslogins 主数据库 登陆帐号信息sysoledbusers 主数据库 链接服务器登陆信息sysprocesses 主数据库 进程 sysremotelogins主数据库 远程登录帐号syscolumn