类型:其他系统大小:6.3M语言:英语评级:5.0标签:现在下载主要介绍SQLServer日志文件丢失的正确恢复方法。实际上,丢失SQLServer日志文件是一个令人头疼的问题。以下文章主要给出了这个问题的答案,以下是正文的主要内容描述。
一.概述
在应用系统中,数据库通常是核心部分。数据库一旦被破坏或损坏,将会带来巨大的损失,因此数据库的管理变得越来越重要。在数据库管理和维护过程中,不可避免地会出现各种错误。本文研究了当数据库的SQLServer日志文件丢失时,如何使用MDF文件来恢复数据库。
二、数据库的恢复
当数据库的主数据MDF文件完好无损,LDF文件丢失时,如何使用MDF文件恢复数据库?我们将SQL Server的日志文件分为两类:一类是没有活动事务的日志,另一类是活动事务的日志。根据不同的日志,采用不同的方法恢复数据库。
1.非活动事务的日志恢复
当非活动事务的日志丢失时,我们可以使用MDF文件轻松地直接恢复数据库。具体方法如下:
要分离有疑问的数据库,可以使用企业管理器中的“分离数据库工具”或者使用存储过程sp_detach_db来分离数据库;
使用MDF文件附加数据库生成新的日志文件,可以使用企业管理器中的“附加数据库”工具,也可以使用存储过程sp_attach_single_file_db来附加数据库。
如果数据库的日志文件包含活动事务,则如果此方法丢失了SQLServer日志文件,则无法恢复数据库。
2.活动事务的日志恢复
当包含活动事务的日志丢失时,使用上述方法会出现“数据库和日志文件不匹配,无法附加数据库”的情况。在这种情况下,我们采用以下方法:
(1)创建一个同名的新数据库AAA,并将其设置为紧急模式
停止SQL Server服务器;
删除数据库主数据的MDF文件;
启动SQL Server服务器,创建一个同名的新数据库AAA
停止SQL Server服务器并覆盖删除的MDF文件;
启动SQL Server服务器,将AAA设置为紧急模式。但是默认情况下,系统表不能随便修改。您必须首先对其进行设置,以便可以对其进行修改,并运行以下语句:
代码片段:使用母版
去
sp_configure“允许更新”,1
用覆盖重新配置
Go随后运行以下语句将AAA数据库设置为紧急模式,即在Sysdatabases表中将AAA数据库的状态属性设置为‘37268’表示AAA数据库处于紧急模式。
更新sysdatabases设置状态=32768,其中hame='AAA '
如果没有报告错误,您可以执行以下操作。
资料库
将AAA数据库设置为单用户模式,并检查数据库
要重新启动SQL Server服务器;
将数据库AAA设置为单用户模式
Sp_dboption 'AAA ','单用户',' true '
运行以下语句检查数据库AAA
DBCC检查数据库
如果没有大问题,可以把数据库的状态改回来。
恢复数据库的状态
您可以通过运行以下语句来恢复数据库的状态:
代码片段:
更新sysdatabases设置状态=28,其中名称='AAA '
sp_configure“允许更新”,0
用覆盖重新配置
去
如果没有大问题,刷新数据库,AAA数据库又会出现在你面前。但是恢复工作还没有完成,此时数据库仍然无法工作,需要进行以下处理才能真正恢复。
使用DTS的导入导出向导,将数据库AAA导入到新的数据库BBB中
创建一个新的数据库BBB
右键单击BBB,选择IMPORT function,打开导入向导。
目标源是“在SQL Server数据库之间复制对象和数据库”,以便将表结构、数据视图和存储过程导入BBB
使用此功能将BBB库替换为原始的AAA库。
此时,AAA数据库完全恢复。
丢失SQLServer日志文件是非常危险的,并且您的数据库很可能会被完全销毁。SQL Server数据库的恢复依赖于日志文件,所以无论如何保证日志文件的存在是非常重要的。为了让我们的数据库万无一失,最好结合各种备份方式,所以要从心里重视数据库的管理和维护。