基于日志文件的数据恢复

2018-01-24 20:46曾维浩刘雪花
科技视界 2017年31期

曾维浩 刘雪花

【摘 要】网络系统最重要的是确保数据安全,然而,日常的误操作、病毒、网络攻击都在时刻威胁着我们的数据安全。本文以SQL2008为例讲述当数据遭到破坏时如何利用日志文件恢复数据,从而减少损失、消除破坏带来的不利影响

【关键词】SQL;LOG;数据恢复

Data recovery technology based on Log

ZENG We-hao1 LIU Xue-hua2

(1.Gansu Provincial Gansu Mining Social Insurance Management Center, Jiayuguan 735100, Gansu, China;

2.No.440 Limited Company, Lanzhou 732850, China)

【Abstract】In this paper, SQL 2008 was as an example to analysis how to recovery data when data had been destroy or deleted.Thus,we can cut down the adverse effect in this way.

【Key words】SQL;LOG;Data Recovery

0 引言

系统管理员及操作人员面对复杂的操作环境,往往会在不经意间误删除数据;同时,病毒、网络攻击等都时刻威胁着我们的数据安全。面对各种潜在的破坏因素,当我们的数据被破坏时,如何对其进行恢复以减少损失是每个系统管理员都需要面对的问题。在下面的论述中,将以SQL2008为例讲解在数据及数据表遭到破坏的情况下如何利用日志文件进行恢复。

1 日志文件要求

为了成功实现数据恢复,数据库日志文件必须满足完整性要求。由于基于数据库日志文件进行数据恢复是以时间为序重现历史操作,以达到数据恢复的目的,所以,任何经过修改、截斷的数据库日志都是不满足完整性要求的,都会导致数据的恢复失败。因此,在进行以下操作前,请务必确保数据库日志文件的完整性,并对二次备份的日志文件进行相关操作,避免破坏原始日志文件。

2 确认数据恢复时间点

由于数据库日志记录了所有的数据操作,因此在进行数据恢复之前,我们必须进行数据还原起始时间点的确认,以避免在数据恢复工作过程中包含数据被破坏的时间段的记录,从而导致再次破坏数据,导致恢复失败。

我们采用Log Explorer工具,并结合自身数据库被破坏的情况分析日志,从而确定还原操作的起始时间点(图1)。

3 数据恢复

在进行数据恢复操作前,必须保证客户端无任何进程与服务器进行交互,在条件允许的情况下,建议断开该服务器的网络连接,然后进行以下操作。

3.1 备份数据库和日志

由于本文中的所有操作均是在原始数据库和原始日志文件上进行,因此,在进行数据恢复操作之前,需对数据库及日志文件进行完整备份,以确保恢复失败时可恢复到当前状态。

图1 Log Explorer分析

3.2 破坏性事务的确定

启动Log Explorer,进入图1所示界面,确定要进行恢复的事务并记录起始时间点;不在该时间范围内的事务均会破坏恢复操作,应予以舍弃。本例中假设起始时间点记录为A,终止时间点记录为B。

3.3 数据误删除的恢复

在图1所示界面中进入“View Log”界面,在A、B两点之间选择所有需要执行恢复的数据项,然后在所选数据上点击右键,选择“Undo Transaction”;此时会弹出“文件保存对话框”,选择保存路径并输入后缀为.SQL的文件名(本例假设保存到D:\UNDO.SQL文件中),然后“保存”,“Log Explorer”会自动生成执行“Undo Transaction”操作的所有命令并保存到对应的文件中。当“Undo Transaction”命令执行完毕,打开查询分析器执行生成的UNDO.SQL文件即可开始数据恢复过程。

3.4 数据表误删除的恢复

在数据表被删除时,在图1所示界面打开“查看DDL命令”并“刷新”,此时系统自动列出所有被删除的表单及相关命令(图2)。

选中我们需要逆向进行的操作,然后执行“挽救”命令,系统将对删除的表及表中的数据进行恢复操作。当操作执行完毕,系统会弹出对话框提示数据恢复情况,保存该过程产生的SQL命令以备查询验证。

3.5 数据恢复情况验证

在图1所示界面中进入“运行SQL命令”界面,执行生成的脚本可验证数据恢复情况。若显示“失败为0”,则本次的数据恢复成功,此时可进入SQL数据库或相关系统进行查询验证;若恢复失败,请还原数据库和日志重复上述恢复操作。

4 结论

本文以“SQL 2008”为例,详细阐述了数据或数据库表被删除的情况下,如何利用数据库日志文件进行数据恢复的方法,为广大的数据维护人员提供了切实可行的数据恢复方案,在实际应用中具有一定的指导和参考价值。endprint