SQL Server日志恢复还原数据的操作流程

 更新时间:2024年09月05日 14:17:50   作者:运维小王  
有时开发过程中由于不小心或者程序出现错误导致错误删除数据,或者由于计算机以外引起数据遭到破坏,这时候可以采用日志进行恢复,所以本文给大家介绍了SQL Server日志恢复还原数据的操作流程,需要的朋友可以参考下

SQL Server日志恢复还原数据

##red##

通过日志还原,首先要注意的是:

1、在数据库更新和删除之前有一个完整的备份。

2、在更新和删除之后,做一个日志备份。

3、该日志只能用于还原数据库备份和日志备份时间之间的数据。

下面看整个数据库备份和恢复的操作流程:

创建一个数据库并完整备份:

创建数据库

新建一个数据库TEST用来测试

image7.png

创建表

-- 切换到 TEST 数据库
USE TEST;
GO

-- 创建表
CREATE TABLE TestTable (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    Name NVARCHAR(50),
    CreatedDate DATETIME
);
GO

-- 插入测试数据
INSERT INTO TestTable (Name, CreatedDate)
VALUES 
('Alice', GETDATE()),
('Bob', GETDATE()),
('Charlie', GETDATE()),
('David', GETDATE()),
('Eva', GETDATE()),
('Frank', GETDATE()),
('Grace', GETDATE()),
('Hannah', GETDATE()),
('Isaac', GETDATE()),
('Judy', GETDATE());
GO

记录本次操作时间2024-07-31 17:29:19

对数据库进行备份

右键数据库(TEST)-任务-备份:

image17.png

先把默认的备份路径删除,要不然后面会出错,然后点添加:

image9.png

选择文件位置

image10.png

选择文件位置以及备份文件名

image11.png

点击 确认 进行备份

image12.png

备份完成

image13.png

记录本次操作时间2024-07-31 17:30:50

模拟故障并恢复数据

误删除操作

假设我们误操作删除了这个表,注意删除表的时间,后面会用到:

DROP TABLE TEST.dbo.TestTable;

记录本次操作时间2024-07-31 17:31:22

备份日志文件

BACKUP LOG TEST TO DISK='D:\TEST_log.bak' WITH FORMAT
GO

记录本次操作时间2024-07-31 17:32:05

image16.png

还原数据库

在 SQL Server Management Studio 中,右键单击要还原的数据库(Test),选择“任务” -> “还原” -> “数据库”

image18.png

在“选项”标签中,勾选“关闭现有连接到目标数据库”,选择 之前的全量备份 和 刚刚备份的事务日志

image18.png

在常规里,选择一个还原到的具体时间点。

image20.png

这里我们的误删操作发生在:2024-07-31 17:30:50

因此,我们选择还原到这个时间的前一刻,我选择 2024-07-31 17:31:00

点击“确定”开始还原

image21.png

还原成功

image22.png

检验恢复结果

还原完成后,我们需要验证数据是否已经被成功恢复。

image23.png

恢复数据库可读写

从刚刚的截图上我们看到,虽然数据被恢复了,但是因为使用了日志事务,所以TEST数据库变成了备用/只读状态。当前状态下,数据库是无法被写入的,我们需要解除这种状态。

-- 切换到 master 数据库
USE master;

-- 将数据库设置为读写模式
ALTER DATABASE TEST SET READ_WRITE;

刷新数据库,看到数据库Test已经变为可写入的正常状态了

image24.png

以上就是SQL Server日志恢复还原数据的操作流程的详细内容,更多关于SQL Server日志恢复还原数据的资料请关注脚本之家其它相关文章!

相关文章

  • 谈谈sqlserver自定义函数与存储过程的区别

    谈谈sqlserver自定义函数与存储过程的区别

    这篇文章主要介绍了谈谈sqlserver自定义函数与存储过程的区别,需要的朋友可以参考下
    2014-09-09
  • SQL Server 远程更新目标表数据的存储过程

    SQL Server 远程更新目标表数据的存储过程

    这篇文章主要介绍了SQL Server 远程更新目标表数据的存储过程,适用于更新列名一致,主键为Int类型,具体实例代码大家参考下本文
    2018-05-05
  • 如何得到数据库中所有表名 表字段及字段中文描述

    如何得到数据库中所有表名 表字段及字段中文描述

    最近做一个项目,客户希望可以自己选择想要查看的列表,这样就不好办了,选择列表的名字他们也想自定义,没办法这就需要查看数据表中字段,中文说明,默认标志了
    2011-12-12
  • SQL中的partition分区功能使用详解

    SQL中的partition分区功能使用详解

    本文介绍了SQL中的分区功能,包括使用ROW_NUMBER()窗口函数和PARTITION BY进行数据分组和排序,以及如何在创建表时进行物理分区以优化查询性能,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • 如何使用 SQL Server Management Studio还原 .bak 备份文件

    如何使用 SQL Server Management Studio还原 

    本篇文章都将教你如何通过SQL Server Management Studio(SSMS) 进行.bak文件的完整还原,下面将以最常见的 SSMS 图形界面操作为例,详细说明整个恢复流程,以及常见问题的解决办法,感兴趣的朋友一起看看吧
    2026-01-01
  • 用SQL脚本读取Excel中的sheet数量及名称的方法代码

    用SQL脚本读取Excel中的sheet数量及名称的方法代码

    这篇文章介绍了用SQL脚本读取Excel中的sheet数量及名称的方法代码,有需要的朋友可以参考一下
    2013-09-09
  • SQL Server高可用的常见问题分析

    SQL Server高可用的常见问题分析

    SQL Server高可用不就是微软的那几个技术吗,如Replication, Failover Clustering,本文将详细介绍,有需求的朋友可以参考下
    2012-11-11
  • 解决在window下执行SQLSERVER定时备份的问题

    解决在window下执行SQLSERVER定时备份的问题

    这篇文章主要介绍了在window下执行SQLSERVER的定时备份,文末给大家介绍了windows任务计划定时备份sqlserver数据库的相关知识,使用windows的任务计划新建一个sqlserver数据库的定时备份任务,需要的朋友可以参考下
    2022-01-01
  • SQL Server数据库表的创建与管理操作大全

    SQL Server数据库表的创建与管理操作大全

    这篇文章主要给大家介绍了关于SQL Server数据库表的创建与管理操作的相关资料, SQL Server是一个关系型数据库管理系统,它可以帮助用户创建、管理和查询数据,文中介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • SQL Server解决游标性能问题的替代方案

    SQL Server解决游标性能问题的替代方案

    游标是一种能从包含多个元组的集合中每次读取一个元组的机制,游标总是和一段SELECT语句关联,SELECT语句查询出的结果集就作为集合,游标能每次从该集合中读取出一个元组进行不同操作,但在某些情况下,它们可能会导致性能问题,本介绍了SQL Server解决游标性能问题的替代方案
    2024-12-12

最新评论