修复SQL数据库置疑方法,sql 2000 数据库置疑的解决方法

USEMASTER
GO
SP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDE
GO
UPDATESYSDATABASESSETSTATUS=32768WHERENAME='AIS20090521094413'
Go
sp_dboption'AIS20090521094413','singleuser','true'
Go
updatesysdatabasessetstatus=28wherename='AIS20090521094413'
Go
sp_configure'allowupdates',0reconfigurewithoverride
Go
sp_dboption'AIS20090521094413','singleuser','false'
Go
DBCCCHECKDB('AIS20090521094413')
GO
AIS20090521094413替换成你数据库的名字、将以上语句在查询器里面执行。

怎样修复已经损坏的SQL数据库

有两种方法,一种方法使用mysql的checktable和repairtable的sql语句,另一种方法是使用MySQL提供的多个myisamchk,isamchk数据检测恢复工具。
前者使用起来比较简便。推荐使用。
1、checktable和repairtable登陆mysql终端:mysql-uxxxxx-pdbnamechecktabletabTest;
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:repairtabletabTest;进行修复,修复之后可以在用checktable命令来进行检查。
在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2.myisamchk,isamchk其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。
这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。
当发现某个数据表出现问题时可以使用:myisamchktablename.MYI进行检测,如果需要修复的话,可以使用:myisamchk-oftablename.MYI关于myisamchk的详细参数说明,可以参见它的使用帮助。
需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
2、另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:[-x/tmp/mysql.sock]&&/pathtochk/myisamchk-of/DATA_DIR/*/*.MYI。
其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。
需要注意的是,如果你打算把这条命令放在你的rc.local里面,必须确认在执行这条指令时MySQL服务器必须没有启动!
最后检测修复所有数据库(表)。

SQl数据库被置疑!!!高手请进!!

假定数据库名为AA
1.将AA_log.ldf文件备份到其它目录下;
2.将源目录下的AA_log.ldf文件改名为smlog_log_bak.ldf;
3.在查询分析器中执行以下语句修改数据库的状态:
useMaster
go
updatesysdatabasessetstatus=32768wherename='AA'–修改状态
go
shutdownwithnowait–停止数据库服务器
go
4.退出SQL并在命令行模式中执行以下代码:
sqlservr-c-T3608-T4022–安全模式启动SQLSERVER
5.在查询分析器中执行以下语句来查看刚刚修改过状态的数据库状态:
selectName,StatusfromsysdatabaseswhereName='AA'
6.在查询分析器中执行以下代码重建日志文件:
dbcctraceon(3604)–跟踪
dbccrebuild_log('AA','AA')–文件名要有全路径和扩展名
本步骤如果成功,继续执行下一步的操作,如果报错,也可以不管它继续下一步,也可以将操作之前建立的同名空数据库日志文件COPY过来就行。
7.在查询分析器中执行以下代码将数据库置回正常状态:
updatesysdatabasessetstatus=0wherename='AA'
8.重新启动数据库后执行以下语句检查数据库:
DBCCCHECKDB–如果执行完有错误用以下9.10两步语句修复
9.要修复数据库必需将数据库改为单用户模式:
Execsp_dboption'数据库名称','singleuser','true'
10.执行以下语句修复数据库:
DBCCCHECKDB('AA',REPAIR_ALLOW_DATA_LOSS)
11.将数据库改为多用户模式:
Execsp_dboption'AA','singleuser','false'
12.重新启动电脑,成功!

我有一个SQL2008数据库,正在使用时,突然停电了,来电后,打开电脑后数据库显示“置疑”,请问怎么处理啊

先使用“无日志附加”的方法进行附加数据后,对数据库做DBCC检测,然后针对错误进行修复。一般如果数据库正在进行读写操作,突然断电,会导致数据库无法回写正常的数据,这样就会导致数据库索引及其它错误,常见的有“并闫锁页错误”、“表错误:分配单元ID169144,页(1:XXXX)。测试(IS_OFF(BUF_IOERR,pBUF->bstat))失败。”,可以先用DBCC先进行修复,命令:
DBCCCHECKDB(DBName,REPAIR_FAST)–不丢失数据
DBCCCHECKDB(DBName,REPAIR_REBUILD)–不丢失数据
DBCCCHECKDB(DBName,REPAIR_ALLOW_DATA_LOSS)–会丢失数据
如果还是修复不好,就找专业的数据恢复公司做修复吧,可以找北亚数据恢复修复,他们修复SQL数据库很厉害。。。

免责声明:本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即在【本页面底部评论留言】通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意

(0)
投稿专栏的头像投稿专栏官方
上一篇 2024年3月11日
下一篇 2024年3月11日

相关推荐

发表回复

登录后才能评论