仅复制备份是独立于独立于传统 SQL Server 备份顺序的 SQL Server 备份。 通常,进行备份会更改数据库并影响其后备份的还原方式。 但是,有时在不影响数据库总体备份和还原过程的情况下,为特殊目的而进行备份还是有用的。 仅复制备份就是用于此目的。
仅复制备份的类型
仅复制备份的类型如下所示:
仅复制完整备份(所有恢复模式)
仅复制 完整 备份不能用作差异基础备份或差异备份,并且不会影响差异基础。
还原仅复制完整备份与还原任何其他完整备份相同。
仅复制日志备份(仅限于完整恢复模式和大容量日志恢复模式)
仅复制 日志 备份会保留现有的日志存档点,因此不会影响常规日志备份的排序。 通常不必进行仅复制日志备份。 相反,可以创建新的例程日志备份,并还原该备份(使用
WITH NORECOVERY
选项)以及还原顺序所需的任何以前的日志备份。仅复制日志备份有时可用于执行联机还原。 有关更多信息,请改用仅复制备份文件,按照示例:读写文件的联机还原(完整恢复模式)文章中的说明进行操作。
事务日志从不在仅复制备份后出现截断。
注解
在 Azure SQL 托管实例中,无法为使用服务管理的透明数据加密 (TDE) 加密的数据库创建仅复制备份。 服务管理的 TDE 使用内部密钥对数据进行加密,并且该密钥无法导出,因此无法在其他任何地方恢复备份。 请考虑改用客户管理的 TDE 来创建加密数据库的仅复制备份,但请确保具有加密密钥供以后还原。
创建仅复制备份
可以使用 SQL Server Management Studio、Azure Data Studio、Transact-SQL 或 PowerShell 创建仅复制备份。
答: 使用 SQL Server Management Studio
在此示例中,Sales
数据库的仅复制备份将备份到磁盘的默认备份位置。
在“对象资源管理器”中,连接到一个 SQL Server 数据库引擎实例,然后展开该实例。
展开“数据库”,右键单击“
Sales
”,指向“任务”,然后选择“备份...”。在的“常规”页的“源”部分中,选中“仅复制备份”复选框。
选择“确定”。
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
完整备份。 该示例将 MyDatabase
备份到 Microsoft Azure Blob 存储 COPY_ONLY
。 存储帐户名称为 mystorageaccount
。 容器名称为 myfirstcontainer
。 使用读取、写入、删除和列表权限创建存储访问策略。 已使用与存储访问策略密钥相关联的共享访问签名创建 SQL Server 凭据 https://mystorageaccount.blob.core.windows.net/myfirstcontainer
。 有关将 SQL Server 备份到 Microsoft Azure Blob 存储的信息,请参阅 SQL Server 备份和还原与 Azure Blob 存储 和 SQL Server 备份到 URL 以用于 Microsoft Azure Blob 存储。
-- 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