关键词不能为空

当前您在: 主页 > 英语 >

如何恢复数据库文件

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

-

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


仅有日志文件的数据修复处理示例


.sql


USE


master



--


创建数据库



CREATE



DATABASE


db


ON



PRIMARY


(


NAME


=


'db_data'


,


FILENAME


=



'c:db_'


)


LOG



ON


(


NAME


=


'db_log'


,


FILENAME


=


'c:'


)


GO




--


创建表



CREATE



TABLE


(id


int


)


INSERT



SELECT


id


FROM


sysobjects


GO



--


做文件组备份



BACKUP



DATABASE


db


TO



DISK


=


'c:'



WITH


FORMAT



--


备份后


,


再做数据 处理



CREATE



TABLE


(id


int


)


INSERT



SELECT


id


FROM


sysobjects


GO




/* --


下面演示了破坏数据文件的处理,这些操作在操作系统中进行




1.


停止


SQL Server


服务


(msqlserver


服务


)


2.


删除文件


c:db_ (


模拟破坏


)


3.


重新


SQL Server


服务


,


此时数据库


DB


置 疑



--*/



GO




--


下面演示了如何恢复数据



--


首先要备份当前日志



BACKUP



LOG


db


TO



DISK


=


'c:db_'



WITH


FORMAT,NO_TRUNCATE


--


利用文件组备份恢复破坏的文件



RESTORE



DATABASE


db


FROM



DISK

< br>=


'c:'



WITH


NORECOVERY


--


还原到日志点



RESTORE



LOG


db


FROM



DISK

< br>=


'c:db_'



WITH


RECOVERY


--


显示已经恢复的数据



SELECT



COUNT

< p>
(


*


)


FROM



SELECT



COUNT

< p>
(


*


)


FROM



GO




--


删除测试



DROP



DATABASE


db




无数据库日志文件恢复数据库方法两则



================================================= =====================


方法一




1.


新建一个同名的数据库




2.


再停掉


sql server(


注意不要分离数据库


)



3.


用原数据库的数据文件覆盖掉这 个新建的数据库




4.


再重启


sql server



5.


此时打开企业管理器时会出现置 疑,


先不管,


执行下面的语句


(注意修 改其中的数据库名


)



6.


完成后一般就可以访问数据库中的数据了


,


这时


,


数据库本身一般还要问题


,


解决办法是


,





数据库的脚本创建一个新的数据库


,


并将数据导进去就行了


.



USE MASTER


GO



SP_CONFIGURE 'ALLOW UPDA


TES',1 RECONFIGURE WITH OVERRIDE


GO



UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='


置疑的数据库名


'


Go



sp_dboption '


置疑的数据库名


', 'single user', 'true'


Go



DBCC CHECKDB('


置疑的数据库名


')



Go



update sysdatabases set status =28 where name='


置疑的数据库名


'


Go



sp_configure 'allow updates', 0 reconfigure with override


Go




sp_dboption '


置疑的数据库名


', 'single user', 'false'


Go


================= ================================================== ===


方法二



< br>1


,把数据库设置为


emergency mode




2


,重新 建立一个


log


文件




3


,把


SQL Server


重新启动一下




4


,把应用数据库设置成单用户模式




5


,做


DBCC CHECKDB



6


,如果没有什么大问题就可以把数 据库状态改回去了,记得别忘了把系统表的修改选项关





我实践了一下,把应用数据库的数据文件移走,重新建立一个 同名的数据库


XXX


,然后停



SQL


服务,把原来的数据文件再覆盖回来。之后,按照怡红公子的步 骤走。




但是,也很遗憾,除了第< /p>


2


步之外,其他步骤执行非常成功。可惜,重启

< br>SQL Server


之后,


这个应用数据库仍然是置疑 !




不过,让我欣慰的是,这么做之 后,倒是能够


Select


数据了,让我大出一口气。只不过, 组


件使用数据库时,报告说:


“发生错误:

-2147467259,


未能在数据库



'XXX'


中运行



BEGIN


TRANSACTION


,因为该数据库处于回避恢复模式。








最终成功恢复的全部步骤



设置数据库为紧急模式



停掉


SQL Server


服务;




把应用数据库的数据文件


XXX_


移走;

< p>



重新建立一个同名的数据库

< br>XXX




< br>停掉


SQL


服务;




把原来的数据文件再覆盖回来;


-


-


-


-


-


-


-


-



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

如何恢复数据库文件的相关文章