SQL Server 数据库还原到某个时点(完整恢复模式)
将 SQL Server 数据库还原到某个时点(完整恢复模式)
适用范围:
- SQL Server
本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 将数据库还原到 SQL Server 中的某个时间点。 本主题仅与使用完整恢复模式或大容量日志恢复模式的 SQL Server 数据库相关。
在大容量日志恢复模式下,如果日志备份包含大容量更改,则不能使用时点恢复方式恢复到该备份内的某个点。 必须将数据库恢复到事务日志备份的结尾。
1、安全性
1.1、权限
如果不存在要还原的数据库,则用户必须有 CREATE DATABASE 权限才能执行 RESTORE。 如果数据库存在,则 RESTORE 权限默认授予 sysadmin 和 dbcreator 固定服务器角色成员以及数据库的所有者 (dbo)(对于 FROM DATABASE_SNAPSHOT 选项,数据库始终存在)。
RESTORE 权限被授予那些成员身份信息始终可由服务器使用的角色。 因为只有在固定数据库可以访问且没有损坏时(在执行 RESTORE 时并不会总是这样)才能检查固定数据库角色成员身份,所以 db_owner 固定数据库角色成员没有 RESTORE 权限。
2、使用 SQL Server Management Studio
将数据库还原到时间点
-
在对象资源管理器中,连接到相应的 SQL Server 实例,然后展开服务器树。
-
展开 “数据库” 。 根据具体的数据库,选择一个用户数据库,或展开“系统数据库”并选择一个系统数据库。
-
右键单击数据库,指向“任务”,再指向“还原”,然后单击“数据库”。
-
在 “常规” 页上,使用 “源” 部分指定要还原的备份集的源和位置。 选择以下任一选项:
-
Database
从下拉列表中选择要还原的数据库。 此列表仅包含已根据 msdb 备份历史记录进行备份的数据库。
备注如果备份是从另一台服务器执行的,则目标服务器不具有指定数据库的备份历史记录信息。 这种情况下,请选择 “设备” 以手动指定要还原的文件或设备。
-
设备
单击“浏览”按钮 (…) 以打开“选择备份设备”对话框。 在 “备份介质类型” 框中,从列出的设备类型中选择一种。 若要为 “备份介质” 框选择一个或多个设备,请单击 “添加”。
将所需设备添加到 “备份介质” 列表框后,单击 “确定” 返回到 “常规” 页。
在 “源: 设备: 数据库” 列表框中,选择应还原的数据库名称。
注意 :此列表仅在选择了 “设备” 时才可用。 只有在所选设备上具有备份的数据库才可用。
-
在 “目标” 部分中, “数据库” 框自动填充要还原的数据库的名称。 若要更改数据库名称,请在 “数据库” 框中输入新名称。
-
单击 “时间线” 以访问 “备份时间线” 对话框。
-
在 “还原到” 部分中,单击 “具体日期和时间”。
-
使用 “日期” 和 “时间” 框或滑动条来指定应停止还原的具体日期和时间。 选择“确定”。
备注使用“时间线间隔”框更改时间线上显示的时间量。
-
指定具体时点后,数据库恢复顾问确保只有需要还原到该时点的那些备份在 “要还原的备份集” 网格的 “还原” 列中处于选中状态。 这些选定的备份构成了为您的时点还原建议的还原计划。 应当仅使用选定的备份进行时点还原操作。
有关“用于还原的备份集”网格中的列的信息,请参阅还原数据库(“常规”页)。 有关数据库恢复顾问的信息,请参阅还原和恢复概述 (SQL Server)。
-
在 “选项” 页的 “还原选项” 面板中,可以根据您的实际情况选择下列任意选项:
-
覆盖现有数据库(WITH REPLACE)
-
保留复制设置(WITH KEEP_REPLICATION)
-
限制对还原数据库的访问(WITH RESTRICTED_USER)
有关这些选项的详细信息,请参阅还原数据库(“选项”页)。
https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-database-options-page?view=sql-server-ver16
- 为 “恢复状态” 框选择一个选项。 此框确定还原操作之后的数据库状态。
-
RESTORE WITH RECOVERY 是默认行为,它通过回滚未提交的事务,使数据库处于可以使用的状态。 无法还原其他事务日志。 如果您要立即还原所有必要的备份,则选择此选项。
-
RESTORE WITH NORECOVERY 不对数据库执行任何操作,不回滚未提交的事务。 可以还原其他事务日志。 除非恢复数据库,否则无法使用数据库。
-
RESTORE WITH STANDBY 使数据库处于只读模式。 它撤消未提交的事务,但将撤消操作保存在备用文件中,以便能够还原恢复结果。
有关这些选项的说明,请参阅还原数据库(“选项”页)。
https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-database-options-page?view=sql-server-ver16
-
如果对于选择的时间点是必需的,则选择“还原前进行结尾日志备份”。 无需修改此设置,但可以选择备份日志尾部(即使不需要)。
-
如果存在与数据库的活动连接,则还原操作可能会失败。 选中“关闭现有连接”选项以确保关闭 Management Studio 和数据库之间的所有活动连接。 此复选框可在执行还原操作之前将数据库设置为单用户模式,并在该操作完成后将数据库设置为多用户模式。
-
如果要在每个还原操作之间进行提示,请选择 “还原每个备份之前进行提示” 。 除非数据库过大并且您要监视还原操作的状态,否则通常没有必要选中该选项。
3、“使用 Transact-SQL”
3.1、开始之前
始终从日志备份还原到指定时间。 在还原序列的每个 RESTORE LOG 语句中,必须在相同的 STOPAT 子句中指定目标时间或事务。 作为时点还原的先决条件,必须首先还原其端点早于目标还原时间的完整数据库备份。 只要您之后还原每个随后日志备份(到达和包括包含目标时间点的日志备份),该完整数据库备份就可以早于最近的完整数据库备份。
如果数据备份太临近指定的目标时间,而需帮助识别要还原哪个数据库备份,则可以在 RESTORE DATABASE 语句中可选地指定 WITH STOPAT 子句以引发错误。 始终会还原完整数据备份,即使该数据备份包含目标时间也同样如此。
3.2、基本 Transact-SQL 语法
RESTORE LOG database_name FROM <backup_device> WITH STOPAT =time, RECOVERY...
恢复点是在 time 指定的 datetime值或之前发生的最新的事务提交。
要只还原在特定时间点之前所做的修改,请为还原的每个备份指定 WITH STOPAT time=。 这样确保了不会超出目标时间。
3.3、将数据库还原到时间点
-
连接到您要还原数据库的服务器实例。
-
执行使用 NORECOVERY 选项的 RESTORE DATABASE 语句。
!!备注如果部分还原顺序不包括任何 FILESTREAM 文件组,则不支持时间点还原。 可以强制该还原顺序以继续执行操作。 但在 RESTORE 语句中省略的 FILESTREAM 文件组将永远无法还原。 若要强制执行时点还原,请指定 CONTINUE_AFTER_ERROR 选项以及 STOPAT、STOPATMARK 或 STOPBEFOREMARK 选项,还必须在随后的 RESTORE LOG 语句中指定后面的三个选项。 如果指定 CONTINUE_AFTER_ERROR,则部分还原顺序将成功,但 FILESTREAM 文件组将不可恢复。
-
还原上次差异数据库备份(如果有),而不恢复数据库 (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY)。
-
以创建事务日志备份的相同顺序应用每个事务日志备份,同时指定要停止还原日志的时间 (RESTORE DATABASE database_name FROM <backup_device> WITH STOPAT = time , RECOVERY)。
!!备注RECOVERY 和 STOPAT 选项。 如果事务日志备份不包含要求的时间(例如,如果指定的时间超出了事务日志所包含的时间范围),则会生成警告,并且不会恢复数据库。
3.4、示例 (Transact-SQL)
下面的示例将数据库还原到它在 2024-12-11 16:32:68 的状态,并显示涉及多个日志备份的还原操作。 在备份设备上,要还原的完整数据库备份 AdventureWorksBackups是设备上的第三个备份集 (FILE = 3),第一个日志备份是第四个备份集 (FILE = 4),第二个日志备份是第五个备份集 (FILE = 5)。
!!!重要AdventureWorks2022 数据库使用简单恢复模式。
若要允许日志备份,请在完整备份数据库之前,使用 ALTER DATABASE AdventureWorks SET RECOVERY FULL将数据库设置为使用完整恢复模式。
RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups WITH FILE=3, NORECOVERY; RESTORE LOG AdventureWorks FROM AdventureWorksBackups WITH FILE=4, NORECOVERY, STOPAT = '2024-12-11 16:32:68'; RESTORE LOG AdventureWorks FROM AdventureWorksBackups WITH FILE=5, NORECOVERY, STOPAT = '2024-12-11 16:32:68';
RESTORE DATABASE AdventureWorks WITH RECOVERY;
GO
相关文章:
SQL Server 数据库还原到某个时点(完整恢复模式)
将 SQL Server 数据库还原到某个时点(完整恢复模式) 适用范围: SQL Server 本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 将数据库还原到 SQL Server 中的某个时间点。 本主题仅与使用完整恢复模式或大容量日志恢复模…...

埃隆马斯克X-AI发布Grok-2大模型,快来体验~
引言 近年来,人工智能技术的快速发展推动了大语言模型的广泛应用。无论是日常生活中的智能助手,还是行业中的自动化解决方案,大语言模型都扮演着越来越重要的角色。2024年,X-AI推出了新一代的大模型——Grok-2,这款模…...
Python工厂设计模式:简化对象创建
Python工厂设计模式:简化对象创建 引言什么是工厂模式?简单工厂模式示例定义基类和子类创建工厂类使用工厂创建对象 优点使用场景总结 引言 在编程中,我们经常需要创建不同的对象,但有时创建对象的逻辑可能会变得复杂。工厂设计模…...

【隐私计算篇】隐私集合求交(PSI)原理深入浅出
隐私集合求交技术是多方安全计算领域的一个子问题,通常也被称为安全求交、隐私保护集合交集或者隐私交集技术等,其目的是允许持有各自数据集的双方或者多方,执行两方或者多方集合的交集计算,当PSI执行完成,一方或者两方…...
工作中常用的8种设计模式
前言 设计模式在我们日常的软件开发中无处不在,它们帮助我们编写更易扩展、更具可读性的代码。 今天结合我实际工作场景和源码实例,跟大家一起聊聊工作中最常用的8种设计模式,希望对你会有所帮助。 1. 单例模式 单例模式确保一个类只有一…...

Qwen 论文阅读记录
本文仅作自己初步熟悉大模型,梳理之用,慢慢会更改/增加/删除,部分细节尚未解释,希望不断学习之后,能够完善补充。若有同道之人,欢迎指正探讨。 关于后面的code-qwen and math-qwen,我个人认为依…...
自动驾驶:百年演进
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在…...

SSM 校园一卡通密钥管理系统 PF 于校园图书借阅管理的安全保障
摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装校园一卡通密钥管理系统软件来发挥其高效地信息处理的作用&a…...
什么叫中间件服务器?
什么叫中间件服务器?它在软件架构中扮演着怎样的角色?在现代应用程序开发中,中间件服务器的概念很多人对它并不太熟悉,但其实它的作用却不小。 中间件服务器是一种连接不同软件应用程序的中介。想象一下,在一个大型企…...

【docker】12. Docker Volume(存储卷)
什么是存储卷? 存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。这就意味着,当我们在容器中的这个目录下写入数据时,容器会将其内容直接写入到宿主机上与此容器建立了绑定关系的目录。 在宿主机上…...

SpringBoot【八】mybatis-plus条件构造器使用手册!
一、前言🔥 环境说明:Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 经过上一期的mybatis-plus 入门教学,想必大家对它不是非常陌生了吧,这期呢,我主要是围绕以下几点展开,重点给大家介绍 里…...

OpenAI直播发布第4天:ChatGPT Canvas全面升级,免费开放!
大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…...

自学高考的挑战与应对:心理调适、学习方法改进与考试技巧提升
一、自学参加高考的成功条件 (一)报名条件 基本要求 自学参加高考,首先需严格遵守国家的法律法规,这是参与高考的基本前提。具备高中同等学力是核心要素之一,意味着考生需通过自学掌握高中阶段的知识体系与学习能力…...

2024年12月11日Github流行趋势
项目名称:maigret 项目维护者:soxoj, kustermariocoding, dependabot, fen0s, cyb3rk0tik项目介绍:通过用户名从数千个站点收集个人档案信息的工具。项目star数:12,055项目fork数:870 项目名称:uv 项目维护…...
Next.js配置教程:构建自定义服务器
更多有关Next.js教程,请查阅: 【目录】Next.js 独立开发系列教程-CSDN博客 目录 前言 1. 什么是自定义服务器? 2. 配置自定义服务器 2.1 基础配置 2.2 集成不同的服务器框架 使用Fastify 使用Koa 3. 自定义服务器的高级功能 3.1 路…...
SpringCloud 题库
这篇文章是关于 SpringCloud 面试题的汇总,包括微服务的概念、SpringCloud 的组成及相关技术,如服务注册与发现、负载均衡、容错等,还涉及 Nacos 配置中心、服务注册表结构等原理,以及微服务架构中的日志采集、服务网关、相关概念…...
基于Filebeat打造高效日志收集流水线
1. 引言 在现代的分布式系统中,日志数据的收集、存储与分析已经成为不可或缺的一部分。随着应用程序、服务和微服务架构的普及,日志数据呈现出爆炸式增长。日志不仅是系统运行的“侦探”,能够帮助我们在出现问题时进行快速排查,还…...

《HTML 的变革之路:从过去到未来》
一、HTML 的发展历程 图片: HTML 从诞生至今,经历了多个版本的迭代。 (一)早期版本 HTML 3.2 在 1997 年 1 月 14 日成为 W3C 推荐标准,提供了表格、文字绕排和复杂数学元素显示等新特性,但因实现复杂且缺乏浏览器…...

快速了解 Aurora DSQL
上周在 AWS re:Invent大会(类似于阿里云的云栖大会)上推出了新的产品 Aurora DSQL[1] ,在数据库层面提供了多区域、多点一致性写入的能力,兼容 PostgreSQL。并声称,在多语句跨区域的场景下,延迟只有Google …...

计算机视觉与医学的结合:推动医学领域研究的新机遇
目录 引言医学领域面临的发文难题计算机视觉与医学的结合:发展趋势计算机视觉结合医学的研究方向高区位参考文章结语 引言 计算机视觉(Computer Vision, CV)技术作为人工智能的重要分支,已经在多个领域取得了显著的应用成果&…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...