iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么通过日志恢复SQL Server的历史数据
  • 274
分享到

怎么通过日志恢复SQL Server的历史数据

2024-04-02 19:04:59 274人浏览 泡泡鱼
摘要

这篇文章主要讲解了“怎么通过日志恢复SQL Server的历史数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过日志恢复sql Server的历史数

这篇文章主要讲解了“怎么通过日志恢复SQL Server的历史数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过日志恢复sql Server的历史数据”吧!

通过日志还原,最重要的是:
1.必须有一个完整的备份,且这个备份必须是在修改、删除数据之前做的。
2.在更新、删除数据之后,做日志备份,该log备份将用于还原之前的数据
 
下面步骤的目的:还原被删除的表
在SQL Server Management可视化操作步骤:
1.创建并完整备份:
--创建测试数据库 
CREATE DATABASE Db 
Go 
 
--对数据库进行备份 
BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT 
GO
2.创建一个空表
--创建测试表 
CREATE TABLE Db.dbo.TB_test(ID int) 
3.删除刚刚建的这个空表,假设这个表被误删除了
--假设我们现在误操作删除了 Db.dbo.TB_test 这个表 
DROP TABLE Db.dbo.TB_test 
到了这一步,我们想还原被删除的TB_Test表,这个时候,记住删除表之前的时间,后面会用到
这个时候,需要备份日志,可以用SQL Management界面操作备份,也可以用T-SQL备份
BACKUP LOG Db TO DISK='c:\db_log.bak' WITH FORMAT 
GO
4.还原数据库,可以替换原来数据库,或者还原成一个新的数据库DB1,这里新的数据库DB1
如果是界面操作:
“任务”- “还原” - “数据库”:
在“常规”选择页中的设备后面选择我们之前的完整备份:db.bak,
目标数据库:DB1
在“恢复状态”下选择第2项“不对数据库执行任何操作,不回滚提交的事务。。” ,点确定后,可以看到DB1数据库的状态变成“正在还原。。”
接下来:在DB1数据库上点右键--还原--事务日志,选择刚刚我们删除表后备份的事务日志:db_log.bak,
在下面选择时间点,这个时间是上面我们记住的删除表之前的时间,点击确定后,还原成功。可以看到被删除的表又回来了。
 
完整的脚本:
 
--创建测试数据库 
CREATE DATABASE Db 
GO 
 
--对数据库进行备份 
BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT 
GO 
 
--创建测试表 
CREATE TABLE Db.dbo.TB_test(ID int) 
 
--延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败) 
WaiTFOR DELAY '00:00:01'
GO 
 
--假设我们现在误操作删除了 Db.dbo.TB_test 这个表 
DROP TABLE Db.dbo.TB_test 
 
--保存删除表的时间 
SELECT dt=GETDATE() INTO # 
GO 
 
--在删除操作后,发现不应该删除表 Db.dbo.TB_test 
 
--下面演示了如何恢复这个误删除的表 Db.dbo.TB_test 
 
--首先,备份事务日志(使用事务日志才能还原到指定的时间点) 
BACKUP LOG Db TO DISK='c:\db_log.bak' WITH FORMAT 
GO 
 
--接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行) 
RESTORE DATABASE Db FROM DISK='c:\db.bak' WITH REPLACE,NORECOVERY 
GO 
 
--将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早 
DECLARE @dt datetime 
SELECT @dt=DATEADD(ms,-20,dt) FROM #  --获取比表被删除的时间略早的时间 
RESTORE LOG Db FROM DISK='c:\db_log.bak' WITH RECOVERY,STOPAT=@dt 
GO 
 
--查询一下,看表是否恢复 
SELECT * FROM Db.dbo.TB_test 
 
 
 
--测试成功 
GO 
 
--最后删除我们做的测试环境 
DROP DATABASE Db 
DROP TABLE #

感谢各位的阅读,以上就是“怎么通过日志恢复SQL Server的历史数据”的内容了,经过本文的学习后,相信大家对怎么通过日志恢复SQL Server的历史数据这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么通过日志恢复SQL Server的历史数据

本文链接: https://www.lsjlt.com/news/60667.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么通过日志恢复SQL Server的历史数据
    这篇文章主要讲解了“怎么通过日志恢复SQL Server的历史数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过日志恢复SQL Server的历史数...
    99+
    2024-04-02
  • 怎么通过日志恢复MSSQL数据
    这篇文章将为大家详细讲解有关怎么通过日志恢复MSSQL数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、建立数据库和测试表 create da...
    99+
    2024-04-02
  • 怎么通过日志文件恢复MySQL数据
    这篇文章主要介绍“怎么通过日志文件恢复MySQL数据”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么通过日志文件恢复MySQL数据”文章能帮助大家解决问题。1、找到最新的 binlog 文件进入 ...
    99+
    2023-06-29
  • MySQL中怎么通过binlog日志恢复数据
    本篇文章为大家展示了MySQL中怎么通过binlog日志恢复数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、数据备份操作的前一天晚上进行了日常逻辑备份mysq...
    99+
    2024-04-02
  • mysql通过binlog日志恢复误删数据
    1、先查看binlog功能是否开启 show variables like '%log_bin%'; log_bin为ON说明可以使用binlog恢复,如果为OFF说明没有开启binlog。 2、删...
    99+
    2023-09-06
    mysql 数据库
  • Oracle11g怎么清理数据库的历史日志
    这篇文章主要介绍“Oracle11g怎么清理数据库的历史日志”,在日常操作中,相信很多人在Oracle11g怎么清理数据库的历史日志问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • SQL Server中怎么批量日志恢复模式
    这篇文章将为大家详细讲解有关SQL Server中怎么批量日志恢复模式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。批量日志恢复模式批量日志恢复模式与完整恢...
    99+
    2024-04-02
  • Mysql如何通过binlog日志恢复数据详解
    目录前言方法如下总结前言 MySQL的binlog日志是MySQL日志中非常重要的一种日志,记录了数据库所有的DML操作。通过binlog日志我们可以进行数据库的读写分离、数据增量备...
    99+
    2024-04-02
  • mysql 5.7.21 解压版如何通过历史data目录恢复数据
    这篇文章主要为大家展示了“mysql 5.7.21 解压版如何通过历史data目录恢复数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql 5.7.21...
    99+
    2024-04-02
  • 教你如何通过日志文件恢复MySQL数据
    目录前言1、找到最新的 binlog 文件2、找到我们想恢复数据在日志文件里的开始结束位置2.1、使用时间范围2.2、使用 position 范围3、恢复3.1 通过时间恢复3.2 ...
    99+
    2024-04-02
  • sql日志文件如何恢复数据
    要恢复数据,您可以在 SQL Server Management Studio 中执行以下步骤: 打开 SQL Server Ma...
    99+
    2024-04-22
    sql
  • SQL SERVER中怎么收缩数据库日志
    今天就跟大家聊聊有关SQL SERVER中怎么收缩数据库日志,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 Microsoft OLE DB Pr...
    99+
    2024-04-02
  • 使用SQL SERVER存储过程实现历史数据迁移方式
    目录1、什么是历史数据迁移?2、历史数据迁移的目的3、什么时候需要做历史数据迁移?4、数据迁移的基本思路6、使用场景特别说明今天讲下软件开发中最常见的历史数据迁移方式。在讲迁移之前,...
    99+
    2024-04-02
  • Oracle 11g清理数据库历史日志的方法
    这篇文章主要介绍了Oracle 11g清理数据库历史日志的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 创建存放数据库待删除日志文...
    99+
    2024-04-02
  • SQL Server数据库崩溃后怎么恢复
    这篇文章主要讲解了“SQL Server数据库崩溃后怎么恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL Server数据库崩溃后怎么恢复”吧!任何...
    99+
    2024-04-02
  • sql server中怎么通过查询分析器实现数据库备份与恢复
    这篇文章将为大家详细讲解有关sql server中怎么通过查询分析器实现数据库备份与恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。sql server的...
    99+
    2024-04-02
  • SQL Server数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式
    如何图形界面下修改恢复模式 找到你想修改的数据库 右键 > 属性  > 左侧 选项既可看到 1.Simple 简单恢复模式, Simple模式的旧称叫”Checkpoint with...
    99+
    2024-04-02
  • SQL Server中怎么通过扩展存储过程实现数据库远程备份与恢复
    这篇文章将为大家详细讲解有关SQL Server中怎么通过扩展存储过程实现数据库远程备份与恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现远程备份与恢...
    99+
    2024-04-02
  • SQL Server数据库中怎么清理错误日志
    今天就跟大家聊聊有关SQL Server数据库中怎么清理错误日志,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。SQL错误日志记录了数据库运行过程的遇...
    99+
    2024-04-02
  • Navicat怎样恢复SQL server的数据库备份
    这篇文章主要介绍Navicat怎样恢复SQL server的数据库备份,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!打开Navicat for MySQL,在左侧激活数据连接,激活数...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作