僅限複製備份

適用於: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 Database Engine 的執行個體,然後展開該執行個體。

  2. 展開[資料庫],以滑鼠右鍵按一下 Sales,指向 [工作],然後選取[備份]

  3. 一般頁面的來源區段中,勾選僅限複製備份核取方塊。

  4. 選取 [確定]。

B. 使用 Transact-SQL

此範例使用 COPY_ONLY 參數來建立 Sales 資料庫的僅限複製備份。 此外,也會擷取交易記錄的僅限複製備份。

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;

注意

指定 DIFFERENTIAL 選項時,COPY_ONLY 沒有任何作用。

C. 使用 Transact-SQL 和 Azure SQL 受控執行個體

Azure SQL 受控執行個體支援進行 COPY_ONLY 完整備份。 下列範例會為 MyDatabase 執行 COPY_ONLY 備份以將它備份到 Microsoft Azure Blob 儲存體。 儲存體帳戶名稱為 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

此範例使用 -CopyOnly 參數來建立 Sales 資料庫的僅限複製備份。

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

建立完整或記錄備份

檢視僅限複製備份

設定和使用 SQL Server PowerShell 提供者