BACKUP (Transact-SQL)

備份 SQL 資料庫。

選取產品

在下列資料列中,選取您感興趣的產品名稱,只顯示該產品的資訊。

如需語法慣例的詳細資訊,請參閱 Transact-SQL 語法慣例

* SQL Server *  

 

SQL Server

備份完整的SQL Server資料庫來建立資料庫備份,或資料庫的一或多個檔案或檔案群組,以建立檔案備份 (BACKUP DATABASE) 。 同時,可在完整復原模式或大量記錄復原模式下備份資料庫的交易記錄,以建立記錄備份 (BACKUP LOG)。

語法

--Back up a whole database
BACKUP DATABASE { database_name | @database_name_var }
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL
           | <general_WITH_options> [ ,...n ] } ]
[;]

--Back up specific files or filegroups
BACKUP DATABASE { database_name | @database_name_var }
 <file_or_filegroup> [ ,...n ]
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
[;]

--Create a partial backup
BACKUP DATABASE { database_name | @database_name_var }
 READ_WRITE_FILEGROUPS [ , <read_only_filegroup> [ ,...n ] ]
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
[;]

--Back up the transaction log (full and bulk-logged recovery models)
BACKUP LOG
  { database_name | @database_name_var }
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { <general_WITH_options> | \<log-specific_optionspec> } [ ,...n ] ]
[;]

--Back up all the databases on an instance of SQL Server (a server)

ALTER SERVER CONFIGURATION
SET SUSPEND_FOR_SNAPSHOT_BACKUP ON
[;]

BACKUP SERVER
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { METADATA_ONLY
           | <general_WITH_options> [ ,...n ] } ]
[;]

--Back up a group of databases
ALTER DATABASE <database>
SET SUSPEND_FOR_SNAPSHOT_BACKUP ON

ALTER DATABASE <...>
SET SUSPEND_FOR_SNAPSHOT_BACKUP ON
...

BACKUP GROUP {<database> [,... ]}
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { METADATA_ONLY
           | <general_WITH_options> [ ,...n ] } ]
[;]

<backup_device>::=
 {
  { logical_device_name | @logical_device_name_var }
 | {   DISK
     | TAPE
     | URL } =
     { 'physical_device_name' | @physical_device_name_var | 'NUL' }
 }

<MIRROR TO clause>::=
 MIRROR TO <backup_device> [ ,...n ]

<file_or_filegroup>::=
 {
   FILE = { logical_file_name | @logical_file_name_var }
 | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
 }

<read_only_filegroup>::=
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

<general_WITH_options> [ ,...n ]::=
--Backup Set Options
   COPY_ONLY
 | [ COMPRESSION [ ALGORITHM = { MS_XPRESS | accelerator_algorithm } ] | NO_COMPRESSION ]
 | DESCRIPTION = { 'text' | @text_variable }
 | NAME = { backup_set_name | @backup_set_name_var }
 | CREDENTIAL
 | ENCRYPTION
 | FILE_SNAPSHOT
 | { EXPIREDATE = { 'date' | @date_var }
        | RETAINDAYS = { days | @days_var } }
 | { METADATA_ONLY | SNAPSHOT }

--Media Set Options
   { NOINIT | INIT }
 | { NOSKIP | SKIP }
 | { NOFORMAT | FORMAT }
 | MEDIADESCRIPTION = { 'text' | @text_variable }
 | MEDIANAME = { media_name | @media_name_variable }
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
   BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
   { NO_CHECKSUM | CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Compatibility Options
   RESTART

--Monitoring Options
   STATS [ = percentage ]

--Tape Options
   { REWIND | NOREWIND }
 | { UNLOAD | NOUNLOAD }

--Log-specific Options
   { NORECOVERY | STANDBY = undo_file_name }
 | NO_TRUNCATE

--Encryption Options
 ENCRYPTION (ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY } , encryptor_options ) <encryptor_options> ::=
   `SERVER CERTIFICATE` = Encryptor_Name | SERVER ASYMMETRIC KEY = Encryptor_Name

引數

DATABASE

指定完整的資料庫備份。 如果指定了檔案和檔案群組清單,就只會備份這些檔案和檔案群組。 在完整或差異資料庫備份期間,SQL Server備份足夠的交易記錄,以在還原備份時產生一致的資料庫。

當您還原 BACKUP DATABASE 所建立的備份 (「資料備份」) 時,就會還原整個備份。 只有記錄備份可以還原至備份內的特定時間或交易。

注意

資料庫上只能執行 master 完整資料庫備份。

記錄

指定只備份交易記錄。 記錄的備份是從最後執行成功的記錄備份至目前的記錄結尾。 您必須先建立完整備份,才能建立第一個記錄備份。

您可以透過在 RESTORE LOG 陳述式中指定 WITH STOPATSTOPATMARKSTOPBEFOREMARK,以將記錄備份還原至備份內的特定時間或交易。

注意

建立典型的記錄備份之後,除非您指定 WITH NO_TRUNCATECOPY_ONLY,否則有些交易記錄檔記錄會變成非使用中狀態。 當一個或多個虛擬記錄檔案中的所有記錄變成非使用中狀態之後,記錄會發生截斷。 如果記錄在例行的記錄備份之後並未截斷,可能會發生延遲記錄截斷。 如需詳細資訊,請參閱可能會延遲記錄截斷的因素

GROUP (< 資料庫 > ,...n)

SQL Server 2022 (16.x) 引進。

備份資料庫群組。 使用快照集備份。 需要 WITH METADATA_ONLY。 請參閱 建立 Transact-SQL 快照集備份

SERVER

SQL Server 2022 (16.x) 引進。

備份實例上的所有資料庫SQL Server。 使用快照集備份。 需要 WITH METADATA_ONLY。 請參閱 建立 Transact-SQL 快照集備份

METADATA_ONLY

SQL Server 2022 (16.x) 引進。

快照集備份的必要專案。 BACKUP SERVERBACKUP GROUP... 請參閱 建立 Transact-SQL 快照集備份

METADATA_ONLY與 SNAPSHOT 同義。 VDI) 使用 SNAPSHOT (虛擬裝置介面。 如需 VDI 的相關資訊,請參閱 虛擬裝置介面 (VDI) 參考

{ database_name | @database_name_var }

這是要備份交易記錄、部分資料庫或完整資料庫的來源資料庫。 如果提供做為變數 (@database_name_var) ,則可以將此名稱指定為字串常數 (@database_name_var=資料庫名稱) 或字元字串資料類型的變數,但Ntexttext資料類型除外。

注意

資料庫鏡像合作關係中的鏡像資料庫無法備份。

<>file_or_filegroup [ ...n ]

只能搭配 BACKUP DATABASE 使用,可用來指定要包含在檔案備份中的資料庫檔案或檔案群組,或是指定要包含在部分備份中的唯讀檔案或檔案群組。

FILE = { logical_file_name | @logical_file_name_var }

這是指要包含在備份中的檔案邏輯名稱,或是其值等於該檔案邏輯名稱的變數。

FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

這是指要包含在備份中的檔案群組邏輯名稱,或是其值等於該檔案群組邏輯名稱的變數。 在簡單復原模式之下,只允許唯讀檔案群組使用檔案群組備份。

注意

當資料庫備份因資料庫大小和效能需求而不可行時,請考慮使用檔案備份。 NUL 裝置可用來測試備份的效能,但不應用於生產環境。

n
這是一個預留位置,表示可以在逗號分隔清單中指定多個檔案和檔案群組。 數目沒有限制。

如需詳細資訊,請參閱完整檔案備份備份檔案和檔案群組

READ_WRITE_FILEGROUPS [ FILEGROUP = { logical_filegroup_name logical_filegroup_name_var | @ } [ ...n ]

指定部分備份。 部分備份包含資料庫中所有的讀取/寫入檔案:主要檔案群組和任何一種讀取/寫入次要檔案群組,以及任何指定的唯讀檔案或檔案群組。

READ_WRITE_FILEGROUPS

指定要在部分備份進行備份的所有讀取/寫入檔案群組。 如果資料庫是唯讀的,READ_WRITE_FILEGROUPS 只會包括主要檔案群組。

重要

使用 FILEGROUP 取代 READ_WRITE_FILEGROUPS 來明確列出讀取/寫入檔案群組,以建立檔案備份。

FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

這是指要包含在部分備份中的唯讀檔案群組邏輯名稱,或是其值等於該唯讀檔案群組邏輯名稱的變數。 For more information, see "<file_or_filegroup>," earlier in this article.

n
這是一個預留位置,表示可以在逗號分隔清單中指定多個唯讀檔案群組。

如需部分備份的詳細資訊,請參閱部分備份

TO < backup_device > [ ...n ]

表示隨附的 備份裝置 集是未解決的媒體集或鏡像媒體集內的第一個鏡像, (其中一或多個 MIRROR TO 子句宣告為) 。

<backup_device>
指定備份作業要使用的邏輯或實體備份裝置。

{ logical_device_name | @logical_device_name_var }

適用於:SQL Server
這是用來備份資料庫之備份裝置的邏輯名稱。 邏輯名稱必須遵照識別碼的規則。 如果以變數 (@logical_device_name_var) 提供,則可以將備份裝置名稱指定為字串常數 (@logical_device_name_var= 邏輯備份裝置名稱) 或Ntexttext資料類型以外的任何字元字串資料類型變數。

{ DISK |TAPE |URL} = { 'physical_device_name'physical_device_name_var | @|'NUL' }

適用于:從 2012 SQL Server 2012 (11.x) SP1 CU2) 開始的 SQL Server (URL

指定磁片檔案或磁帶裝置或 URL。

URL 格式用於建立 Microsoft Azure Blob 儲存體 或 S3 相容物件儲存體的備份。 如需詳細資訊與範例,請參閱:

注意

NUL 磁碟裝置將捨棄傳送給它的所有資訊,而且只應用於測試。 這不適用於生產環境。

重要

從 2012 SQL Server 2012 (11.x) SP1 CU2 到 SQL Server 2014 (12.x) ,您只能在備份至 URL 以進行Azure Blob 儲存體時備份到單一裝置。 若要備份至 URL 時備份至多個裝置,您必須使用 SQL Server 2016 (13.x) 和更新版本,而且您必須使用共用存取簽章 (SAS) 權杖。 如需建立共用存取簽章的範例,請參閱 SQL Server 備份至 URL在 Azure 儲存體上使用 Powershell 搭配共用存取簽章 (SAS) 權杖來簡化 SQL 認證的建立 \(英文\)。

在 BACKUP 陳述式內指定磁碟裝置之前,該裝置不需要存在。 如果實體裝置存在,且 BACKUP 陳述式並未指定 INIT 選項,就會將備份附加至裝置中。

注意

NUL 裝置將捨棄傳送到此檔案的所有輸入,不過,備份仍會將所有頁面標記為已備份。

如需詳細資訊,請參閱備份裝置

注意

未來版本的 SQL Server將會移除 TAPE 選項。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

n
這是一個預留位置,表示可以在逗號分隔清單中指定最多達 64 個備份裝置。

鏡像至 < backup_device > [ ...n ]

指定最多三個次要備份裝置的集合,每個裝置都會鏡像 TO 子句中指定的備份裝置。 MIRROR TO 子句必須指定與 TO 子句相同的備份裝置類型和數目。 最大 MIRROR TO 子句數目是 3。

此選項僅適用于企業版的 SQL Server。

注意

針對 MIRROR TO = DISK ,BACKUP 會根據磁片的磁區大小,自動判斷磁片裝置的適當區塊大小。 如果使用與指定為主要備份裝置的磁碟不同的磁區大小來格式化 MIRROR TO 磁碟,備份命令將會失敗。 為了鏡像具有不同磁區大小的裝置備份,必須指定 BLOCKSIZE 參數,且應該設定為所有目標裝置之間的最大磁區大小。 如需區塊大小的詳細資訊,請參閱本主題稍後的<BLOCKSIZE>。

<backup_device>
請參閱本節稍早的「 < backup_device > 」。

n
這是一個預留位置,表示可以在逗號分隔清單中指定最多達 64 個備份裝置。 MIRROR TO 子句中的裝置數目必須等於 TO 子句中的裝置數目。

For more information, see "Media Families in Mirrored Media Sets" in the Remarks section, later in this article.

[ next-mirror-to ]
這是一個預留位置,表示單一 BACKUP 陳述式除了可以包含單一 TO 子句,還可以包含最多 3 個 MIRROR TO 子句。

WITH 選項

指定要搭配備份作業使用的選項。

CREDENTIAL

適用于:SQL Server (從SQL Server 2012 (11.x) SP1 CU2) 開始。

只有在建立 Microsoft 備份Azure Blob 儲存體時才會使用。

FILE_SNAPSHOT

適用于:從 2016 SQL Server 2016 (13.x) ) 開始SQL Server (。

當所有SQL Server資料庫檔案都使用 Azure Blob 儲存體 儲存時,用來建立資料庫檔案的 Azure 快照集。 如需詳細資訊,請參閱 Microsoft Azure 中的 SQL Server 資料檔案。 SQL Server快照集備份會以一致狀態) (資料庫檔案的 Azure 快照集。 一組一致的 Azure 快照集會組成一個備份,並記錄於備份檔案中。 BACKUP DATABASE TO URL WITH FILE_SNAPSHOTBACKUP LOG TO URL WITH FILE_SNAPSHOT 之間的唯一差異是,後者也會截斷交易記錄,但前者不會。 使用SQL Server快照集備份之後,SQL Server建立備份鏈結所需的初始完整備份之後,只需要單一交易記錄備份,才能將資料庫還原到交易記錄備份的時間點。 此外,只需要兩個交易記錄備份,就能將資料庫還原至這兩個交易記錄備份時間之間的時間點。

DIFFERENTIAL

只能搭配 BACKUP DATABASE 使用,可用來指定資料庫或檔案備份應該只含有資料庫或檔案在前次完整備份之後又變更過的部分。 差異備份所用的空間通常會比完整備份少。 使用這個選項,便不需要套用自前次完整備份之後所執行的所有個別記錄備份。

注意

根據預設,BACKUP DATABASE 會建立完整備份。

如需詳細資訊,請參閱差異備份

ENCRYPTION

用來指定備份的加密。 您可以指定加密演算法來加密備份,或指定 NO_ENCRYPTION 不加密備份。 加密是有助於保護備份檔案的建議作法。 您可以指定的演算法清單包括:

  • AES_128
  • AES_192
  • AES_256
  • TRIPLE_DES_3KEY
  • NO_ENCRYPTION

如果您選擇加密,則也需要使用加密程式選項指定加密程式:

  • SERVER CERTIFICATE = Encryptor_Name
  • SERVER ASYMMETRIC KEY = Encryptor_Name

SERVER CERTIFICATESERVER ASYMMETRIC KEY 是在資料庫 master 中建立的憑證與非對稱金鑰。 如需詳細資訊,請參閱 CREATE CERTIFICATECREATE ASYMMETRIC KEY

警告

搭配 FILE_SNAPSHOT 引數使用加密時,中繼資料檔案本身會使用指定的加密演算法進行加密,而系統會確認已針對資料庫完成透明資料加密 (TDE)。 對於資料本身則不會進行任何其他加密。 如果未加密資料庫,或者發出備份陳述式之前未完成加密,備份就會失敗。

備份組選項

這些選項會處理這個備份作業所建立的備份組。

注意

若要指定還原作業的備份組,請使用 FILE = <backup_set_file_number> 選項。 如需如何指定備份組的詳細資訊,請參閱 RESTORE 引數中的<指定備份組>。

COPY_ONLY

指定備份為「僅複製備份」,這不會影響正常的備份順序。 僅複製備份的建立與定期排程的傳統備份無關。 僅複製備份並不會影響資料庫的整體備份和還原程序。

僅複製備份應該用於需要執行備份來達成特定用途的情況 (例如,在線上檔案還原之前備份記錄檔)。 通常,僅複製記錄備份用過一次後便會刪除。

  • 搭配 BACKUP DATABASE 使用時,COPY_ONLY 選項會建立無法作為差異基底使用的完整備份。 差異點陣圖不會更新,而且差異備份的行為會如同僅複製備份並不存在。 後續的差異備份會使用最新的傳統完整備份做為其基底。

    重要

    如果同時使用 DIFFERENTIALCOPY_ONLY,即會忽略 COPY_ONLY 並建立差異備份。

  • 搭配 BACKUP LOG 使用時,COPY_ONLY 選項會建立「僅複製記錄備份」,這不會截斷交易記錄。 僅複製記錄備份不會影響記錄檔鏈結,而且其他記錄備份的行為會如同僅複製備份並不存在。

如需詳細資訊,請參閱只複製備份

[ COMPRESSION [ ALGORITHM = ( { MS_XPRESS | accelerator_algorithm } ) ] |NO_COMPRESSION ]

指定是否要在此備份上執行備份壓縮,以覆寫伺服器層級的預設值。

進行安裝時,預設行為是不壓縮備份。 但是,您可以設定 backup compression default 伺服器設定選項來變更此預設值。 如需檢視此選項目前值的資訊,請參閱檢視或變更伺服器屬性

如需搭配已啟用透明資料加密 (TDE) 之資料庫使用備份壓縮的相關資訊,請參閱備註一節。

COMPRESSION
明確啟用備份壓縮。

NO_COMPRESSION
明確停用備份壓縮。

SQL Server 2022 (16.x) 引進 ALGORITHM ,其會識別作業的壓縮演算法。 預設值為 MS_XPRESS。 如果您已設定 整合式加速和卸載,您可以使用解決方案所提供的加速器。 例如,如果您已針對SQL Server設定Intel® QuickAssist Technology (QAT) ,下列範例會使用與壓縮層級 1 搭配 QATzip 程式庫 QZ_DEFLATE 完成備份。

BACKUP DATABASE <database_name> TO DISK WITH COMPRESSION (ALGORITHM = QAT_DEFLATE) 

DESCRIPTION = { 'text'text_variable | @ }

指定描述備份組的自由形式文字。 這個字串最多可有 255 個字元。

NAME = { backup_set_name | @backup_set_var }

指定備份組的名稱。 名稱最多可有 128 個字元。 如果未指定 NAME,它就是空白。

{ EXPIREDATE ='date' | RETAINDAYS =days }

指定何時可以覆寫這個備份的備份組。 如果同時使用這兩個選項,RETAINDAYS 會優先於 EXPIREDATE。

如果沒有指定任何選項,便會由 mediaretention 組態設定來決定到期日。 如需詳細資訊,請參閱伺服器設定選項

重要

這些選項只會防止SQL Server覆寫檔案。 您可以利用其他方法來清除磁帶,並利用作業系統來刪除磁碟檔案。 如需有關期限驗證的詳細資訊,請參閱這個主題中的 SKIP 和 FORMAT。

EXPIREDATE = { 'date'date_var | @ }
指定備份組到期且可加以覆寫的時間。 如果以變數形式提供 (@date_var) ,則此日期必須遵循設定的系統 日期時間 格式,並指定為下列其中一項:

  • 字串常數 (@date_var= 日期)
  • 字元字串資料類型的變數 (ntexttext 資料類型除外)
  • smalldatetime
  • datetime 變數

例如:

  • 'Dec 31, 2020 11:59 PM'
  • '1/1/2021'

如需如何指定 datetime 值的相關資訊,請參閱日期和時間類型

注意

若要忽略到期日,請使用 SKIP 選項。

RETAINDAYS = { days | @days_var }
指定必須經過多少天之後,才能覆寫這個備份媒體集。 如果以變數的形式 @ 提供 (days_var) ,則必須將其指定為整數。

{ METADATA_ONLY |SNAPSHOT }

適用于:SQL Server 2022 (16.x)

METADATA_ONLY和 SNAPSHOT 是同義字。

媒體集選項

這些選項會處理整個媒體集。

{ NOINIT | INIT }

控制備份作業要附加還是覆寫至備份媒體上的現有備份組。 預設是附加至媒體上的最新備份組 (NOINIT)。

注意

如需 { NOINIT | INIT } 與 { NOSKIP | SKIP } 間之互動的相關資訊,請參閱本主題稍後的備註

NOINIT
指出將備份組附加至指定的媒體集,以保留現有的備份組。 如果定義了媒體集的媒體密碼,您就必須提供密碼。 NOINIT 是預設值。

如需詳細資訊,請參閱媒體集、媒體家族與備份組

INIT
指定應該覆寫所有備份組,但保留媒體標頭。 如果指定 INIT,就會覆寫這個裝置中任何現有的備份組 (如果條件允許)。 依預設,BACKUP 會檢查下列狀況,如果任何一種狀況存在,就不會覆寫備份媒體:

  • 有尚未到期的備份組。 如需詳細資訊,請參閱 EXPIREDATERETAINDAYS 選項。
  • BACKUP 陳述式所提供的備份組名稱 (如果有提供) 不符合備份媒體中的名稱。 如需詳細資訊,請參閱本節前面的 NAME 選項。

若要覆寫這些檢查,請使用 SKIP 選項。

如需詳細資訊,請參閱媒體集、媒體家族與備份組

{ NOSKIP | SKIP }

控制備份作業在覆寫媒體上的備份組之前是否要先檢查備份組的到期日和時間。

注意

如需 { NOINIT | INIT } 與 { NOSKIP | SKIP } 間之互動的相關資訊,請參閱本主題稍後的<備註>。

NOSKIP
指示 BACKUP 陳述式先檢查媒體中所有備份組的到期日,才允許覆寫它們。 這是預設行為。

SKIP
停用通常是由 BACKUP 陳述式所執行的備份組期限和名稱的檢查,以防止覆寫備份組。 如需 { INIT |之間互動的相關資訊NOINIT } 和 { NOSKIP |SKIP },請參閱本文稍後的。 若要檢視備份組的到期日,請查詢 backupset 記錄資料表的 expiration_date 資料行。

{ NOFORMAT | FORMAT }

指定是否要將媒體標頭寫入這項備份作業所使用的磁碟區,以覆寫任何現有的媒體標頭和備份組。

NOFORMAT
指定備份作業保留這項備份作業所使用之媒體磁碟區上的現有媒體標頭和備份組。 這是預設行為。

FORMAT
指定建立新的媒體集。 FORMAT 會導致備份作業在備份作業使用的所有媒體磁碟區中寫入新的媒體標頭。 磁碟區的現有內容會變成無效,因為任何現有的媒體標頭和備份組都會遭到覆寫。

重要

請謹慎使用 FORMAT。 格式化媒體集的任何磁碟區,會使得整個媒體集無法使用。 例如,如果您初始化屬於現有等量媒體集的單一磁帶,整個媒體集都會變成無法使用。

指定 FORMAT 意味著 SKIP;您不需要明確指示 SKIP

MEDIADESCRIPTION = { text | @text_variable }

指定媒體集自由形式的文字描述,最多 255 個字元。

MEDIANAME = { media_name | @media_name_variable }

指定整個備份媒體集的媒體名稱。 媒體名稱不能超過 128 個字元。 如果 MEDIANAME 指定 ,它必須符合先前指定的媒體名稱已經存在備份磁片區上。 如果未指定或指定了 SKIP 選項,就不會進行媒體名稱的驗證檢查。

BLOCKSIZE = { blocksize | @blocksize_variable }

指定實體區塊大小 (以位元組為單位)。 支援的大小為 512、1024、2048、4096、8192、16384、32768 和 65536 (64 KB) 位元組。 磁帶裝置的預設值為 65536,其他裝置則為 512。 一般而言這個選項是不必要的,因為 BACKUP 會自動選取裝置適用的區塊大小。 明確指出區塊大小會覆寫自動選取的區塊大小。

如果採用的備份是要複製到 CD-ROM 然後再從中還原,請指定 BLOCKSIZE=2048。

注意

一般而言,只有在寫入磁帶裝置時,這個選項才會對效能造成影響。

資料傳輸選項

BUFFERCOUNT { buffercount | =@buffercount_variable }

指定要用於備份作業的 I/O 緩衝區總數。 您可以指定任何正整數,不過,緩衝區的數目很大時,可能會因為 Sqlservr.exe 處理序中的虛擬位址空間不足而造成「記憶體不足」錯誤。

緩衝區使用的總空間可由下列公式判斷:BUFFERCOUNT * MAXTRANSFERSIZE

注意

如需使用 BUFFERCOUNT 選項的重要資訊,請參閱不正確的 BufferCount 資料傳輸選項可能導致 OOM 狀況 \(英文\) 部落格文章。

MAXTRANSFERSIZE = { maxtransfersize | @ maxtransfersize_variable }

以位元組為單位,指定要用於 SQL Server 和備份媒體之間的最大傳送單位。 可能的值是 65536 位元組 (64 KB) 的倍數,最大可達 4194304 位元組 (4 MB)。

使用 SQL 寫入器服務建立備份時,如果已為資料庫設定 FILESTREAM,或該資料庫包含記憶體最佳化檔案群組,則在還原期間的 MAXTRANSFERSIZE 應該大於或等於建立備份時所使用的 MAXTRANSFERSIZE

針對含有單一資料檔案且已啟用透明資料加密 (TDE) 的資料庫,預設的 MAXTRANSFERSIZE 為 65536 (64 KB)。 針對非 TDE 加密的資料庫,使用備份至 DISK 時,預設的 MAXTRANSFERSIZE 為 1048576 (1 MB),而使用 VDI 或 TAPE 時為 65536 (64 KB)。 如需搭配 TDE 加密的資料庫使用備份壓縮的詳細資訊,請參閱備註一節。

錯誤管理選項

這些選項可讓您決定是否要針對備份作業啟用備份總和檢查碼,以及作業是否會在發生錯誤時停止。

{ NO_CHECKSUM | CHECKSUM }

控制是否要啟用備份總和檢查碼。

NO_CHECKSUM
明確地停用產生備份總和檢查碼 (以及驗證頁面總和檢查碼)。 這是預設行為。

CHECKSUM
如果備份作業已啟用且可供使用,指定備份作業要驗證每個頁面的總和檢查碼及損毀頁,並產生整個備份的總和檢查碼。

使用備份總和檢查碼,可能會影響工作負載和備份的輸送量。

如需詳細資訊,請參閱在備份和還原期間可能的媒體錯誤

{ STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

控制備份作業在發生頁面總和檢查碼錯誤之後要停止或繼續。

STOP_ON_ERROR
指示 BACKUP 在頁面總和檢查碼未驗證時便失敗。 這是預設行為。

CONTINUE_AFTER_ERROR
指示儘管發生總和檢查碼無效或損毀頁之類的錯誤,BACKUP 仍繼續作業。

如果您在資料庫損毀時無法使用 NO_TRUNCATE 選項來備份記錄的結尾,您可以指定 CONTINUE_AFTER_ERROR 取代 NO_TRUNCATE 來嘗試進行結尾記錄備份

如需詳細資訊,請參閱在備份和還原期間可能的媒體錯誤

相容性選項

RESTART

從 2008 SQL Server 2008 (10.0.x) 開始,沒有任何作用。 這個版本接受這個選項的目的,是為了與舊版的 SQL Server 相容。

監視選項

STATS [ =percentage ]

每次另一個 百分比 完成時顯示訊息,並用來測量進度。 如果省略百分比,SQL Server在每 10% 完成之後顯示一則訊息。

STATS 選項報告到達下一個間隔之報告臨界值的完成百分比。 大約會以指定的百分比為間隔;例如,當 STATS=10,如果完成的量是 40%,這個選項可能顯示 43%。 對大型備份組而言,這不成問題,因為在已完成的 I/O 呼叫之間,百分比完成的移動非常緩慢。

磁帶選項

這些選項僅適用於「磁帶」裝置。 如果所使用的不是磁帶裝置,將忽略這些選項。

{ REWIND | NOREWIND }

REWIND
指定SQL Server放開並倒轉磁帶。 REWIND 是預設值。

NOREWIND
指定在備份作業之後,SQL Server讓磁帶保持開啟狀態。 對磁帶執行多次備份作業時,可以使用這個選項來改善效能。

NOREWIND 隱含 NOUNLOAD,而這些選項在單一的 BACKUP 陳述式內不相容。

注意

如果您使用 NOREWIND ,SQL Server的實例會保留磁帶機的擁有權,直到相同進程中執行的 BACKUP 或 RESTORE 語句使用 REWINDUNLOAD 選項,或伺服器實例關閉為止。 保留磁帶的開啟狀態可以防止其他處理序存取這個磁帶。 如需如何顯示已開啟磁帶清單及關閉已開啟磁帶的資訊,請參閱備份裝置

{ UNLOAD | NOUNLOAD }

注意

UNLOADNOUNLOAD 是工作階段設定,會在工作階段的存留期間保持不變,直到指定其他設定進行重設為止。

UNLOAD
指定在備份完成之後,便自動倒轉和卸載磁帶。 UNLOAD 是在工作階段開始時的預設值。

NOUNLOAD
指定在 BACKUP 作業之後,磁帶仍會在磁帶機上保持載入。

注意

如果要備份到磁帶備份裝置,BLOCKSIZE 選項會影響備份作業的效能。 一般而言,只有在寫入磁帶裝置時,這個選項才會對效能造成影響。

記錄特定選項

這些選項只能搭配 BACKUP LOG 使用。

注意

如果您不想要取得記錄備份,請使用簡單復原模式。 如需詳細資訊,請參閱復原模式

{ NORECOVERY | STANDBY =undo_file_name }

NORECOVERY
它會備份記錄的結尾,並將資料庫保留在 RESTORING 狀態。 當進行容錯移轉,將工作交給次要資料庫時,或在 RESTORE 作業之前儲存記錄結尾時,NORECOVERY 非常有用。

若要執行略過記錄截斷的最大速率記錄備份,然後使資料庫自動進入 RESTORING 狀態,請同時使用 NO_TRUNCATENORECOVERY 選項。

STANDBY =standby_file_name
備份記錄的結尾,並將資料庫保留在唯讀和 STANDBY 狀態。 STANDBY 子句會寫入待命資料 (執行回復,但使用進一步還原的選項)。 使用 STANDBY 選項相當於使用 BACKUP LOG WITH NORECOVERY,後面接著 RESTORE WITH STANDBY。

使用待命模式需要 standby_file_name 所指定的待命資料庫檔案,它的位置儲存在資料庫記錄中。 如果指定的檔案已經存在,Database Engine 就會覆寫它;如果檔案不存在,Database Engine 就會建立它。 待命檔案會成為資料庫的一部分。

這個檔案會保留已回復的變更,如果之後要套用 RESTORE LOG 作業,就必須保留這些變更。 您必須有足以供待命檔案成長的磁碟空間,它才能夠包含資料庫中,因回復未認可的交易而修改過的所有相異頁面。

NO_TRUNCATE

指定交易記錄不應遭到截斷,而且不論資料庫的狀態為何,資料庫引擎都會嘗試備份。 因此,利用 NO_TRUNCATE 建立的備份可能會有不完整的中繼資料。 此選項允許在資料庫損毀的情況下備份交易記錄。

BACKUP LOG 的 NO_TRUNCATE 選項相當於同時指定 COPY_ONLY 和 CONTINUE_AFTER_ERROR。

未使用 NO_TRUNCATE 選項時,資料庫必須處於 ONLINE 狀態。 如果資料庫處於 SUSPENDED 狀態,您就能透過指定 NO_TRUNCATE 來建立備份。 但是,如果資料庫處於 OFFLINE 或 EMERGENCY 狀態,即使設定了 NO_TRUNCATE,也不允許 BACKUP。 如需資料庫狀態的相關資訊,請參閱資料庫狀態

關於使用 SQL Server 備份

本節介紹下列必要的備份概念:

備份類型交易記錄截斷將備份媒體格式化使用備份裝置和媒體集還原 SQL Server 備份

注意

如需在 SQL Server 中備份的簡介,請參閱備份概觀

備份類型

支援的備份類型需視資料庫的復原模式而定,如下所示:

  • 所有復原模式都支援完整和差異的資料備份。

    備份範圍 備份類型
    整個資料庫 資料庫備份會包含整個資料庫。

    或者,每個資料庫備份都可作為一系列一或多個差異資料庫備份的基底。
    部分資料庫 部份備份包含讀取/寫入檔案群組,可能的話,還會包含一或多個唯讀檔案或檔案群組。

    或者,每個部份備份都可作為一系列一或多個差異部份備份的基底。
    檔案或檔案群組 檔案備份包含一或多個檔案或檔案群組,而且只會與包含多個檔案群組的資料庫有關。 在簡單復原模式下,檔案備份基本上會限制用於唯讀的次要檔案群組。
    或者,每個檔案備份都可作為一系列一或多個差異檔案備份的基底。
  • 在完整復原模式或大量記錄復原模式下,傳統備份也必須包含循序的「交易記錄備份」 (或「記錄備份」)。 每個記錄備份都包含建立備份時為使用中的交易記錄部分,而且會包含上一次記錄備份沒有備份的所有記錄檔記錄。

    若要將遺失工作的風險降到最低 (但會耗用管理負擔成本),您應該排定經常性的記錄備份。 在完整備份之間排定差異備份,可減少您在還原資料後必須還原的記錄備份數目,從而減少還原時間。

    我們建議您將記錄備份放在個別的磁碟區上,而不是進行資料庫備份。

    注意

    您必須先建立完整備份,才能建立第一個記錄備份。

  • 「僅複製備份」是特殊用途的完整備份或記錄備份,與傳統備份的正常順序無關。 若要建立僅複製備份,請在 BACKUP 陳述式中指定 COPY_ONLY 選項。 如需詳細資訊,請參閱只複製備份

交易記錄截斷

為避免填滿資料庫的交易記錄,例行備份相當重要。 在簡單復原模式下,記錄截斷會自動在備份資料庫後發生,而在完整復原模式下,則會自動在備份交易記錄後發生。 不過,有時候您可以延遲截斷處理作業。 如需延遲記錄截斷可能因素的資訊,請參閱交易記錄

注意

BACKUP LOG WITH NO_LOGWITH TRUNCATE_ONLY 選項已中止。 如果您要使用完整復原模式或大量記錄復原模式,而且您必須從資料庫移除記錄備份鏈結,請切換到簡單復原模式。 如需詳細資訊,請參閱檢視或變更資料庫的復原模式

格式化備份媒體

只有下列其中一種情況成立,BACKUP 陳述式才會將備份媒體格式化:

  • 已指定 FORMAT 選項。
  • 媒體是空的。
  • 作業正在寫入接續磁帶。

使用備份裝置和媒體集

等量媒體集 (等量集) 中的備份裝置

「等量集」是一組磁碟檔案,其中的資料會分成幾個區塊,並依照固定順序散發。 等量集中所使用的備份裝置數目必須維持相同 (除非使用 FORMAT 來將媒體重新初始化)。

下列範例會將 AdventureWorks2012 資料庫的備份寫入至使用三個磁片檔案的新等量媒體集。

BACKUP DATABASE AdventureWorks2012
TO DISK = 'X:\SQLServerBackups\AdventureWorks1.bak',
DISK = 'Y:\SQLServerBackups\AdventureWorks2.bak',
DISK = 'Z:\SQLServerBackups\AdventureWorks3.bak'
WITH FORMAT,
  MEDIANAME = 'AdventureWorksStripedSet0',
  MEDIADESCRIPTION = 'Striped media set for AdventureWorks2012 database';
GO

在備份裝置定義成等量集的一部分之後,除非指定 FORMAT,否則,單一裝置備份便無法使用它。 同樣地,除非指定 FORMAT,否則,等量集也無法使用包含非等量備份的備份裝置。 若要分割等量備份組,請使用 FORMAT。

寫入媒體標頭時,如果既未指定 MEDIANAME,也未指定 MEDIADESCRIPTION,對應至空白項目的媒體標頭欄位就是空的。

使用鏡像媒體集

一般而言,備份並無鏡像,而且 BACKUP 陳述式只會包含 TO 子句。 但是,每個媒體集總共可以包含四個鏡像。 如果是鏡像媒體集,備份作業會寫入多個備份裝置群組。 每個備份裝置群組都會在鏡像媒體集中包含單一鏡像。 每個鏡像都必須使用相同數量和類型的實體備份裝置,而且必須全部具備相同的屬性。

若要備份鏡像媒體集,所有鏡像都必須存在。 若要備份到鏡像媒體集,請指定 TO 子句來指定第一個鏡像,並為每個其他鏡像指定 MIRROR TO 子句。

針對鏡像媒體集,每個 MIRROR TO 子句都必須列出與 TO 子句相同的裝置數目和類型。 下列範例會寫入含有兩個鏡像,且每個鏡像都使用三個裝置的鏡像媒體集中:

BACKUP DATABASE AdventureWorks2012
TO DISK = 'X:\SQLServerBackups\AdventureWorks1a.bak',
  DISK = 'Y:\SQLServerBackups\AdventureWorks2a.bak',
  DISK = 'Z:\SQLServerBackups\AdventureWorks3a.bak'
MIRROR TO DISK='X:\SQLServerBackups\AdventureWorks1b.bak',
  DISK = 'Y:\SQLServerBackups\AdventureWorks2b.bak',
  DISK = 'Z:\SQLServerBackups\AdventureWorks3b.bak';
GO

重要

這個範例的設計,是為了讓您在本機系統中進行測試。 實際上,在相同磁碟機上備份多個裝置可能會降低效能,而且可能會減損鏡像媒體集原先設計的備援性。

鏡像媒體集中的媒體家族

在 BACKUP 陳述式之 TO 子句中指定的每個備份裝置都對應到一個媒體家族。 例如,如果 TO 子句列出三個裝置,BACKUP 會將資料寫入三個媒體家族。 在鏡像媒體集中,每個鏡像都必須包含每個媒體家族的複本。 這就是為什麼每個鏡像必須具有相同的裝置數目。

當各個鏡像分別列出多個裝置時,裝置順序會決定要將哪個媒體家族寫入特定裝置。 例如,在各份裝置清單中,第二個裝置都會對應到第二個媒體家族。 對於上面範例中的裝置,下表會說明這些裝置和媒體家族間的對應關係。

鏡像 媒體家族 1 媒體家族 2 媒體家族 3
0 Z:\AdventureWorks1a.bak Z:\AdventureWorks2a.bak Z:\AdventureWorks3a.bak
1 Z:\AdventureWorks1b.bak Z:\AdventureWorks2b.bak Z:\AdventureWorks3b.bak

媒體家族必須永遠備份到特定鏡像中的相同裝置。 因此,您每次使用現有媒體集時,都必須依照建立該媒體集時所指定的相同順序來列出每一個鏡像的裝置。

如需鏡像媒體集的詳細資訊,請參閱鏡像備份媒體集。 如需媒體集和媒體家族的一般詳細資訊,請參閱媒體集、媒體家族與備份組

還原 SQL Server 備份

若要還原資料庫,並選擇性地將其復原,使其上線,或還原檔案或檔案群組,請使用 Transact-SQL RESTORE語句或SQL Server Management Studio還原工作。 如需詳細資訊,請參閱 還原和復原概觀

關於 BACKUP 選項的其他考量

SKIP、NOSKIP、INIT 和 NOINIT 的互動

下列表格描述 { NOINIT | INIT } 與 { NOSKIP | SKIP } 選項之間的互動。

注意

如果磁帶媒體是空的,或磁碟備份檔案不存在,所有這些互動都會寫入媒體標頭,並繼續作業。 如果媒體不是空的,但缺少有效媒體標頭,這些作業會回應指出這不是有效的 MTF 媒體,而且備份作業將會中止。

跳過選項 NOINIT INIT
NOSKIP 如果磁碟區包含有效的媒體標頭,確認媒體名稱符合指定的 MEDIANAME (如果有的話)。 如果相符,則附加備份組,保留所有現有的備份組。
如果磁碟區並未包含有效的媒體標頭,便會發生錯誤。
如果磁碟區包含有效的媒體標頭,則執行下列檢查:
  • 如果指定了 MEDIANAME,確認指定的媒體名稱符合媒體標頭的媒體名稱。1
  • 確認媒體中沒有出現任何非預期的備份組。 如果有,則結束備份。

如果通過這些檢查,則覆寫媒體中的任何備份組,只保留媒體標頭。
如果磁碟區未包含有效的媒體標頭,使用指定的 MEDIANAMEMEDIADESCRIPTION (如果有的話) 產生一個。
SKIP 如果磁碟區包含有效的媒體標頭,則附加備份組,保留所有現有的備份組。 如果磁碟區包含有效2的媒體標頭,則覆寫媒體上的任何備份組,只保留媒體標頭。
若媒體是空的,就使用指定的 MEDIANAMEMEDIADESCRIPTION (如果有的話) 來產生媒體標頭。

1 使用者必須屬於適當的固定資料庫或伺服器角色,才能執行備份作業。

2 有效性包括 MTF 版本號碼和其他標頭資訊。 如果不支援指定的版本,或它不是預期的值,就會發生錯誤。

相容性

警告

較新版本SQL Server所建立的備份無法在舊版SQL Server中還原。

BACKUP 支援 RESTART 提供與舊版SQL Server回溯相容性的選項。 但 RESTART 卻沒有任何作用。

一般備註

您可以將資料庫或記錄備份附加至任何磁碟或磁帶裝置,以便將資料庫及其交易記錄保留在單一實體位置中。

在明確或隱含的交易中,並不允許使用 BACKUP 陳述式。

只要作業系統支援資料庫的定序,便可以執行跨平台的備份作業,即使在不同類型的處理器之間,也是如此。

從 SQL Server 2016 (13.x) 開始,設定 MAXTRANSFERSIZE大於 65536 (64 KB) 啟用透明資料加密的優化壓縮演算法, (TDE) 加密的資料庫先解密頁面、壓縮它,然後再加密一次。 如果未指定 MAXTRANSFERSIZE 或使用了 MAXTRANSFERSIZE = 65536 (64 KB),則搭配 TDE 加密資料庫的備份壓縮就會直接壓縮已加密頁面,且可能不會產生良好的壓縮率。 如需詳細資訊,請參閱適用於已啟用 TDE 之資料庫的備份壓縮 \(英文\)。

從 SQL Server 2019 (15.x) CU5 開始,不再需要設定 MAXTRANSFERSIZE ,即可使用 TDE 啟用此優化壓縮演算法。 如果指定 WITH COMPRESSION 備份命令,或 備份壓縮預設 伺服器組態設為 1, MAXTRANSFERSIZE 則會自動增加至 128 K,以啟用優化的演算法。 如果在 MAXTRANSFERSIZE 備份命令上指定值為 > 64 K,則會接受所提供的值。 換句話說,SQL Server 永遠不會自動降低值,其只會增加。 如果需要使用 MAXTRANSFERSIZE = 65536 備份 TDE 加密的資料庫,則必須指定 WITH NO_COMPRESSION,或確定 backup compression default 伺服器組態設為 0。

注意

某些情況下,預設值 MAXTRANSFERSIZE 大於 64K:

  • 當資料庫建立多個資料檔案時,它會使用 MAXTRANSFERSIZE> 64K。
  • 執行 URL 備份至Azure Blob 儲存體時,預設 MAXTRANSFERSIZE = 1048576 (1 MB) 。
  • 將備份至與 S3 相容的物件 sotrage 的 URL 時,預設 MAXTRANSFERSIZE = 10485760 (10 MB) 。

即使適用上述其中一個條件,您也必須在備份命令中明確設定 MAXTRANSFERSIZE 大於 64K,才能取得優化的備份壓縮演算法,除非您位於 SQL Server 2019 (15.x) CU5 或更新版本。

根據預設,每個成功的備份作業都會在SQL Server錯誤記錄檔和系統事件記錄檔中新增專案。 如果您非常頻繁地備份記錄檔,這些成功訊息會快速累積,因而產生大型錯誤記錄檔,使得尋找其他訊息變得困難。 在這種情況下,如果沒有任何自動化或監視相依于這些專案,您可以使用追蹤旗標 3226 來隱藏這些記錄專案。 如需詳細資訊,請參閱追蹤旗標

互通性

SQL Server會使用線上備份程式,在資料庫仍在使用時允許資料庫備份。 在備份期間,您可以執行大部分的作業;例如,在備份作業期間,您可以執行 INSERT、UPDATE 或 DELETE 陳述式。

資料庫或交易記錄備份期間所無法執行的作業包括:

  • 檔案管理作業,例如,搭配 ADD FILEREMOVE FILE 選項的 ALTER DATABASE 陳述式。

  • 壓縮資料庫或壓縮檔案的作業。 其中包括自動壓縮作業。

如果備份作業與檔案管理或壓縮作業重迭,就會發生衝突。 不論是哪一項衝突作業在前面,第二項作業都會等待第一項作業所設定的鎖定逾時 (逾時期間由工作階段逾時設定來控制)。 如果在逾時期間解除鎖定,第二項作業就會繼續下去。 如果鎖定逾時,第二項作業就會失敗。

中繼資料

SQL Server包含追蹤備份活動的下列備份記錄資料表:

執行還原時,如果尚未在資料庫中記錄 msdb 備份組,可能會修改備份記錄資料表。

安全性

從 SQL Server 2012 (11.x) 開始, PASSWORDMEDIAPASSWORD 選項會停止建立備份。 仍然可以還原以密碼建立的備份。

權限

BACKUP DATABASEBACKUP LOG 權限預設為 系統管理員固定伺服器角色以及 db_ownerdb_backupoperator 固定資料庫角色的成員。

備份裝置實體檔案的擁有權和權限問題可能會干擾備份作業。 請確定SQL Server啟動帳戶必須具有備份裝置的讀取和寫入權限,以及備份檔案寫入所在的資料夾。 不過,在系統資料表中加入備份裝置項目的 sp_addumpdevice並不會檢查檔案存取權限。 當您嘗試備份或還原時,存取實體資源之前不一定會出現備份裝置實體檔案的這些問題。

範例

本區段包含下列範例:

注意

備份的使用說明主題包含了其他的範例。 如需詳細資訊,請參閱備份概觀

A. 備份完整資料庫

下列範例會將 AdventureWorks2012 資料庫備份至磁片檔案。

BACKUP DATABASE AdventureWorks2012
 TO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
    WITH FORMAT;
GO

B. 備份資料庫和記錄

下列範例會備份 AdventureWorks2019 範例資料庫,依預設採用簡單復原模式。 為了支援記錄備份,AdventureWorks2019 資料庫會修改成使用完整復原模式。

接著,範例會使用 sp_addumpdevice,建立邏輯備份裝置來備份資料 (AdvWorksData),並建立另一個邏輯備份裝置來備份記錄 (AdvWorksLog)。

這個範例接著會建立 AdvWorksData 的完整資料庫備份,並且在更新活動一段時間之後,將記錄備份到 AdvWorksLog

-- To permit log backups, before the full database backup, modify the database
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE AdventureWorks2012
    SET RECOVERY FULL;
GO
-- Create AdvWorksData and AdvWorksLog logical backup devices.
USE master
GO
EXEC sp_addumpdevice 'disk', 'AdvWorksData',
'Z:\SQLServerBackups\AdvWorksData.bak';
GO
EXEC sp_addumpdevice 'disk', 'AdvWorksLog',
'X:\SQLServerBackups\AdvWorksLog.bak';
GO

-- Back up the full AdventureWorks2012 database.
BACKUP DATABASE AdventureWorks2012 TO AdvWorksData;
GO
-- Back up the AdventureWorks2012 log.
BACKUP LOG AdventureWorks2012
    TO AdvWorksLog;
GO

注意

如果是實際執行的資料庫,請定期備份記錄。 記錄的備份頻率必須足以保護資料不會遺失。

C. 建立次要檔案群組的完整檔案備份

下列範例會為兩個次要檔案群組中的每個檔案建立完整檔案備份。

--Back up the files in SalesGroup1:
BACKUP DATABASE Sales
    FILEGROUP = 'SalesGroup1',
    FILEGROUP = 'SalesGroup2'
    TO DISK = 'Z:\SQLServerBackups\SalesFiles.bck';
GO

D. 建立次要檔案群組的差異檔案備份

下列範例會為兩個次要檔案群組中的每個檔案建立差異檔案備份。

--Back up the files in SalesGroup1:
BACKUP DATABASE Sales
    FILEGROUP = 'SalesGroup1',
    FILEGROUP = 'SalesGroup2'
    TO DISK = 'Z:\SQLServerBackups\SalesFiles.bck'
    WITH
      DIFFERENTIAL;
GO

E. 建立和備份至單一家族的鏡像媒體集中

下列範例會建立包含單一媒體系列和四個鏡像的鏡像媒體集,並將 AdventureWorks2012 資料庫備份至它們。

BACKUP DATABASE AdventureWorks2012
TO TAPE = '\\.\tape0'
MIRROR TO TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2'
MIRROR TO TAPE = '\\.\tape3'
WITH
    FORMAT,
    MEDIANAME = 'AdventureWorksSet0';

F. 建立和備份至多重家族的鏡像媒體集中

下列範例會建立一個鏡像媒體集,其中的每個鏡像都由兩個媒體家族組成。 此範例接著會將 AdventureWorks2012 資料庫備份至這兩個鏡像。

BACKUP DATABASE AdventureWorks2012
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2', TAPE = '\\.\tape3'
WITH
    FORMAT,
    MEDIANAME = 'AdventureWorksSet1';

G. 備份至現有的鏡像媒體集中

下列範例會將備份組附加至先前範例所建立的媒體集中。

BACKUP LOG AdventureWorks2012
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2', TAPE = '\\.\tape3'
WITH
    NOINIT,
    MEDIANAME = 'AdventureWorksSet1';

注意

NOINIT 是預設值,這裡顯示它是為了更加清楚。

H. 在新的媒體集中建立壓縮備份

下列範例會格式化媒體、建立新的媒體集,並執行 AdventureWorks2012 資料庫的壓縮完整備份。

BACKUP DATABASE AdventureWorks2012 TO DISK='Z:\SQLServerBackups\AdvWorksData.bak'
WITH
    FORMAT,
    COMPRESSION;

I. 備份至 Microsoft Azure Blob 儲存體

此範例會將 的完整資料庫備份 Sales 執行至 Microsoft Azure Blob 儲存體。 儲存體帳戶名稱為 mystorageaccount。 容器名稱為 myfirstcontainer。 已建立具有讀取、寫入、刪除和列出權限的預存存取原則。 使用與此預存存取原則相關聯的共用存取簽章建立了 SQL Server 認證 https://mystorageaccount.blob.core.windows.net/myfirstcontainer。 如需SQL Server備份至 Microsoft Azure Blob 儲存體的詳細資訊,請參閱SQL Server使用 Microsoft Azure Blob 儲存體 進行備份和還原,以及SQL Server備份至 URL

BACKUP DATABASE Sales
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_20160726.bak'
WITH STATS = 5;

J. 備份至 S3 相容物件儲存體

適用于:SQL Server 2022 (16.x)

此範例會將資料庫的完整備份資料庫 Sales 執行至 S3 相容的物件儲存平臺。 語句中不需要認證的名稱或符合確切的 URL 路徑,但會針對提供的 URL 執行適當的認證查閱。 如需詳細資訊,請參閱使用 S3 相容物件儲存體預覽SQL Server備份和還原

BACKUP DATABASE Sales
TO      URL = 's3://10.10.10.10:8787/sqls3backups/sales_01.bak'
,       URL = 's3://10.10.10.10:8787/sqls3backups/sales_02.bak'
,       URL = 's3://10.10.10.10:8787/sqls3backups/sales_03.bak'
WITH    FORMAT
,       STATS               = 10
,       COMPRESSION;

K. 追蹤備份陳述式的進度

下列查詢會傳回目前正在執行備份陳述式的相關資訊:

SELECT query = a.text, start_time, percent_complete,
    eta = dateadd(second,estimated_completion_time/1000, getdate())
FROM sys.dm_exec_requests r
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command LIKE 'BACKUP%'

下一步

* SQL 受管理執行個體 *  

 

Azure SQL 受控執行個體

在 Azure SQL 受控執行個體 中備份 SQL 資料庫。 Azure SQL 受控執行個體具有自動備份。 您可以建立完整的資料庫 COPY_ONLY 備份。 不支援差異、記錄和檔案快照備份。

也適用于已啟用 Azure Arc 的SQL 受管理執行個體

語法

BACKUP DATABASE { database_name | @database_name_var }
  TO URL = { 'physical_device_name' | @physical_device_name_var }[ ,...n ]
  WITH COPY_ONLY [, { <general_WITH_options> } ]
[;]

<general_WITH_options> [ ,...n ]::=

--Media Set Options
   MEDIADESCRIPTION = { 'text' | @text_variable }
 | MEDIANAME = { media_name | @media_name_variable }
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
   BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
   { NO_CHECKSUM | CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Compatibility Options
   RESTART

--Monitoring Options
   STATS [ = percentage ]

--Encryption Options
 ENCRYPTION (ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY } , encryptor_options ) <encryptor_options> ::=
   SERVER CERTIFICATE = Encryptor_Name | SERVER ASYMMETRIC KEY = Encryptor_Name

引數

DATABASE

指定完整的資料庫備份。 在資料庫備份期間,Azure SQL 受控執行個體會備份足夠的交易記錄,以便在還原備份時,產生一致的資料庫。

重要

在受控執行個體上建立的資料庫備份,只能在其他 Azure SQL 受控執行個體上還原。 它無法還原至 SQL Server 內部部署執行個體 (如同 SQL Server 2016 資料庫的備份無法還原至 SQL Server 2012 執行個體)。

當您還原 BACKUP DATABASE 所建立的備份 (「資料備份」) 時,就會還原整個備份。 若要從SQL 受管理執行個體自動備份還原,請參閱將資料庫還原至Azure SQL 受控執行個體

{ database_name | @database_name_var }

是要備份完整資料庫的來源資料庫。 如果提供做為變數 (@database_name_var) ,則可以將此名稱指定為字串常數 (@database_name_var=資料庫名稱) 或字元字串資料類型的變數,但Ntexttext資料類型除外。

如需詳細資訊,請參閱完整檔案備份備份檔案和檔案群組

TO URL

指定要用於備份作業的 URL。 URL 格式可用來建立備份至 Microsoft Azure 儲存體服務。

重要

為了在備份到 URL 時能夠備份到多部裝置,您必須使用共用存取簽章 (SAS) 權杖。 如需建立共用存取簽章的範例,請參閱 SQL Server 備份至 URL在 Azure 儲存體上使用 Powershell 搭配共用存取簽章 (SAS) 權杖來簡化 SQL 認證的建立 \(英文\)。

n
這是一個預留位置,表示可以在逗號分隔清單中指定最多達 64 個備份裝置。

WITH Options 指定要搭配備份作業使用的選項

CREDENTIAL

只有在建立 Microsoft Azure Blob 儲存體備份時才會使用。

ENCRYPTION

用來指定備份的加密。 您可以指定加密演算法來加密備份,或指定 NO_ENCRYPTION 不加密備份。 加密是有助於保護備份檔案的建議作法。 您可以指定的演算法清單包括:

  • AES_128
  • AES_192
  • AES_256
  • TRIPLE_DES_3KEY
  • NO_ENCRYPTION

如果您選擇加密,則也需要使用加密程式選項指定加密程式:

  • SERVER CERTIFICATE = <Encryptor_Name>
  • SERVER ASYMMETRIC KEY = <Encryptor_Name>

備份組選項

COPY_ONLY

指定備份為「僅複製備份」,這不會影響正常的備份順序。 僅複製備份的建立與 Azure SQL Database 自動備份無關。 如需詳細資訊,請參閱只複製備份

{ COMPRESSION | NO_COMPRESSION }

指定是否要在此備份上執行備份壓縮,以覆寫伺服器層級的預設值。

預設行為是不壓縮備份。 但是,您可以設定 backup compression default 伺服器設定選項來變更此預設值。 如需檢視此選項目前值的資訊,請參閱檢視或變更伺服器屬性

COMPRESSION
明確啟用備份壓縮。

NO_COMPRESSION
明確停用備份壓縮。

DESCRIPTION = { 'text'text_variable | @ }

指定描述備份組的自由形式文字。 這個字串最多可有 255 個字元。

NAME = { backup_set_name | @backup_set_var }

指定備份組的名稱。 名稱最多可有 128 個字元。 如果未指定 NAME,它就是空白。

MEDIADESCRIPTION = { text | @text_variable }

指定媒體集自由形式的文字描述,最多 255 個字元。

MEDIANAME = { media_name | @media_name_variable }

指定整個備份媒體集的媒體名稱。 媒體名稱不能超出 128 個字元,如果指定 MEDIANAME,它必須符合先前所指定且已存在備份磁碟區的媒體名稱。 如果未指定或指定了 SKIP 選項,就不會進行媒體名稱的驗證檢查。

BLOCKSIZE = { blocksize | @blocksize_variable }

指定實體區塊大小 (以位元組為單位)。 支援的大小為 512、1024、2048、4096、8192、16384、32768 和 65536 (64 KB) 位元組。 磁帶裝置的預設值為 65536,其他裝置則為 512。 一般而言這個選項是不必要的,因為 BACKUP 會自動選取裝置適用的區塊大小。 明確指出區塊大小會覆寫自動選取的區塊大小。

資料傳輸選項

BUFFERCOUNT = { buffercount | @buffercount_variable }

指定要用於備份作業的 I/O 緩衝區總數。 您可以指定任何正整數,不過,緩衝區的數目很大時,可能會因為 Sqlservr.exe 處理序中的虛擬位址空間不足而造成「記憶體不足」錯誤。

緩衝區使用的總空間可由下列公式判斷:BUFFERCOUNT * MAXTRANSFERSIZE

注意

如需使用 BUFFERCOUNT 選項的重要資訊,請參閱不正確的 BufferCount 資料傳輸選項可能導致 OOM 狀況 \(英文\) 部落格文章。

MAXTRANSFERSIZE = { maxtransfersize | @ maxtransfersize_variable }

以位元組為單位,指定要用於 SQL Server 和備份媒體之間的最大傳送單位。 可能的值是 65536 位元組 (64 KB) 的倍數,最大可達 4194304 位元組 (4 MB)。

針對含有單一資料檔案且已啟用透明資料加密 (TDE) 的資料庫,預設的 MAXTRANSFERSIZE 為 65536 (64 KB)。 針對非 TDE 加密的資料庫,使用備份至 DISK 時,預設的 MAXTRANSFERSIZE 為 1048576 (1 MB),而使用 VDI 或 TAPE 時為 65536 (64 KB)。

注意

MAXTRANSFERSIZE 會指定傳輸的最大單位,而且不保證每個寫入作業都會傳輸指定的最大大小。 等量交易記錄備份寫入作業的 MAXTRANSFERSIZE 設定為 64 KB。

錯誤管理選項

這些選項可讓您決定是否要針對備份作業啟用備份總和檢查碼,以及作業是否會在發生錯誤時停止。

{ NO_CHECKSUM | CHECKSUM }

控制是否要啟用備份總和檢查碼。

NO_CHECKSUM
明確地停用產生備份總和檢查碼 (以及驗證頁面總和檢查碼)。 這是預設行為。

CHECKSUM
如果備份作業已啟用且可供使用,指定備份作業要驗證每個頁面的總和檢查碼及損毀頁,並產生整個備份的總和檢查碼。

使用備份總和檢查碼,可能會影響工作負載和備份的輸送量。

如需詳細資訊,請參閱在備份和還原期間可能的媒體錯誤

{ STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

控制備份作業在發生頁面總和檢查碼錯誤之後要停止或繼續。

STOP_ON_ERROR
指示 BACKUP 在頁面總和檢查碼未驗證時便失敗。 這是預設行為。

CONTINUE_AFTER_ERROR
指示儘管發生總和檢查碼無效或損毀頁之類的錯誤,BACKUP 仍繼續作業。

如果您在資料庫損毀時無法使用 NO_TRUNCATE 選項來備份記錄的結尾,您可以指定 CONTINUE_AFTER_ERROR 取代 NO_TRUNCATE 來嘗試進行結尾記錄備份

如需詳細資訊,請參閱在備份和還原期間可能的媒體錯誤

相容性選項

RESTART

這個選項無效。 這個版本接受這個選項的目的,是為了與舊版的 SQL Server 相容。

監視選項

STATS [ =percentage ]

每次另一個 百分比 完成時顯示一則訊息,並用來測量進度。 如果省略percentage,SQL Server在每 10% 完成之後顯示一則訊息。

STATS 選項報告到達下一個間隔之報告臨界值的完成百分比。 大約會以指定的百分比為間隔;例如,當 STATS=10,如果完成的量是 40%,這個選項可能顯示 43%。 對大型備份組而言,這不成問題,因為在已完成的 I/O 呼叫之間,百分比完成的移動非常緩慢。

SQL 受控執行個體的限制

備份等量磁碟區大小上限為 195 GB (最大 Blob 大小)。 在備份命令中增加等量磁碟區的數目,以減少個別的等量磁碟區大小並維持在這項限制內。

安全性

權限

BACKUP DATABASE 許可權預設為 sysadmin 固定伺服器角色的成員,以及 db_ownerdb_backupoperator 固定資料庫角色的成員。

URL 的擁有權和權限問題可能會干擾備份作業。 SQL Server必須能夠讀取和寫入裝置;SQL Server服務執行所在的帳戶必須具有寫入權限。

範例

此範例會將 的COPY_ONLY備份 Sales 執行至 Microsoft Azure Blob 儲存體。 儲存體帳戶名稱為 mystorageaccount。 容器名稱為 myfirstcontainer。 已建立具有讀取、寫入、刪除和列出權限的預存存取原則。 使用與此預存存取原則相關聯的共用存取簽章建立了 SQL Server 認證 https://mystorageaccount.blob.core.windows.net/myfirstcontainer。 如需SQL Server備份至 Microsoft Azure Blob 儲存體的詳細資訊,請參閱SQL Server使用 Microsoft Azure Blob 儲存體 進行備份和還原,以及SQL Server備份至 URL

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

下一步

還原資料庫

*分析
平臺系統 (PDW) *
 

 

分析平台系統

建立 Analytics Platform System (PDW) 資料庫的備份,並將備份儲存在使用者指定的網路位置。 請搭配 RESTORE DATABASE - Analytics Platform System 使用此陳述式來進行災害復原,或將資料庫從一個設備複製到另一個設備。

開始之前,請參閱 Analytics Platform System (PDW) 產品檔中的。

Analytics Platform System (PDW) 有兩種類型的備份。 完整資料庫備份是整個 Analytics Platform System (PDW) 資料庫的備份。 「差異資料庫備份」僅包含自上次進行完整備份之後所做的變更。 使用者資料庫的備份會包含資料庫使用者及資料庫角色。 資料庫的備份 master 包含登入。

如需分析平臺系統 (PDW) 資料庫備份的詳細資訊,請參閱 分析平臺系統 (PDW) 產品檔中的。

語法

--Create a full backup of a user database or the master database.
BACKUP DATABASE database_name
    TO DISK = '\\UNC_path\backup_directory'
    [ WITH [ ( ]<with_options> [ ,...n ][ ) ] ]
[;]

--Create a differential backup of a user database.
BACKUP DATABASE database_name
    TO DISK = '\\UNC_path\backup_directory'
    WITH [ ( ] DIFFERENTIAL
    [ , <with_options> [ ,...n ] [ ) ]
[;]

<with_options> ::=
    DESCRIPTION = 'text'
    | NAME = 'backup_name'

引數

database_name

要作為備份建立位置的資料庫名稱。 資料庫可以是 master 資料庫或使用者資料庫。

TO DISK = '\\UNC_path backup_directory\ '

Analytics Platform System (PDW) 的網路路徑和目錄會寫入備份檔案。 例如: \\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup

  • 備份目錄名稱的路徑必須已經存在,且必須以完整通用命名慣例 (UNC) 路徑的形式指定。
  • 備份目錄 backup_directory 必須是在執行備份命令之前不存在的目錄。 Analytics Platform System (PDW) 將會建立備份目錄。
  • 備份目錄的路徑不能是本機路徑,而且它不能是任何 Analytics Platform System (PDW) 設備節點的位置。
  • UNC 路徑和備份目錄名稱的長度上限是 200 個字元。
  • 伺服器或主機必須以 IP 位址的形式指定。 您不能以主機或伺服器名稱的形式指定它。

DESCRIPTION = 'text'

指定備份的文字描述。 文字的長度上限為 255 個字元。

此描述會儲存在中繼資料中,並且會在使用 RESTORE HEADERONLY 來還原備份標頭時顯示。

NAME = 'backup _name'

指定備份的名稱。 備份名稱可以與資料庫名稱不同。

  • 名稱最多可有 128 個字元。
  • 不可包含路徑。
  • 開頭必須是字母或數位字元或底線 () _ 。 允許的特殊字元是底線 (_)、連字號 (-) 或空格 space ( )。 備份名稱的結尾不可以是空格字元。
  • 如果 backup_name已經存在於指定的位置中,陳述式將會失敗。

此名稱會儲存在中繼資料中,並且會在使用 RESTORE HEADERONLY 來還原備份標頭時顯示。

DIFFERENTIAL

指定執行使用者資料庫的差異備份。 如果省略,預設就會是完整資料庫備份。 差異備份的名稱不一定要與完整備份的名稱相符。 為了追蹤差異備份及其對應的完整備份,請考慮使用相同名稱再附加 'full' 或 'diff'。

例如:

BACKUP DATABASE Customer TO DISK = '\\xxx.xxx.xxx.xxx\backups\CustomerFull';

BACKUP DATABASE Customer TO DISK = '\\xxx.xxx.xxx.xxx\backups\CustomerDiff' WITH DIFFERENTIAL;

權限

BACKUP DATABASE需要db_backupoperator固定資料庫角色的許可權或成員資格。 master資料庫無法備份,但是由新增至db_backupoperator固定資料庫角色的一般使用者所備份。 資料庫 master 只能由 sa、網狀架構系統管理員或 系統管理員 固定伺服器角色的成員進行備份。

需要具備備份目錄之存取、建立及寫入權限的 Windows 帳戶。 您也必須將 Windows 帳戶名稱和密碼儲存在 Analytics Platform System (PDW) 。 若要將這些網路認證新增至 Analytics Platform System (PDW) ,請使用sp_pdw_add_network_credentials - Azure Synapse Analytics預存程式。

如需在 Analytics Platform System (PDW) 中管理認證的詳細資訊,請參閱 安全性 一節。

錯誤處理

在下列情況下會發生 BACKUP DATABASE 錯誤:

  • 使用者權限不足以執行備份。
  • 分析平臺系統 (PDW) 沒有將儲存備份之網路位置的正確許可權。
  • 資料庫不存在。
  • 目標目錄已經存在於網路共用上。
  • 目標網路共用無法使用。
  • 目標網路共用沒有足夠的空間來進行備份。 BACKUP DATABASE 命令在起始備份之前,未先確認是否有足夠的空間存在,導致在執行 BACKUP DATABASE 時,可能產生磁碟空間不足錯誤。 當磁碟空間不足時,Analytics Platform System (PDW) 回復 BACKUP DATABASE 命令。 若要減少資料庫的大小,請執行DBCC SHRINKLOG (Azure Synapse Analytics)
  • 嘗試在交易內啟動備份。

一般備註

執行資料庫備份之前,請使用DBCC SHRINKLOG (Azure Synapse Analytics) 來減少資料庫的大小。

分析平臺系統 (PDW) 備份會儲存為相同目錄中多個檔案的集合。

差異備份所花費的時間通常比完整備份少,因此可以較頻繁地執行。 當多個差異備份都根據相同的完整備份時,每個差異備份都會包含前一個差異備份的所有變更。

如果您取消 BACKUP 命令,Analytics Platform System (PDW) 將會移除目標目錄和針對備份建立的任何檔案。 如果 Analytics Platform System (PDW) 失去共用的網路連線,則復原無法完成。

完整備份和差異備份儲存在個別的目錄中。 系統並未強制執行命名慣例來要求指定完整備份和差異備份彼此互屬。 您可以透過自己的命名慣例來進行此追蹤。 或者,您也可以藉由使用 WITH DESCRIPTION 選項來新增描述,然後使用 RESTORE HEADERONLY 陳述式來擷取描述,以進行此追蹤。

限制事項

您無法執行資料庫的差異備份 master 。 僅支援資料庫的完整備份 master

備份檔案儲存的格式僅適用于使用 RESTORE DATABASE - Analytics Platform System 語句將備份還原至 Analytics Platform System (PDW) 設備。

使用 BACKUP DATABASE 語句的備份無法用來將資料或使用者資訊傳送至 SMP SQL Server 資料庫。 如需該功能,您可以使用遠端資料表複製功能。 如需詳細資訊,請參閱 分析平臺系統 (PDW) 產品檔中的。

Analytics Platform System (PDW) 會使用SQL Server備份技術來備份和還原資料庫。 SQL Server備份選項已預先設定為使用備份壓縮。 您無法設定壓縮、總和檢查碼、區塊大小及緩衝區計數等備份選項。

在任何指定時間,都只能在應用裝置上執行一個資料庫備份或還原作業。 分析平臺系統 (PDW) 會排入備份或還原命令佇列,直到目前的備份或還原命令完成為止。

用來還原備份的目標應用裝置所擁有的計算節點數目必須至少與來源應用裝置相同。 目標所擁有的計算節點數目可以比來源應用裝置多,但不能比來源應用裝置少。

分析平臺系統 (PDW) 不會追蹤備份的位置和名稱,因為備份會儲存在設備外。

分析平臺系統 (PDW) 會追蹤資料庫備份的成功或失敗。

只有在上一個完整備份已成功完成的情況下,才會允許執行差異備份。 例如,假設您在星期一建立銷售資料庫的完整備份,且該備份成功完成。 然後,您在星期二建立銷售資料庫的完整備份,但卻失敗。 在發生此失敗之後,您便無法根據星期一的完整備份來建立差異備份。 您必須先建立成功的完整備份,才能建立差異備份。

中繼資料

這些動態管理檢視包含所有備份、還原及載入作業的相關資訊。 此資訊在系統重新啟動之後會持續存留。

效能

若要執行備份,Analytics Platform System (PDW) 會先備份中繼資料,然後執行儲存在計算節點上之資料庫資料的平行備份。 資料會直接從每個計算節點複製到備份目錄。 為了達到將資料從計算節點移至備份目錄的最佳效能,Analytics Platform System (PDW) 控制同時複製資料的計算節點數目。

鎖定

在 DATABASE 物件上採用 ExclusiveUpdate 鎖定。

安全性

分析平臺系統 (PDW) 備份不會儲存在設備上。 因此,您的 IT 小組需負責管理備份安全性的所有層面。 例如,這包括管理備份資料的安全性、用來儲存備份的伺服器安全性,以及將備份伺服器連線到 Analytics Platform System (PDW) 設備的網路基礎結構安全性。

管理網路認證

對備份目錄的網路存取權是以標準作業系統檔案共用安全性為基礎。 執行備份之前,您必須建立或指定將用來驗證 Analytics Platform System (PDW) 備份目錄的 Windows 帳戶。 此 Windows 帳戶必須具有存取、建立及寫入備份目錄的許可權。

重要

為了降低您資料的安全性風險,建議您指定一個專門用來執行備份和還原作業的 Windows 帳戶。 請讓此帳戶僅擁有備份位置的權限。

您必須執行sp_pdw_add_network_credentials - Azure Synapse Analytics Analytics預存程式,將使用者名稱和密碼儲存在 Analytics Platform System (PDW) 。 Analytics Platform System (PDW) 會使用 Windows 認證管理員,在控制節點和計算節點上儲存和加密使用者名稱和密碼。 備份認證時,不會使用 BACKUP DATABASE 命令來備份。

若要從 Analytics Platform System (PDW) 移除網路認證,請參閱sp_pdw_remove_network_credentials - Azure Synapse Analytics

若要列出儲存在 Analytics Platform System (PDW) 中的所有網路認證,請使用 sys.dm_pdw_network_credentials 動態管理檢視。

範例

A. 新增備份位置的網路認證

若要建立備份,Analytics Platform System (PDW) 必須具有備份目錄的讀取/寫入權限。 下列範例示範如何新增使用者的認證。 Analytics Platform System (PDW) 會儲存這些認證,並將其用於備份和還原作業。

重要

基於安全性考量,建議您建立一個專門用來執行備份的網域帳戶。

EXEC sp_pdw_add_network_credentials 'xxx.xxx.xxx.xxx', 'domain1\backupuser', '*****';

B. 移除備份位置的網路認證

下列範例示範如何從 Analytics Platform System (PDW) 移除網域使用者的認證。

EXEC sp_pdw_remove_network_credentials 'xxx.xxx.xxx.xxx';

C. 建立使用者資料庫的完整備份

下列範例會建立 Invoices 使用者資料庫的完整備份。 Analytics Platform System (PDW) 將會建立 Invoices2013 目錄,並將備份檔案儲存至 \\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full 目錄。

BACKUP DATABASE Invoices TO DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full';

D. 建立使用者資料庫的差異備份

下列範例會建立差異備份,其中包含資料庫上次完整備份 Invoices 之後所做的所有變更。 Analytics Platform System (PDW) 會建立 \\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff 將儲存檔案的目錄。 'Invoices 2013 differential backup' 描述將會與備份的標頭資訊儲存在一起。

只有在 Invoices 的上一個完整備份已成功完成的情況下,差異備份才會執行成功。

BACKUP DATABASE Invoices TO DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'
    WITH DIFFERENTIAL,
    DESCRIPTION = 'Invoices 2013 differential backup';

E. 建立 master 資料庫的完整備份

下列範例會建立資料庫的完整備份 master ,並將它儲存在目錄 \\\xxx.xxx.xxx.xxx\backups\2013\daily\20130722\master ,其中 IP 是網路 IP 位址。

BACKUP DATABASE master TO DISK = '\\xxx.xxx.xxx.xxx\backups\2013\daily\20130722\master';

F. 建立設備登入資訊的備份

資料庫 master 會儲存設備登入資訊。 若要備份裝置登入資訊,您需要備份 master 資料庫。

下列範例會建立資料庫的完整備份 master

BACKUP DATABASE master TO DISK = '\\xxx.xxx.xxx.xxx\backups\2013\daily\20130722\master'
WITH (
    DESCRIPTION = 'Master Backup 20130722',
    NAME = 'login-backup'
)
;

下一步

RESTORE DATABASE - 平行處理資料倉儲