关键词不能为空

当前您在: 主页 > 英语 >

数据库置疑的解决办法

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-24 15:11
tags:

-

2021年2月24日发(作者:umbilicus)



MSDB


置疑修复



方法一:你可以采用以下的语句进行修复


:





USE MASTER


GO


SP_CONFIGURE 'ALLOW UPDATES',1


RECONFIGURE WITH OVERRIDE


GO


UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb'


Go


sp_dboption 'msdb', 'single user', 'true'


Go


DBCC CHECKDB('msdb')


Go


update sysdatabases set status =28 where name='msdb'


Go


sp_configure 'allow updates', 0


reconfigure with override


Go


sp_dboption 'msdb', 'single user', 'false'


Go



方法二:



MSDB


数据库解决过程


< p>
难点:由于


MSDB


数据库不能删除,将其文件拷 出来,再次附加数据库,但新的


附加数据库不能叫


MSDB


,也就是不能同名,遇到了困难。



1



先停止整个数据库,


将该数据库的文件< /p>





拷贝粘


贴出来到另一个目录下。



2


:将以上的文件再拷贝到另一个目录下,也就是说复制两次。



3



选择



数据库右击鼠标


--



所有任务


--



附加数据库



将复制出的一个备份文


件附加上去, 其中,数据库名称叫


MSDB1


,用户是


SA



ADMINISTRATOR




4


:将


M SDB1


数据库备份,备份成一个文件,当时我的叫


MSDB< /p>



BAK



< /p>


5


:选择置疑的数据库


MSDB


,选择恢复数据库,将刚才备份出来的数据库强行恢


复到


MSDB




6


:问题解决,


MSDB


库又能正常使用。

< p>


完成后赶快将数据库再次备份一次。呵呵。



另附


:


SQL SERVER


数据库置疑后恢复步骤






1




恢复步骤:



a.

< br>将


smlog_


文件备份到其它目录下;



b.


将源目录下的


sml og_


文件改名为


smlog_log_




c.


执行以下语句修改数据库的状态:



use Master


go


update sysdatabases set status=32768 where name=’数据库名称’


--


修改


状态



go


shutdown with nowait --


停止数据库服务器



go < /p>


d.


退出


SQL


并在命令行模式中通过下面的代码重新启动


SQL


< p>


sqlservr -c -T3608 -T4022 --


安全模式启动


SQL SERVER

< br>e.


在查询分析器中执行以下语句来查看刚刚修改过状态的数据库状态:



select Name,Status from sysdatabases where Name=’ 数据库名称’



f.


执行以下代码新建日志文件:



dbcc traceon(3604) --


跟踪



dbcc


rebuild_log(‘数据库名称’,’日志文件名称’)

--


文件名要有全路径和


扩展名



g.


将数据库置回正常状态:



update sysdatabases set status=0 where name=’数据库名称’



h.


重 新启动数据库后执行以下语句检查数据库:



DBCC CHECKDB --


如果执行完有错误用以下语句修复


< /p>


i.


要修复数据库必需将数据库改为单用户模式:



Exce


sp_dboption


‘数据库名称’,’single


user’,’true’ (‘false’恢复


多用户


)


j.


执行以下语句修复数据库:



DBCC CHECKDB(‘数据库名称’,RE


PAIR_ALLOW_DATA_LOSS)


REPAIR_ALLOW_DATA_LOSS


:是比较高级 的修复方式



REPAIR_FAST


:是简单快速的修复方式




相似 问题:系统重装,忘记了备份


SQL


,然后又通过数据恢复工具 找回了


mcdb_



mcdb_


,在企业管理器上用附加数据库时提示错误


9004


,日志错误,在网上找了诸多方法,也试过建个同名空数据库然后停止


SQL


SERVER


然后覆盖掉


MDF




这是详细步骤


.


1.



先建一个与你要恢复的数据库名称一样的数据库。



2.


停止


sql server,


把你的数据库替换这个数据库。



3.


重启


sql server,


把数据库设置为紧急状态。



sp_configure 'allow',1


reconfigure with overirde




update sysdatabases set status=32768 where name='yourdata'


4.


重建日志文件。



dbcc rebuild_log('yourdata','your data pathnewdata_')


5.


取消紧急模式。



update sysdatabases set status=0 where name='yourdata'


restore sysdatabases yourdata with recovery


sp_configure 'allow',0


reconfigure with override


6.


重起


sql server





22:09:21


|


只看该作者



|


倒序浏览



SQL


数据库置疑解决方案



一、数据库置疑产生的原因



1



SQL Server


所在分区空间是否够?



数据库文件大小是否达到最大文件限制?


FAT32


的格式只支持


4G


以内 的文件。



2


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



3


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



4


、当


SQL Server


启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文件被其他程序占用,或者遗失, 数


据库将会被标记为置疑。



5


、电脑非法关机也会造成数据库置疑。



6< /p>


、电脑磁盘有坏道有可能造成数据库置疑。



二、数据库置疑的预防



1

< p>
、数据库存放的盘符,空间是否够大,经常检查盘符的空间。


< p>
2


、数据库存放的盘符的格式设置为


NTFS


格式。



3


、进行 病毒清除时,尽量把


SQL


服务停掉,再进行检查。

< p>




4


、尽量减少非正常关机。



5


、建议客户购买后备电源。



6


、给客户实施软件之后一定要做好自动备份。



7


、建议客户每隔一定时间手动备份一次。



三、数据库置疑的修复



1


、正常的备份、


SQL


数据库恢复方式



正常方式下,我们要备份一个数据库,首先要先将该数据库 从运行的数据



服务器中断开,或者停掉整个数据库服务器,然后复制文件。



卸下数据库的命令:


Sp_detach_db


数据库名



连接数据库的命令:


Sp_attach_db


或者


sp_at tach_single_file_db


s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′ [,...16


]


sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′



physical_name′



使用此方法可以正确恢复


SQL Sever7.0



SQL Server 2000


的数据库文件,



要点是备份 的时候一定要将


mdf



ldf


两个文件都备份下来,


mdf


文件是数据库< /p>



数据文件,


ldf

是数据库日志文件。



例子:



假设数据库为


pdm


,其数据文件为< /p>


pdm_


,日志文件为


pdm_


。下面我们讨论一下如何备份、恢复该数据


库。



卸下数据库:


sp_detach_db 'pdm'


连接数据库:


sp_attach_db


'pdm','C:Program


FilesMicrosoft


SQL


ServerMSSQLDatapdm_','C:Program


FilesMicrosoft SQL ServerMSSQLDatapdm_'


sp_attach_single_file_db 'pdm','C:Program FilesMicrosoft SQL ServerMSSQLDatapdm_'


2


、只有


mdf


文件的恢复技术




由于种种原因,我们如果当时仅仅备份了

mdf


文件,那么恢复起来就是一件



很麻烦的事情了。




如果您的


mdf


文件是当前数据库产生的,


那么很侥幸,


也许你使用


sp_attac h_db


或者


sp_attach_single_file_ db



以恢复数据库,但是会出现类似下面的提示信息




设备激活错误。物理文件名


'C:Program FilesMicrosoft SQL ServerMSSQLdatapdm_'


可能有误。




已创建名为


'C:Program FilesMicrosoft SQL ServerMSSQLData


pdm_'


的新日志文件。



但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也




许上述办法就行不通了。你也许会得到类似下面的错误信息



服务器


:


消息


1813


,级别


16


,状态


2


,行


1


未能打开新数据库


'pdm'




CREATE DATABASE


将终止。



设备激活错误。物理文件名


'd:pdm_'


可能有误。



怎么办呢?别着急,下 面我们举例说明恢复办法。现在我从其他机器上拷贝



回来了数 据库文件


pdm_


到本计算机上,存放到了

E


盘的一个文件夹里



A


.我们使用


SQL Server< /p>


企业管理器建立一个供恢复使用的数据库‘pdm’,



存放在


E


盘(不要与拷贝回来的数据库放到一个 文件夹就行)。




B


.停掉数据库服务器。








C


.将刚才生成的数据库的日志文件


pdm _


删除,用要恢复的数据库



mdf


文件覆盖刚才生成的数据库数据文件


pdm_

< br>。









D


.启动数据库服务器。此时会看到数据库


pdm


的状态为“置疑”。这时候不



能对此数据库进行任何操作。






E



设置数据库允许直接操作系统表。此操作可以在


SQL Server Enterprise





Manager


里面选择数据库服务 器,按右键,选择“属性”,在“服务器设置”页



面中将“允许对系统目录直接修改”一项选中。





也可以用‘SQL


查询分析器’执行如下语句来实现。



use master


go




sp_configure 'allow updates',1


go


reconfigure with override


go



< /p>


F


.设置


pdm


为紧急修复模式



,运行‘SQL


查询 分析器’执行如下语句来实



现。





update sysdatabases set status=-32768 where dbid=DB_ID('pdm')







此时可以在


SQL Server Enterprise Manager


里面看到该数据库处于“只读




置疑



脱机

< br>


紧急模式”可以看到数据库里面的表,但是仅仅有系统表





G


.下面 执行真正的恢复操作,重建数据库日志文件



dbcc rebuild_log('pdm','E:pdm_')



-


-


-


-


-


-


-


-



本文更新与2021-02-24 15:11,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/670328.html

数据库置疑的解决办法的相关文章