宝哥软件园

恢复丢失的SQLServer日志文件 以避免完全破坏数据库

编辑:宝哥软件园 来源:互联网 时间:2021-08-07

类型:其他系统大小: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数据库的恢复依赖于日志文件,所以无论如何保证日志文件的存在是非常重要的。为了让我们的数据库万无一失,最好结合各种备份方式,所以要从心里重视数据库的管理和维护。

更多资讯
游戏推荐
更多+