MSSQL 仅复制备份和其他备份类型

在使用MS SQL Server的时候,为了保证数据的安全,防止意外丢失,我们经常会对数据库进行备份,因为使用备份文件我们可以恢复丢失的数据。为了满足不同的需求,SQL Server 提供了多种备份类型。以下是 SQL Server 中常见的备份类型。

  • 完整备份
  • 差异备份
  • 事务日志备份
  • 尾日志备份
  • 仅复制备份
  • 文件备份
  • 部分备份

如你看到的,SQL 服务器备份涵盖了广泛的知识。一篇文章篇幅有限,难以涵盖所有类型。因此本文只介绍MS SQL “仅复制备份”。

数据库服务器

什么是MSSQL仅复制备份

MSSQL 仅复制备份是原始数据库的标准副本,它独立于常规 SQL Server 备份的顺序。创建SQL Server copy-only备份时,不会截断事务日志,也不会干扰正常的备份任务,因此不会影响后面的恢复。

完全备份和仅复制备份的区别

完全备份和仅复制备份的唯一区别是,仅复制备份不更新数据库备份LSN(日志序列号),而完全备份在执行时会自动更新LSN。

✦ 让我们举个例子来解释这一切。当您执行SQL Server 差异备份,首先你需要创建一个完整备份作为差异基础,然后是一系列的差异备份。恢复时,需要恢复这个全量备份和最新的差异备份。

差异备份的数据库备份 LSN 应与完整备份匹配。如果不匹配,则SQL Server 不会将此完整备份与此差异备份合并,这将导致还原失败。

但是,如果您在常规差异备份任务中手动执行完整备份,则以后的差异备份将基于您所做的完整备份,而不是原始备份。还原时,最新的差异备份将与原始的完整备份不匹配,因此您可能会失败。

而仅复制备份不会更新 LSN,因此不会影响以后的差异备份,您也不会失败。

MSSQL 仅复制备份的类型

基本上,有两种类型的MSSQL仅复制备份,每一种都适用于不同的情况。

“仅复制完整备份:(”适用于所有恢复模型):仅复制完整备份是不影响差异备份的差异基础的完整备份,它不会更新数据库备份 LSN。恢复仅复制完整备份的步骤与恢复任何其他完整备份的步骤完全相同。

Copy-only log backups:(仅适用于full recovery model和bulk-logged recovery model):和copy-only full backup一样,copy-only log backup不影响常规日志备份的顺序。它不会截断事务日志。通常,仅复制日志备份在实践中很少使用,除了有时执行在线恢复。

如何创建MSSQL仅复制备份

创建仅复制备份的过程非常简单。在SQL Server 2005及之后的版本中,我们只需要在常规备份过程中勾选“仅复制备份”选项即可。当然,如果需要,您也可以通过 T-SQL 命令或 Powershell 来完成。

在这里,我将为您提供所有 3 种方式的详细步骤。

方式 1. 使用 SSMS GUI 创建仅复制备份

通过 SSMS GUI 创建 MS SQL 仅复制备份,除了勾选选项卡上的 “仅复制备份” 选项外,其余步骤与常规备份过程完全相同。下面是具体步骤。

1. 启动SQL Server Management Studio (SSMS)并连接到您的实例。

2. 右键单击​​要备份的数据库名称,选择“任务”>“备份…”

创建备份

3. 在弹出窗口中,选择“备份类型”(完整或事务日志。您不能创建仅复制差异备份)。

4. 选中备份类型下方的“仅复制备份”选项。

5. 指定存储备份文件的“目标路径”

备份设置

6. 单击“确定”执行备份任务。

方式 2. 使用 T-SQL 命令创建仅复制备份

T-SQL 是 MS SQL Server 用来与数据库通信的 SQL 语言的扩展。要创建MSSQL仅复制备份,您只需在 BACKUP DATABASE 语句中使用 COPY_ONLY 参数。基本语法是:

仅复制完整备份:

BACKUP DATABASE databasename TO DISK = ' filepath\filename_Copy.bak ' WITH COPY_ONLY;

仅复制日志备份:

BACKUP LOG databasename TO DISK = ' filepath\filename_LogCopy.trn ' WITH COPY_ONLY;

这里我举个“例子”来解释如何根据您的需求定制它们:

✦ 我想创建数据库DAname的仅复制备份,并将备份文件存储在D:\Backup中。我将执行以下步骤:

1. 启动SSMS并连接到我的实例。

2. 单击标准栏上的“新建查询”,然后输入以下 T-SQL 命令:

BACKUP DATABASE DAname TO DISK = ' D:\Backup\DA_Copy.bak ' WITH COPY_ONLY;
BACKUP LOG DAname TO DISK = ' D:\Backup\DA_LogCopy.trn ' WITH COPY_ONLY;

3. 单击工具栏上的“执行”开始备份。

使用 T-SQL 创建仅复制备份

方式 3. 在 PowerShell 中执行MSSQL仅复制备份

要在 Powershell 中执行 MS SQL 仅复制备份,您需要将 Backup-SqlDatabase cmdlet 与 -CopyOnly 参数一起使用。基本语法是:

Backup-SqlDatabase -ServerInstance ' instancename ' -Database ' databasename ' -BackupFile ' filepath\filename_Copy.bak ' -CopyOnly

和上一种方法一样,我举个例子给大家看看如何使用:

✦ 我想创建数据库DAname的仅复制备份,并将备份文件存储在D:\Backup中。下面是具体步骤:

1. 以管理员身份启动Windows PowerShell (ISE)(您可以使用搜索框找到它)。

2. 输入以下 T-SQL 命令:

Backup-SqlDatabase -ServerInstance ' BF-202106171848\MSSERVER' - Database'DAname' -BackupFile'D :\Backup\DAname_Copy.bak' -CopyOnly

3. 单击工具栏上的“运行脚本”(绿色三角形)运行它。

使用 PowerShell 创建仅复制备份

安排和恢复差异备份的无差错方式

如您所见,如果您在计划的差异备份任务中不小心执行了完整备份,您可能会在以后的恢复中失败,并导致数据丢失。因此,我建议您使用专业的备份软件傲梅企业备份网络版 作为一个不那么麻烦的选择。

当您使用傲梅企业备份网络版进行差异备份时,即使中途再进行一次全量备份,“也不会影响差异备份的恢复”。此外,从差异备份中恢复数据库时,只需在按备份类型和日期组织的列表中选择相应的差异备份即可,无需提前手动恢复完整备份。

此外,使用此软件,您可以从一台计算机集中控制 LAN 内的所有笔记本电脑、工作站和服务器,并远程备份一个或多个数据库。还原时,您还可以选择还原到原始位置或其中任何一个位置。这样可以减少错误并节省管理成本。

为您提供180天免费试用:

要正确使用傲梅企业备份网络版,尤其是您要管理局域网内的多台计算机,您需要先进入“ 计算机” 页面。单击 上方栏的  安装客户端程序可 手动或远程下载客户端计算机上的Agent 。

安装客户端程序

对于那些手动下载客户端程序的计算机,您需要请求对其进行控制才能进行进一步的操作。

单击“计算机” > “不受控制的计算机”,选择一台或多台客户端计算机,然后单击上方栏中的“请求控制” 。

请求控制

他们的电脑上会弹出一个权限请求窗口,一旦收到所有权限,您就可以随时管理他们。

如何创建 SQL 全量或差异备份任务

1. 点击“任务” > “新建任务”,选择“SQL Server Backup”新建备份任务。

创建 SQL Server 备份任务

在弹出窗口中,您可以通过将光标移动到任务名称并单击它来更改任务名称。

SQL Server 备份过程

然后按照任务名称下方的 3 个步骤进行操作。

2. 单击“添加计算机”添加您要用于备份的受控客户端计算机。

添加计算机

3. 单击“添加”选择要备份的单个或多个SQL 实例和数据库。

选择数据库

4. 选择一个位置作为“目标路径”。您可以单击“添加存储”来添加共享或NAS 路径作为存储端。

选择目标路径

单击“设置”。您还可以启用备份加密、电子邮件通知并为备份选择压缩级别。

选择压缩级别

5. 单击设置旁边的“计划”,您还可以指定自动运行此任务的日期和时间。

日程设置

6. 在Schedule Settings 页面点击“高级”,选择执行完全和差异备份

选择创建完整或差异备份

7. 现在您可以单击“开始备份”以选择““仅创建任务””或“创建并执行任务”

开始备份

创建后,任务将单独列在“任务”中,以供进一步编辑或恢复。恢复时,它会列出所有备份,并通过名称中的备份类型和日期来区分它们。

如何恢复完整或差异备份

1. 点击SQL Server备份任务右上角的“高级,选择”“恢复”

恢复

2. 在提示窗口中选择要恢复的“客户端计算机”和单个或多个“数据库”

选择单个或多个数据库

3. 现在您可以在右上角看到以备份类型和日期命名的备份列表,选择您要还原的特定备份(完整/差异) 。

如果要从差异备份中恢复数据库,则无需提前手动恢复完整备份。

单击“下一步”

选择特定备份

4. 选择“恢复到原始位置”“恢复到新位置”

如果你选择后者,你可以将备份还原到同一台或另一台服务器上的另一个实例局域网内。

恢复到新位置

5. 现在您可以点击“开始恢复”

概括

MSSQL 仅复制备份是一个非常有用的功能。它与全量备份的唯一区别在于它不影响后续的差异备份,避免了恢复失败。当您需要数据库副本进行测试或开发时,执行仅副本备份可能是一个不错的选择。

您也可以选择专业的备份软件傲梅企业备份网络版进行备份。当您使用它来执行差异备份任务时,即使您在中间执行了一次完整备份,也不会影响后面的恢复,因此您无需另外选择仅复制备份。此外,恢复时,直接选择差异备份即可,无需提前手动恢复全量备份。

此外,使用此软件您还可以集中备份局域网内的所有设备,从一台计算机远程备份这些设备上的数据库、文件、磁盘、系统、分区等。还原时,您可以选择还原到本地或局域网内的任何其他设备,可以减少手动错误,显着提高工作效率。