文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

SQL Server 备份的备份类型探究

2024-12-01 15:49

关注

一、背景描述

我们知道数据数据库的恢复模型决定了可以执行哪些类型的备份。在本节中,我们将讨论每个备份选项以及如何使用 SSMS 和 T-SQL 执行这些备份。

在本文中我们讨论如下内容:

二、SQLSERVER备份类型

1、SQL Server 完整备份

最常见的 SQL Server 备份类型是完整备份,也称为数据库备份。这些备份会创建数据库的完整备份以及事务日志的一部分,因此可以恢复数据库。这是最简单的数据库恢复形式,因为所有内容都包含在一个备份中。

创建完整备份

可以使用 T-SQL 或使用 SSMS 完成完整备份。以下示例向您展示如何创建完整备份。

可以使用 T-SQL 或使用 SSMS 完成完整备份。以下示例向您展示如何创建完整备份。

创建完整的 SQL Server 数据库备份到一个磁盘文件

T-SQL

这将创建 AdventureWorks 数据库的完整备份并将备份内容写入文件“C:\AdventureWorks.BAK”。.BAK 扩展名通常用于标识备份是完整的数据库备份。

BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks.BAK'
GO

SQL Server Management Studio

2、SQL Server 事务日志备份

如果您的数据库设置为“完整”或“批量记录”恢复模式,那么您将能够进行“事务日志”备份。通过事务日志备份和完整备份,您可以进行时间点恢复,因此如果有人意外删除了数据库中的所有数据,您可以将数据库恢复到删除发生之前的时间点。唯一需要注意的是,如果您的数据库设置为“批量记录”恢复模式并做出批量操作,您将需要还原整个事务日志,因此您无法使用事务日志进行时间点还原包含批量记录操作的备份。

事务日志备份允许您备份事务日志。事务日志备份时,事务日志内的空间可以被其他进程重用。如果未进行事务日志备份并且数据库未使用简单恢复模式,则事务日志将继续增长。

可以使用 T-SQL 或使用 SSMS 完成事务日志备份。以下示例向您展示如何创建事务日志备份。

创建 SQL Server 事务日志备份到一个磁盘文件

T-SQL

这将创建 AdventureWorks 数据库的事务日志备份并将备份内容写入文件“C:\AdventureWorks.TRN”。.TRN 扩展名通常用于标识备份是事务日志备份。

BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks.TRN'
GO

SQL Server Management Studio

3、差异备份

“差异”备份是对自上次“完整”备份创建以来已更改的任何范围的备份。差异备份的工作方式是备份自上次完整备份以来发生更改的所有扩展区。一个extent由8个8KB的page组成,所以一个extent就是64KB的数据。每次更改任何数据时,都会打开一个标志,以让 SQL Server 知道如果创建了“差异”备份,则它应该包括来自此范围的数据。当进行“完整”备份时,这些标志将关闭。

因此,如果您先进行完整备份,然后再进行差异备份,则差异备份将仅包含已更改的扩展区。如果您等待一段时间并进行另一次差异备份,则此新的差异备份将包含自上次完整备份以来已更改的所有扩展区。每次创建新的差异备份时,它将包含自上次完整备份以来更改的每个扩展区。当你去恢复你的数据库时,要恢复到最新的时间你只需要恢复完整备份和最近的差异备份。所有其他差异备份都可以忽略。

如果您的数据库处于简单恢复模式,您仍然可以使用完整备份和差异备份。这不允许您进行时间点恢复,但如果您只有完整备份,它将允许您将数据恢复变更的当前的时间点。

如果您的数据库处于完整或批量日志恢复模式,您还可以使用差异备份来消除需要恢复的事务日志的数量。由于差异将备份自上次完整备份以来的所有扩展区,因此在还原时您可以还原完整备份、最近的差异备份,然后是在最近的差异备份之后创建的任何事务日志备份。这减少了需要恢复的文件数量。

将 SQL Server 差异备份创建到一个磁盘文件。

T-SQL

BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks.DIF' WITH DIFFERENTIAL
GO

SQL Server Management Studio

4、SQL Server 文件备份

备份数据库的另一个选项是使用“文件”备份。这使您可以独立备份每个文件,而不必备份整个数据库。这仅在您为数据库创建了多个数据文件时才相关。这种类型的备份的一个原因是如果您有一个非常大的文件并且需要单独备份它们。在大多数情况下,您可能只有一个数据文件,因此该选项不相关。

如上所述,您可以单独备份每个数据文件。如果您有一个非常大的数据库并且有很大的数据文件,则此选项可能是相关的。

可以使用 T-SQL 或使用 SSMS 完成文件备份。

创建 TestBackup 数据库的 SQL Server 文件备份

对于此示例,我创建了一个名为 TestBackup 的新数据库,其中包含两个数据文件和一个日志文件。这两个数据文件称为“TestBackup”和“TestBackup2”。下面的代码显示了如何分别备份每个文件。

T-SQL

BACKUP DATABASE TestBackup FILE = 'TestBackup' 
TO DISK = 'C:\TestBackup_TestBackup.FIL'
GO
BACKUP DATABASE TestBackup FILE = 'TestBackup2'
TO DISK = 'C:\TestBackup_TestBackup2.FIL'
GO

SQL Server 管理工作室

5、SQL Server 文件组备份

除了进行“文件”备份之外,您还可以进行“文件组”备份,它允许您备份特定文件组中的所有文件。默认情况下,每个数据库都有一个 PRIMARY 文件组,该文件组与创建的一个数据文件相关联。您可以选择创建其他文件组,然后将新数据文件放入任何文件组中。在大多数情况下,您可能只有 PRIMARY 文件组,因此这与主题无关。

如上所述,您可以单独备份每个文件组。使用文件组备份而不是文件备份的一个优点是您可以创建一个只读文件组,这意味着数据不会更改。因此,您可以只备份读写文件组,而不是一直备份整个数据库。

可以使用 T-SQL 或使用 SSMS 完成文件组备份。

创建 TestBackup 数据库的 SQL Server 文件组备份

对于此示例,我创建了一个名为 TestBackup 的新数据库,其中包含三个数据文件和一个日志文件。两个数据文件是 PRIMARY 文件组,一个文件位于 ReadOnly 文件组中。下面的代码显示了如何进行文件组备份。

T-SQL

BACKUP DATABASE TestBackup FILEGROUP = 'ReadOnly' 
TO DISK = 'C:\TestBackup_ReadOnly.FLG'
GO

SQL Server 管理工作室

6、SQL Server 部分备份

“部分”备份是 SQL Server 2005 引入的一个新选项。这允许您备份 PRIMARY 文件组、所有读写文件组和任何可选指定的文件。如果您在数据库中有只读文件组并且不想一直备份整个数据库,这是一个不错的选择。

可以为完整备份或差异备份发布部分备份。这不能用于事务日志备份。如果文件组从只读更改为读写,它将包含在下一个部分备份中,但如果您将文件组从读写更改为只读,则应创建文件组备份,因为此文件组不会包含在下一个部分备份中。

只有使用 T-SQL 才能完成部分备份。以下示例向您展示如何创建部分备份。

创建 TestBackup 数据库的 SQL Server 部分备份

对于此示例,我创建了一个名为 TestBackup 的新数据库,其中包含三个数据文件和一个日志文件。两个数据文件是 PRIMARY 文件组,一个文件位于 ReadOnly 文件组中。下面的代码显示了如何进行部分备份。

T-SQL

创建SQL Server完整部分备份

BACKUP DATABASE TestBackup READ_WRITE_FILEGROUPS
TO DISK = 'C:\TestBackup_Partial.BAK'
GO

创建 SQL Server 差异部分备份

BACKUP DATABASE TestBackup READ_WRITE_FILEGROUPS
TO DISK = 'C:\TestBackup_Partial.DIF'
WITH DIFFERENTIAL
GO

三、小结

本文讨论了SQLSERVER备份类型,对于理解和掌握SQLSERVER的备份技术,具有很重要的意义。

来源:今日头条内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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