加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MSSQL日常运维之将 SQL Server 数据库还原到某个时点(完整恢复模式

发布时间:2022-10-18 21:30:59 所属栏目:MsSql教程 来源:转载
导读: MSSQL日常运维之将 SQL Server 数据库还原到某个时点(完整恢复模式)
MSSQL日常运维之将 SQL Server 数据库还原到某个时点(完整恢复模式)

本文说明如何使用 SQL Server 2014 或 SQL Se

MSSQL日常运维之将 SQL Server 数据库还原到某个时点(完整恢复模式)

MSSQL日常运维之将 SQL Server 数据库还原到某个时点(完整恢复模式)

MSSQL日常运维之将 SQL Server 数据库还原到某个时点(完整恢复模式)

本文说明如何使用 SQL Server 2014 或 SQL Server Management Studio 将数据库还原到 Transact-SQL中的某个时间点。本文仅与使用完整恢复模式或大容量日志恢复模式的 SQL Server 数据库有关。

重要在大容量日志恢复模式下,如果日志备份包含大容量更改,则不能使用时点恢复方式恢复到该备份内的某个点。必须将数据库恢复到事务日志备份的结尾。

一、使用 SQL Server Management Studio将数据库还原到时间点1.在“对象资源管理器”中,连接到相应的 SQL Server 数据库引擎实例,然后展开服务器树。

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

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

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

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

.“设备”单击“浏览”按钮 ( ... ) 以打开“选择备份设备” 对话框。在 “备份介质类型” 框中mssql免费数据库,从列出的设备类型中选择一种。若要为 “备份介质” 框选择一个或多个设备,请单击 “添加” 。将所需设备添加到 “备份介质” 列表框后,单击 “确定” 返回到 “常规” 页。在“源:设备:数据库”列表框中,选择应还原的数据库名称**。注意 :此列表仅在选择了 “设备” 时才可用。只有在所选设备上具有备份的数据库才可用。

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

6.单击 “时间线” 以访问 “备份时间线” 对话框。

7.在 “还原到” 部分中,单击 “具体日期和时间” 。

8.使用 “日期” 和 “时间” 框或滑动条来指定应停止还原的具体日期和时间。单击 “确定” 中创建非聚集索引。

9.指定具体时点后,数据库恢复顾问确保只有需要还原到该时点的那些备份在 “要还原的备份集” 网格的 “还原” 列中处于选中状态。这些选定的备份构成了为您的时点还原建议的还原计划。应当仅使用选定的备份进行时点还原操作。

10.在 “选项” 页的 “还原选项” 面板中,可以根据您的实际情况选择下列任意选项:覆盖现有数据库(WITH REPLACE)保留复制设置(WITH KEEP_REPLICATION)限制对还原数据库的访问(WITH RESTRICTED_USER)

11.为 “恢复状态” 框选择一个选项。此框确定还原操作之后的数据库状态。RESTORE WITH RECOVERY 是默认行为,它通过回滚未提交的事务,使数据库处于可以使用的状态。无法还原其他事务日志。如果您要立即还原所有必要的备份,则选择此选项。RESTORE WITH NORECOVERY 不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。除非恢复数据库,否则无法使用数据库。RESTORE WITH STANDBY 使数据库处于只读模式。它撤消未提交的事务,但将撤消操作保存在备用文件中,以便能够还原恢复结果。

12.如果对于选择的时间点是必需的,则选择“还原前进行结尾日志备份” 。无需修改此设置,但可以选择备份日志尾部(即使不需要)。

13.如果存在与数据库的活动连接,则还原操作可能会失败。选中 “关闭现有连接” 以确保关闭 Management Studio 和数据库之间的所有活动连接。此复选框可在执行还原操作之前将数据库设置为单用户模式,并在该操作完成后将数据库设置为多用户模式。

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

二、使用 Transact-SQLBefore you begin始终从日志备份还原到指定时间。在还原序列的每个 RESTORE LOG 语句中,必须在相同的 STOPAT 子句中指定目标时间或事务。作为时点还原的先决条件,必须首先还原其端点早于目标还原时间的完整数据库备份。只要您之后还原每个随后日志备份(到达和包括包含目标时间点的日志备份),该完整数据库备份就可以早于最近的完整数据库备份。

如果数据备份太临近指定的目标时间,而需帮助识别要还原哪个数据库备份,则可以在 RESTORE DATABASE 语句中可选地指定 WITH STOPAT 子句以引发错误。始终会还原完整数据备份,即使该数据备份包含目标时间也同样如此。

基本 Transact-SQL 语法

RESTORE LOG database_name FROM < 备份设备 > WITH STOPAT = time , 恢复...

恢复点是最新或之前发生的事务提交datetime由指定的值时间。若要只还原在特定时间点之前所做的修改,请为还原的每个备份指定 WITH STOPAT = time 。这样确保了不会超出目标时间。

1.连接到您要还原数据库的服务器实例。

2.执行使用 NORECOVERY 选项的 RESTORE DATABASE 语句。备注如果部分还原顺序不包括任何 FILESTREAM 文件组,则不支持时间点还原。可以强制该还原顺序以继续执行操作。但在 RESTORE 语句中省略的 FILESTREAM 文件组将永远无法还原。若要强制执行时点还 原,请指定 CONTINUE_AFTER_ERROR 选项以及 STOPAT、STOPATMARK 或 STOPBEFOREMARK 选项,还必须在随后的 RESTORE LOG 语句中指定后面的三个选项。如果指定 CONTINUE_AFTER_ERROR,则部分还原顺序将成功,但 FILESTREAM 文件组将不可恢复。

3.还原上次差异数据库备份(如果有),而不恢复数据库

(RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY)。

4.应用每个事务日志备份中相同的顺序在其中创建了它们,指定想要停止还原日志的时间

(RESTORE DATABASE database_name FROM < 备份设备 > WITH STOPAT = time , 恢复)。

备注RECOVERY 和 STOPAT 选项。如果事务日志备份不包含要求的时间(例如,如果指定的时间超出了事务日志所包含的时间范围),则会生成警告,并且不会恢复数据库。

示例 (Transact-SQL)下面的示例将数据库还原到它在 12:00 AM 的 April 15, 2020 的状态,并显示涉及多个日志备份的还原操作。在备份设备上,要还原的完整数据库备份 AdventureWorksBackups是设备上的第三个备份集 (FILE = 3),第一个日志备份是第四个备份集 (FILE = 4),第二个日志备份是第五个备份集 (FILE = 5)。

RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups WITH FILE=3, NORECOVERY;RESTORE LOG AdventureWorks FROM AdventureWorksBackups WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';RESTORE LOG AdventureWorks FROM AdventureWorksBackups WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM'; RESTORE DATABASE AdventureWorks WITH RECOVERY; GO

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!