数据库置疑(sqlserver2000数据库置疑)

更新时间:2023-02-28 21:03:50 阅读: 评论:0

数据库“置疑”该怎么处理

解决由于sql2000日志文件引起的“置疑”。
日志有错误--------重新附加提示日志有错误。
日志文件丢失-----丢失了.ldf文件,只有.mdf文件的数据库重建。

步骤:
一、备份“置疑”数据库的数据文件,因为日志文件.ldf出错,可以只备份.mdf文件。

二、打开企业管理器(SQL Server Enterpri Manager),删除“置疑”数据库,如果提示删除错误,可以重启数据库服务器,然后再试。

三、在企业管理器中,新建同名数据库(假如数据库为test),注意建立的数据库名称,还有数据文件名要保持和原数据库一致。

四、停止数据库服务器。

五、将刚才新建数据库生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库.mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。

六、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。

七、设置数据库允许直接操作系统表。此操作可以在企业管理器(SQL Server Enterpri Manager)里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。
u master
go
sp_configure 'allow updates',1
go
reconfigure with override
go

八、设置test为紧急修复模式 。
update sysdatabas t status=-32768 where dbid=DB_ID('test')
此时可以在企业管理器(SQL Server Enterpri Manager)里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表。

九、下面执行真正的恢复操作,用dbcc rebuild_log命令来重建数据库日志文件(重建路径根据你实际的数据库路径来)。
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')

执行过程中,如果遇到下列提示信息:
服务器: 消息 5030,级别 16,状态 1,行 1
未能排它地锁定数据库以执行该操作。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

说明您的其他程序正在使用该数据库,如果刚才您在八步骤中使用企业管理器打开了test库的系统表,那么退出企业管理器就可以了。
正确执行完成的提示应该类似于:
警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
此时打开在企业管理器里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

十、验证数据库一致性。(次步骤可省略)
dbcc checkdb('test')
一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test'中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

十一、设置数据库为正常状态
sp_dboption 'test','dbo u only','fal'
如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

十二、最后一步,我们要将步骤七中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在企业管理器里面恢复,也可以使用如下语句完成
sp_configure 'allow updates',0
go
reconfigure with override
go
对于只有.mdf文件的sql2000数据库恢复,从第三步开始做就行了。

最好的方法为先分离然后附加看下

1.我们SQL SERVER企业管理器新建立一个供恢复使用的同名数据库(注意:要跟问题数据库同名,本例中为myDb)。
2.停掉数据库服务器。
3.将刚才生成的数据库的日志文件myDb_log.ldf删除(本例中的示列数据库名,实际使用您自己的数据库名称),用刚才备份的数据库mdf文件覆盖新生成的数据库数据文件myDb_data.mdf。
4.启动数据库服务器。此时会看到数据库myDb的状态为“置疑”。这时候不能对此数据库进行任何操作。
5.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterpri Manager里面选择数据库服务器,按右--键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。
u master
go
sp_configure 'allow updates',1
go
reconfigure with override
go F.设置myDb为紧急修复模式
在查询管理器里设置如下命令:

update sysdatabas t status=-32768 where dbid=DB_ID('stib')此时可以在SQL Server Enterpri Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表
6.下面执行真正的恢复操作,重建数据库日志文件
dbcc rebuild_log('stib','E:\zz\stib_log.ldf')警告: 数据库 'myDb' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
此时打开在SQL Server Enterpri Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。
7.验证数据库一致性(可省略)
dbcc checkdb('stib')一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'myDb' 中)。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

sp_dboption 'stib','single ur','true'--设置为单用户

dbcc checkdb('stib','REPAIR_ALLOW_DATA_LOSS')--这个语句可能执行几遍之后有效

sp_dboption 'stib','single ur','fal'--取消单用户
8.设置数据库为正常状态
sp_dboption 'stib','dbo u only','fal'

9.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterpri Manager里面恢复,也可以使用如下语句完成
sp_configure 'allow updates',0
go
reconfigure with override
go

到此数据库置疑问题解决。

如何修复SQL数据库置疑 修复SQL数据库置疑方法

1、在实际的操作中由于突然断电或者突然断网造成数据库置疑(在企业管理器中数据库后面出现置疑两个字),下面我们通过以下方法来进行修复置疑的数据库。

2、我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterpri Manager里面建立。

3、停掉数据库服务器。

4、将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。

5、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。

6、设置数据库允许直接操作系统表。此操作可以在SQL Server Enterpri Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。

sql2000数据库置疑怎么处理?

1、新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数据库文件,启动数据库,该数据库被设为suspect
2、把数据库改成紧急模式:
sp_configure
'allow',
1
reconfigure
with
override
update
sysdatabas
t
status
=
32768
where
name
=
'数据库名'
3、把LDF文件改名,再执行
DBCC
REBUILD_LOG
('数据库名',
'E:\fdzz\databa\fdzz1204_Log.LDF'
)
4、恢复数据库紧急模式
update
sysdatabas
t
status
=
0
where
name
=
'数据库名'
如果不行,你就去看这篇文章.
http://www.flashmayi.com/article/show.php?id=8363&spn=1

如何解决SQL Server数据库置疑问题

您好,是这样的:
1.首先确认已经备份了.mdf和.ldf文件。
2. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。

3. 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。
4. 重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。
5. 在SQL查询分析器中执行以下命令,以允许更新系统表:u mastergosp_configure "allow updates",1reconfigurewithoverridego。
6. 将这个数据库置为紧急模式:update sysdatabas t status = 32768 where name="db_name"go。
7. 使用DBCC CHECKDB命令检查数据库中的错误:DBCC CHECKDB("db_name")GO。
8. 如果DBCC CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:sp_dboption "db_name","single
ur","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_retstatus "db_name"
清除数据库的单用户模式状态:sp_dboption "db_name","single ur","fal"
重新启动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命令检查并修复数据库中。

数据库为什么会置疑?有什么条件会产生这个原因?

1 SQL Server所在分区空间是否够?数据库文件大小是否达到最大文件限制?

2 数据库文件损坏或被非正常删除时出现这种情况

3 病毒防火墙的扫描也会引起数据库置疑

INF: Consideration for a virus scanner on a computer that is running SQL Server 2000
http://support.microsoft.com/default.aspx?scid=kb;en-us;309422

If the virus sweep has opened a databa file and still has it open when SQL Server tries to open the databa (such as when SQL Server starts or when SQL Server opens a databa that AutoClo has clod), the databa to which the file belongs might be marked suspect. The SQL Server databa files typically have the .mdf, .ldf, and .ndf file suffixes.

4 当SQL Server启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文件被其他程序占用,或者遗失,数据库将会被标记为置疑。
PRB: Missing device caus databa to be marked suspect
http://support.microsoft.com/kb/180500/EN-US/

sql数据库置疑,错误代码926,请问要如何修复?

请输入你的答案...
数据库926错误解决方案在做任何操作前首先备份数据库的数据文件和日志文件!以及最新的备份文件!第一种解决方法:先删除报错数据库,再新建一同名数据库,然后暂停Service
manager(及sql
rver
服务)
,删除库文件和日志文件再启动Service
manager
,使用单数据文件恢复数据库命令恢复数据库。例:打开sql
rver/tools/sql
rver
query
analyzer
执行下面操作
EXEC
sp_attach_single_file_db
@dbname
=
'pubs',
@physname
=
'c:\mssql7\data\pubs.mdf'
说明:‘pubs’为要恢复的数据库名称,‘c:\mssql7\data\pubs.mdf’为要恢复的数据库的库文件的具体路径和文件名称。再重新启动一下rvice
manager
,看能否正常打开处理后的数据库;如果不可以再使用第二种方案。第二种解决方法:打开sql
rver/tools/sql
rver
query
analyzer
执行下面操作
USE
MASTER
GO
sp_configure
'allow
update',1
RECONFIGURE
WITH
OVERRIDE
GO
UPDATE
sysdatabas
t
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
rver数据库间复制对象和数据’。当选择从源数据库复制表和视图时一定要选择全部表!
2,
当选择‘从sql
rver数据库间复制对象和数据’时,在‘导入导出向导’对话框中去除‘使用默认选项’的选中标志;再在打开‘选项’对话框,去除以下三项的选中标志。A,复制数据用户和数据库角色;B,复制sql
rver
登陆;C,复制对象及权限。
3,
在使用‘从sql
rver数据库间复制对象和数据’时,有时会出现单张表导入失败,这时有时会在导入结束时提示那几张表导入失败有时不提示,如果提示,就再使用‘从源数据库复制表和视图’并选中导入失败的表重新导入一遍;如果不提示就只能在一张张表打开查看了,发现空表后再使用‘从源数据库复制表和视图’导入需要导入的表!导入成功后再删除sql
rver
7.0机器上处于紧急状态的数据库,再新建一个同名数据库,建好后再使用sql
2000的数据库导出功能导出到此数据库中,在导出过程中同样要注意导入时的注意事项!

本文发布于:2023-02-28 18:55:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167758943047270.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:数据库置疑(sqlserver2000数据库置疑).doc

本文 PDF 下载地址:数据库置疑(sqlserver2000数据库置疑).pdf

标签:数据库
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|