SQL Server数据库还原差异备份

news/2024/12/19 4:36:06/

适用范围:SQL Server

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中还原差异数据库备份。

限制和局限

  • 不允许在显式或隐式事务中使用 RESTORE。

  • 无法在早期版本的 SQL Server 中还原较新版本的 SQL Server创建的备份。

  • 在 SQL Server 中,可以从使用 SQL Server 2005 (9.x) 或更高版本创建的数据库备份来还原用户数据库

先决条件

在完整恢复模式或大容量日志恢复模式下,必须先备份活动事务日志(称为日志尾部),然后才能还原数据库

安全性

权限

如果不存在要还原的数据库,则用户必须有 CREATE DATABASE 权限才能执行 RESTORE。 如果数据库存在,则 RESTORE 权限默认授予 sysadmin 和 dbcreator 固定服务器角色成员以及数据库的所有者 (dbo)(对于 FROM DATABASE_SNAPSHOT 选项,数据库始终存在)。

RESTORE 权限被授予那些成员身份信息始终可由服务器使用的角色。 因为只有在固定数据库可以访问且没有损坏时(在执行 RESTORE 时并不会总是这样)才能检查固定数据库角色成员身份,所以 db_owner 固定数据库角色成员没有 RESTORE 权限。

使用 SQL Server Management Studio

还原差异数据库备份

  1. 连接到 Microsoft SQL Server 数据库引擎的相应实例后,在对象资源管理器中单击服务器名称以展开服务器树。

  2. 展开 “数据库” 。 根据具体的数据库,选择一个用户数据库,或展开“系统数据库”并选择一个系统数据库

  3. 右键单击数据库,指向“任务”,再指向“还原”,然后单击“数据库”。

  4. 在 “常规” 页上,使用 “源” 部分指定要还原的备份集的源和位置。 选择以下任一选项:

    • Database

      从下拉列表中选择要还原的数据库。 此列表仅包含已根据 msdb 备份历史记录进行备份的数据库

       备注如果备份是从另一台服务器执行的,则目标服务器不具有指定数据库的备份历史记录信息。 这种情况下,请选择 “设备” 以手动指定要还原的文件或设备。
      
    • 设备

      单击“浏览”按钮 (…) 以打开“选择备份设备”对话框。 在 “备份介质类型” 框中,从列出的设备类型中选择一种。 若要为 “备份介质” 框选择一个或多个设备,请单击 “添加”。

      将所需设备添加到 “备份介质” 列表框后,单击 “确定” 返回到 “常规” 页。

      在 “源: 设备: 数据库” 列表框中,选择应还原的数据库名称。

      注意 :此列表仅在选择了 “设备” 时才可用。 只有在所选设备上具有备份的数据库才可用。

  5. 在 “目标” 部分中, “数据库” 框自动填充要还原的数据库的名称。 若要更改数据库名称,请在 “数据库” 框中输入新名称。

  6. 在 “要还原的备份集” 网格中,选择要通过差异备份还原的备份。

    有关“用于还原的备份集”网格中的列的信息,请参阅还原数据库(“常规”页)。

  7. 在 “选项” 页的 “还原选项” 面板中,可以根据您的实际情况选择下列任意选项:

    • 覆盖现有数据库(WITH REPLACE)

    • 保留复制设置(WITH KEEP_REPLICATION)

    • 还原每个备份之前进行提示

    • 限制对还原数据库的访问(WITH RESTRICTED_USER)

    有关这些选项的详细信息,请参阅还原数据库(“选项”页)。

  8. 为 “恢复状态” 框选择一个选项。 此框确定还原操作之后的数据库状态。

    • RESTORE WITH RECOVERY 是默认行为,它通过回滚未提交的事务,使数据库处于可以使用的状态。 无法还原其他事务日志。 如果您要立即还原所有必要的备份,则选择此选项。

    • RESTORE WITH NORECOVERY 不对数据库执行任何操作,不回滚未提交的事务。 可以还原其他事务日志。 除非恢复数据库,否则无法使用数据库

    • RESTORE WITH STANDBY 使数据库处于只读模式。 它撤消未提交的事务,但将撤消操作保存在备用文件中,以便能够还原恢复结果。

    有关这些选项的说明,请参阅还原数据库(“选项”页)。

  9. 如果存在与数据库的活动连接,则还原操作将失败。 选中“关闭现有连接”选项以确保关闭 Management Studio 和数据库之间的所有活动连接。

  10. 如果要在每个还原操作之间进行提示,请选择 “还原每个备份之前进行提示” 。 除非数据库过大并且您要监视还原操作的状态,否则通常没有必要选中该选项。

  11. 可以使用 “文件” 页将数据库还原到一个新位置。 有关移动数据库的帮助,请参阅将数据库还原到新位置 (SQL Server)。

  12. 选择“确定”。

使用 Transact-SQL

  1. 还原差异数据库备份
    执行 RESTORE DATABASE 语句并指定 NORECOVERY 子句,以还原在差异数据库备份之前执行的完整数据库备份。 有关详细信息,请参阅 如何还原完整备份。

  2. 执行 RESTORE DATABASE 语句以还原差异数据库备份,同时指定:

    • 要应用差异数据库备份的数据库的名称。

    • 从其中还原差异数据库备份的备份设备。

    • NORECOVERY 子句,前提是在还原差异数据库备份之后,还要应用事务日志备份。 否则应指定 RECOVERY 子句。

  3. 通过完整恢复模式或大容量日志恢复模式,还原差异数据库备份可将数据库还原到差异数据库备份完成的点。 若要恢复到故障点,在创建完最后一个差异数据库备份之后,必须应用所有已创建的事务日志备份。 有关详细信息,请参阅应用事务日志备份 (SQL Server)。

示例 (Transact-SQL)

A. 还原差异数据库备份

以下示例将还原 MyAdvWorks 数据库及其差异数据库备份。

-- Assume the database is lost, and restore full database,   
-- specifying the original full database backup and NORECOVERY,   
-- which allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  FROM MyAdvWorks_1  WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  FROM MyAdvWorks_1  WITH FILE = 2,  RECOVERY;  
GO

B. 还原数据库、差异数据库以及事务日志备份

以下示例将还原 MyAdvWorks 数据库及其差异数据库和事务日志备份。

-- Assume the database is lost at this point. Now restore the full   
-- database. Specify the original full database backup and NORECOVERY.  
-- NORECOVERY allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  FROM MyAdvWorks_1  WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  FROM MyAdvWorks_1  WITH FILE = 2,  NORECOVERY;  
GO  
-- Now restore each transaction log backup created after  
-- the differential database backup.  
RESTORE LOG MyAdvWorks  FROM MyAdvWorks_log1  WITH NORECOVERY;  
GORESTORE LOG MyAdvWorks  FROM MyAdvWorks_log2  WITH RECOVERY;  
GO

http://www.ppmy.cn/news/1556296.html

相关文章

MyBatis写法汇总

Mybatis写法汇总 1. 批量操作 1.1 批量插入 <insert id"batchInsert" parameterType"java.util.List">INSERT INTO user (username, password, create_time) VALUES<foreach collection"list" item"item" separator"…

三菱协议以及C#实现

三菱 三菱的是422的只能用编程口通讯&#xff0c;只能用编程口协议。 波特率&#xff1a;9600数据位位数&#xff1a;7位停止位位数&#xff1a;1位数据校验方式&#xff1a; 偶校验 * D0&#xff1a; 1000 2000 3000 频率 * M0: 电机正转 true 、false * M1&#xff1a;电机…

有/无状态会话 与 Session 与 Spring Security

一、会话&#xff08;Session&#xff09;的基本概念 会话是服务器与客户端之间持续交互的机制。在 Web 应用中&#xff0c;每当用户通过浏览器访问应用时&#xff0c;服务器通常会为其创建一个唯一的会话标识&#xff08;Session ID&#xff09;&#xff0c;并通过 Cookie&am…

双十二年终活动淘宝天猫接口获取攻略

引言 双十二作为电商行业的重要促销节点&#xff0c;对于商家和消费者而言&#xff0c;获取淘宝天猫的相关活动数据至关重要。本文将为您提供一份详细的攻略&#xff0c;介绍如何利用Python爬虫技术获取双十二年终活动淘宝天猫接口数据。 环境准备 在开始之前&#xff0c;请…

Java 模板方法模式:打造高复用性的商品上架模块

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

【从零开始入门unity游戏开发之——C#篇06】变量类型转化和异常捕获

文章目录 一、变量类型转化1、什么是类型转换2、隐式转化相同类型之间的转换 3、显示转换3.1 括号强转语法示例注意 3.2 使用 Parse 和 TryParse 方法语法示例 3.3 使用 Convert 类进行转换语法示例 3.4 .ToString()其他类型转string语法示例 二、异常捕获1、基本语法结构2、使…

实景视频与模型叠加融合?

[视频GIS系列]无人机视频与与实景模型进行实时融合_无人机视频融合-CSDN博客文章浏览阅读1.5k次&#xff0c;点赞28次&#xff0c;收藏14次。将无人机视频与实景模型进行实时融合是一个涉及多个技术领域的复杂过程&#xff0c;主要包括无人机视频采集、实景模型构建、视频与模型…

Opencv之图像梯度处理和绘制图像轮廓

一、梯度处理的sobel算子函数 处理示意 Sobel 算子是一种常用的图像边缘检测方法&#xff0c;结合了一阶导数和高斯平滑&#xff0c;用于检测图像的梯度信息。 1、功能 Sobel 算子用于计算图像在 x 和 y 方向的梯度&#xff0c;主要功能包括&#xff1a; 强调图像中灰度值的…