文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SQL Server备份与恢复- 恢复模型探究

2024-12-01 16:06

关注

1、概述

为了创建正确的备份,第一件事是为每个数据库设置正确的恢复模型。恢复模型基本上告诉 SQL Server 哪些数据要保留在事务日志文件中以及保留多长时间。根据选择的恢复模式,这还将确定您可以执行哪些类型的备份以及可以执行哪些类型的数据库还原。

2、三种恢复模式

您可以选择的三种恢复模式是:

每个数据库只能有一个恢复模式,但每个数据库都可以使用不同的恢复模式,因此根据处理和备份需求,您可以为每个数据库选择合适的恢复模式。唯一的例外是必须使用“简单”恢复模型的 TempDB 数据库。

此外,可以随时更改数据库恢复模式,但这会影响您的备份链,因此最好在更改恢复模式后进行完整备份。

可以使用 T-SQL 或 SQL Server Management Studio 更改恢复模型。以下是有关如何执行此操作的示例。

使用 T-SQL 更改 AdventureWorks 数据库的“完全”恢复。

ALTER DATABASE AdventureWorks SET RECOVERY FULL
GO

使用 SSMS 更改 AdventureWorks 数据库的恢复模式。

3、完整恢复模型

完整恢复模型告诉 SQL Server 将所有事务数据保留在事务日志中,直到发生事务日志备份或事务日志被截断。其工作方式是针对 SQL Server 发出的所有事务首先进入事务日志,然后将数据写入适当的数据文件。这允许 SQL Server 回滚过程的每个步骤,以防出现错误或事务由于某种原因被取消。因此,当数据库设置为“完整”恢复模式时,由于所有事务都已保存,因此您可以进行时间点恢复,这意味着您可以恢复到事务发生之前的某个点,就像意外删除所有事务一样表中的数据。

完整恢复模式是最完整的恢复模式,只要所有备份文件可用且可读,您就可以将所有数据恢复到任何时间点。使用此模型,所有操作都被完整记录,这意味着您可以将数据库恢复到任何点。此外,如果数据库设置为完全恢复模式,您还需要发出事务日志备份,否则您的数据库事务日志将永远持续增长。

以下是您可能选择此恢复模式的一些原因:

当数据处于“完整”恢复模式时可以运行的备份类型:

使用 T-SQL 设置 SQL Server 完整恢复模型

ALTER DATABASE dbName SET RECOVERY recoveryOption
GO

示例:将 AdventureWorks 数据库更改为“完整”恢复模式

ALTER DATABASE AdventureWorks SET RECOVERY FULL
GO

使用 Management Studio 设置 SQL Server 完整恢复模式

4、简单恢复模型

它为您提供了一个简单的备份,可用于在发生故障或需要将数据库恢复到另一台服务器时替换整个数据库。使用这种恢复模式,您可以进行完整备份(整个副本)或差异备份(自上次完整备份以来的任何更改)。使用此恢复模式,您将面临自上次备份完成以来的任何故障,因为您只能将数据恢复到备份发生的时间点。

“简单”恢复模型是 SQL Server 最基本的恢复模型。每个事务仍然写入事务日志,但是一旦事务完成并且数据已写入数据文件,事务日志文件中使用的空间可以被新事务重用。由于此空间被重复使用,因此无法进行时间点恢复,因此最近的还原点将是完整备份或已完成的最新差异备份。此外,由于事务日志中的空间可以重复使用,事务日志不会像“完全”恢复模型中提到的那样永远增长。

以下是您可能选择此恢复模式的一些原因:

当数据处于“简单”恢复模式时可以运行的备份类型:

使用 T-SQL 设置 SQL Server 简单恢复模型

ALTER DATABASE dbName SET RECOVERY recoveryOption
GO

示例:将 AdventureWorks 数据库更改为“简单”恢复模式

ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE
GO

使用 Management Studio 设置 SQL Server 简单恢复模型


5、大容量日志恢复模型

在此模型中,某些批量操作(例如 BULK INSERT、CREATE INDEX、SELECT INTO 等)并未完全记录在事务日志中,因此不会在事务日志中占用太多空间。

使用“批量记录”恢复模型的优点是,如果您正在执行大量批量操作,您的事务日志不会变得那么大,并且只要您的最后一个事务日志备份没有,它仍然允许您进行时间点恢复包括批量操作。如果未运行批量操作,则此恢复模式与完全恢复模式的工作方式相同。需要注意的一点是,如果您使用这种恢复模式,您还需要发出事务日志备份,否则您的数据库事务日志将继续增长。

以下是您可能选择此恢复模式的一些原因:

当数据处于“批量记录”恢复模式时,您可以运行的备份类型:

使用 T-SQL 设置 SQL Server 大容量日志恢复模型

ALTER DATABASE dbName SET RECOVERY recoveryOption
GO

示例:将 AdventureWorks 数据库更改为“批量记录”恢复模式

ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED
GO

使用 Management Studio 设置 SQL Server 批量日志恢复模型


6、大容量日志恢复模型

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯