仅复制备份

适用于:SQL ServerAzure SQL 托管实例

仅复制备份是独立于独立于传统 SQL Server 备份顺序的 SQL Server 备份。 通常,进行备份会更改数据库并影响其后备份的还原方式。 但是,有时在不影响数据库总体备份和还原过程的情况下,为特殊目的而进行备份还是有用的。 仅复制备份就是用于此目的。

仅复制备份的类型如下所示:

  • 仅复制完整备份(所有恢复模式)

    • 仅复制备份不能用作差异基准或差异备份,并且不影响差异基准。

    • 还原仅复制完整备份与还原任何其他完整备份相同。

  • 仅复制日志备份(仅限于完整恢复模式和大容量日志恢复模式)

    • 仅复制日志备份保留当前日志存档点,因此,不影响常规日志备份的先后顺序。 通常不必进行仅复制日志备份。 相反,可以创建新的常规日志备份(使用 WITH NORECOVERY),然后将该备份与还原顺序所需的任何以前的日志备份一起使用。 但是,仅复制日志备份有时可用于执行联机还原。 有关更多信息,请改用仅复制备份文件,按照示例:读写文件的联机还原(完整恢复模式)文章中的说明进行操作。

    • 事务日志从不在仅复制备份后出现截断。

仅复制备份记录在 backupset 表的 is_copy_only 列中。

重要

在 Azure SQL 托管实例中,无法为使用服务管理的透明数据加密 (TDE) 加密的数据库创建仅复制备份。 服务管理的 TDE 使用内部密钥对数据进行加密,并且该密钥无法导出,因此无法在其他任何地方恢复备份。 请考虑改用客户管理的 TDE 来创建加密数据库的仅复制备份,但请确保具有加密密钥供以后还原。

创建仅复制备份

可以使用 SQL Server Management Studio、Azure Data Studio、Transact-SQL 或 PowerShell 创建仅复制备份。

A. 使用 SQL Server Management Studio

在此示例中,Sales 数据库的仅复制备份将备份到磁盘的默认备份位置。

  1. 在“对象资源管理器”中,连接到一个 SQL Server 数据库引擎实例,然后展开该实例。

  2. 展开“数据库”,右键单击“Sales”,指向“任务”,然后选择“备份...”

  3. 在的“常规”页的“源”部分中,选中“仅复制备份”复选框。

  4. 选择“确定”

B. 使用 Transact-SQL

此示例利用 Sales 参数为 COPY_ONLY 数据库创建仅复制备份。 同时还创建事务日志的仅复制备份。

BACKUP DATABASE Sales
TO DISK = 'E:\BAK\Sales_Copy.bak'
WITH COPY_ONLY;

BACKUP LOG Sales
TO DISK = 'E:\BAK\Sales_LogCopy.trn'
WITH COPY_ONLY;

注意

使用 COPY_ONLY 选项指定时,DIFFERENTIAL 不起作用。

°C 使用 Transact-SQL 和 Azure SQL 托管实例

Azure SQL 托管实例支持进行 COPY_ONLY 完整备份。 以下示例向 Microsoft Azure Blob 存储执行 MyDatabase 的 COPY_ONLY 备份。 存储帐户名称为 mystorageaccount。 容器名称为 myfirstcontainer。 已经创建具有读取、写入、删除和列表权限的存储访问策略。 已使用与存储访问策略密钥相关联的共享访问签名创建 SQL Server 凭据 https://mystorageaccount.blob.core.windows.net/myfirstcontainer。 有关 SQL Server 备份到 Microsoft Azure Blob 存储的详细信息,请参阅使用 Microsoft Azure Blob 存储进行 SQL Server 备份和还原SQL Server 备份到 URL

-- Prerequisite to have write permissions
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/myfirstcontainer]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sp=...' -- Enter your secret SAS token here.

BACKUP DATABASE MyDatabase
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabaseBackup.bak'
WITH STATS = 5, COPY_ONLY;

若要将仅复制备份分为多个带状线,请使用此示例:

BACKUP DATABASE MyDatabase
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-01.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-02.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-03.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-04.bak'
WITH COPY_ONLY;

D. 使用 PowerShell

此示例利用 Sales 参数为 -CopyOnly 数据库创建仅复制备份。

Backup-SqlDatabase -ServerInstance 'SalesServer' -Database 'Sales' -BackupFile 'E:\BAK\Sales_Copy.bak' -CopyOnly

创建完整备份或日志备份

查看仅复制备份

设置和使用 SQL Server PowerShell 提供程序