新闻建站cms系统、政府cms系统定制开发

广州网站建设公司-阅速公司

asp.net新闻发布系统、报纸数字报系统方案
/
http://www.ysneo.com/
广州网站建设公司
您当前位置:首页>sqlserver数据库

sqlserver数据库

sql2000附加损坏的mdf文件和dbcc修复数据库

发布时间:2024/7/7 16:38:38  作者:Admin  阅读:83  

广告:

sql2000附加损坏的mdf文件和dbcc修复数据库

1 可用高版本如sqlserver 2008 r2来附加,找出mdf和log所在原始的目录位置。(但是不能附加成功)

2 再在sql2000企业管理员新建同名数据库,位置要和原始路径一一对应。用损坏的mdf替换新建的mdf文件,再启动服务

3 进入查询分析器(不要选择数据库进入,会提示sa登录失败)

use master
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='test' --紧急修复模式

会提示:未启用对系统目录的特殊更新。系统管理员必须重新配置 SQL Server 以允许这种操作。

运行:
sp_configure 'allow updates',1
RECONFIGURE WITH OVERRIDE

可检查 dbcc checkdb('test') with no_infomsgs --只显示错误信息

sp_dboption 'test', 'single user', 'true'

会提示:
未处理修复语句。数据库需要处于单用户模式下。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

再运行:
use master
sp_dboption 'test', 'single user', 'true'

再运行:
use master
sp_dboption 'test', 'single user', 'true'

dbcc checkdb('test',REPAIR_ALLOW_DATA_LOSS)
会提示:未能读取并闩锁页 (1:199)(用闩锁类型 SH)。sysindexes 失败。

由于数据移动,未能继续以nolock方式扫描

恢复正常模式:
update sysdatabases set status =28 where name='test'

处理sql脚本:
osql -S HAO-PC\SQL2001 -U sa -P 123456 -d test_3 -i G:\temp\4.sql

SQL Server已创建表 'XXXX,但其最大行大小(10438)超过了每行的最大字节数(8060)
"警告: 已创建表 'XXXX,但其最大行大小(10438)超过了每行的最大字节数(8060)。如果结果行长度超过 8060 字节,则此表中行的 INSERT 或 UPDATE 将失败。"

解决: 设计表特别是 varchar(7000) 改成 varchar(5000)

USE MASTER;
GO;
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='AIS2015'
Go
sp_dboption 'AIS2015', 'single user', 'true'
Go
DBCC CHECKDB('AIS2015')
DBCC CHECKDB(AIS2015,REPAIR_ALLOW_DATA_LOSS)
Go
update sysdatabases set status =28 where name='AIS2015'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption 'AIS2015', 'single user', 'false'
Go

以上命令如果出错,请一行一行执行。 查询分析器里面执行。

广告:

相关文章
dbcc
sql2000
cms新闻系统购买咨询
扫描关注 广州阅速软件科技有限公司
扫描关注 广州阅速科技