sql数据库质疑的原因及解决办法
sql数据库质疑是设置错误造成的,解决方法为:
1、通过DBCC CHECKCB(\'DBName\') 来检测数据库异常的原因,如果可以检测到数据库的异常,其中红色部分即时数据目前存在的问题,我们也在检测结果最后看到数据的总体的错误情况的汇总。
2、如果数据库的整体结果没有问题,只是部分表的数据结构、索引、存储出现异常,可以通过DBCC CheckTable(\'DBName.dbo.tablename\')来进行检测。
3、通过sql命令或者操作,将数据库设置为“单用户”模式,然后打开查询分析器,准备进行修改。
4、打开查询分析器器,选择Master数据库,通过DBCC CheckDB(\'DBName\',REPAIR_ALLOW_DATA_LOSS)命令,进行数据库的全面修复,该命令可能会导致数据库中的数据丢失,请注意。
5、处理之后,我们还需要将用户模式恢复为多用户模式,可以选择命令,可以是所使用使用数据库管理工具,进行多用户回复:命令: ALTER DATABASE DBName SET MULTI_USER。
6、重启数据库服务,查看数据库异常是否修复,在控制面板找到sql服务进行重启,如果为sql2000,点击屏幕有下家的数据库服务器工具,进行重新启动。
sql数据库置疑怎么处理
修复方法
1
打开SQL企业管理器
按序打开 ,开始--所有程序(或程序)--Microsoft SQL Server--企业管理器
打开后按序点+号展开直到数据库
2
右键显示置疑的数据库--所有任务--分离数据库。
弹出对话框点击确定。
注,先记住数据库名。分离有时候会提示分离失败,右键随便一个数据库--刷新,就可以看到已经没了。
3
找到该置疑数据库的源文件,剪切到其他文件夹黏贴。
注,一般是同名的两个文件,后缀为*.mdf和*.ldf。
4
返回企业管理器新建一个同名的数据库名
右键随便一个数据库--新建数据库
弹出对话框中名称输入数据库名
然后点击上方选项卡数据文件,点后面的位置下的省略号选择存放路径,并把文件名改成和置疑数据库源文件名一样,然后确定
再点击上门选项卡事务日志,一样操作后确定。
停止SQL服务
右键数据库上的服务器名--停止,弹出提示点是。
打开新建数据库所在路径,把之前备份的置疑数据库的源文件.MDF后缀的复制过来覆盖,删掉新建数据库的后缀LDF的源文件。
启动SQL
右键数据库的服务器名--启动。
设置数据库允许直接操作系统表
点击上方的工具--SQL查询分析器--输入下列语句
sp_configure \'allow updates\',1 reconfigure with override
点击上方竖三角号执行(或按F5)
或右键选择数据库服务器--属性--服务器设置,将“允许对系统目录直接修改”打钩,确定。
设置要修复的数据库为紧急修复模式
删掉之前的语句,输入下列语句
update sysdatabases set status=32768 where name=\'数据库名\'
注,数据库名记得改成你实际的。
点击上方竖三角号执行(或按F5)
重建数据库日志文件
删掉之前的语句(也可再前面语句前输入--),输入下列语句
DBCC TRACEON (3604)
DBCC rebuild_log(\'数据库名\',\'数据库路径\\数据库名.ldf\')
注,数据库名和日志文件按实际修改。
点击上方竖三角号执行(或按F5)
提示如图视为成功
验证数据库一致性(虽然可以省略但是不易建议跳过)
删掉之前的语句(也可再前面语句前输入--),输入下列语句
dbcc checkdb(\'数据库名\')
注,数据库名按实际修改。
点击上方竖三角号执行(或按F5)
设置数据库为恢复正常状态
删掉之前的语句(也可再前面语句前输入--),输入下列语句
update sysdatabases set status=0 where name=\'数据库名\'
注,数据库名按实际修改。
点击上方竖三角号执行(或按F5)
设置数据库‘允许直接操作系统表’取消
点击上方的工具--SQL查询分析器--输入下列语句
sp_configure \'allow updates\',0 reconfigure with override
点击上方竖三角号执行(或按F5)
或右键选择数据库服务器--属性--服务器设置,将“允许对系统目录直接修改”打钩取消,确定。
重启SQL。
如何解决SQL Server数据库置疑问题
您好,是这样的:
1.首先确认已经备份了.mdf和.ldf文件。
2. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
3. 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。
4. 重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。
5. 在SQL查询分析器中执行以下命令,以允许更新系统表:use mastergosp_configure \"allow updates\",1reconfigurewithoverridego。
6. 将这个数据库置为紧急模式:update sysdatabases set status = 32768 where name=\"db_name\"go。
7. 使用DBCC CHECKDB命令检查数据库中的错误:DBCC CHECKDB(\"db_name\")GO。
8. 如果DBCC CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:sp_dboption \"db_name\",\"single
user\",\"true\"DBCCCHECKDB(\"db_name\",REPAIR_ALLOW_DATA_LOSS)GO
如果在执行DBCCCHECKDB(\"db_name\",REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQLServer服务,然后继续尝试。
9. 如果DBCCCHECKDB(\"db_name\",REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:
重新执行DBCC CHECKDB(\"db_name\")命令,确认数据库中已没有错误存在。
清除数据库的置疑状态:sp_resetstatus \"db_name\"
清除数据库的单用户模式状态:sp_dboption \"db_name\",\"single user\",\"false\"
重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。
10.如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:
1. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
2. 用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。
3. 启动SQL Server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。
4. 停止并重新启动SQL Server服务。
5. 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)
DBCC REBUILD_LOG(\"cas_db\", \"D:\\cas_db\\cas_db_Log.LDF\")
6. 重新将该数据库置为单用户模式。
7. 再次尝试使用DBCC CHECKTABLE或DBCC CHECKDB命令检查并修复数据库中。
sql数据库置疑,错误代码926,请问要如何修复?
请输入你的答案...
数据库926错误解决方案在做任何操作前首先备份数据库的数据文件和日志文件!以及最新的备份文件!第一种解决方法:先删除报错数据库,再新建一同名数据库,然后暂停Service
manager(及sql
server
服务)
,删除库文件和日志文件再启动Service
manager
,使用单数据文件恢复数据库命令恢复数据库。例:打开sql
server/tools/sql
server
query
analyzer
执行下面操作
EXEC
sp_attach_single_file_db
@dbname
=
\'pubs\',
@physname
=
\'c:\\mssql7\\data\\pubs.mdf\'
说明:‘pubs’为要恢复的数据库名称,‘c:\\mssql7\\data\\pubs.mdf’为要恢复的数据库的库文件的具体路径和文件名称。再重新启动一下service
manager
,看能否正常打开处理后的数据库;如果不可以再使用第二种方案。第二种解决方法:打开sql
server/tools/sql
server
query
analyzer
执行下面操作
USE
MASTER
GO
sp_configure
\'allow
update\',1
RECONFIGURE
WITH
OVERRIDE
GO
UPDATE
sysdatabases
set
status
=
32768
WHERE
name
=
\'db_pos363\'
GO
sp_configure
\'allow
update\',0
RECONFIGURE
WITH
OVERRIDE
GO
说明:\'db_pos363\'是要修复的数据库名称。执行完毕再重启一下Service
manager打开数据库看是否处于紧急状态!再从另一装有sql
2000的机器上连接报错的数据库,然后再在sql
2000的机器上新建一数据库,再使用sql
2000自带的数据库导入导出功能(在新建的数据库上单击右键/所有任务/数据导入、数据导出)从报错数据库导入数据到新建的数据库中!在导入选项中注意以下几项:
1,
导入方式选择分‘从源数据库复制表和视图’以及‘从sql
server数据库间复制对象和数据’。当选择从源数据库复制表和视图时一定要选择全部表!
2,
当选择‘从sql
server数据库间复制对象和数据’时,在‘导入导出向导’对话框中去除‘使用默认选项’的选中标志;再在打开‘选项’对话框,去除以下三项的选中标志。A,复制数据用户和数据库角色;B,复制sql
server
登陆;C,复制对象及权限。
3,
在使用‘从sql
server数据库间复制对象和数据’时,有时会出现单张表导入失败,这时有时会在导入结束时提示那几张表导入失败有时不提示,如果提示,就再使用‘从源数据库复制表和视图’并选中导入失败的表重新导入一遍;如果不提示就只能在一张张表打开查看了,发现空表后再使用‘从源数据库复制表和视图’导入需要导入的表!导入成功后再删除sql
server
7.0机器上处于紧急状态的数据库,再新建一个同名数据库,建好后再使用sql
2000的数据库导出功能导出到此数据库中,在导出过程中同样要注意导入时的注意事项!