優化 SQL Server 中的備份和還原效能

iSQlServer發表於2008-12-22

Microsoft SQL Server 提供了以下兩種加速備份和還原操作的方式:

使用多個備份裝置使得可以將備份並行寫入所有裝置。備份裝置的速度是備份吞吐量的一個潛在瓶頸。使用多個裝置可以按使用的裝置數成比例提高吞吐量。同樣,可以將備份並行從多個裝置還原。有關詳細資訊,請參閱本主題後面的“使用多個媒體或裝置”。

結合使用完整備份、差異備份(對於完整恢復模式或大容量日誌恢復模式)以及事務日誌備份可以最大程度地縮短恢復時間。建立差異資料庫備份通常比建立完整資料庫備份快,並減少了恢復資料庫所需的事務日誌量。有關詳細資訊,請參閱建立 SQL Server 資料庫的完整備份和差異備份。

 使用多個媒體或裝置
通過讀取器/寫入器執行緒將資料和事務日誌從備份裝置複製到資料庫和事務日誌檔案;給每個備份裝置指派一個執行緒。效能受備份裝置傳送資料的能力或資料庫和事務日誌檔案接收資料的能力的限制。因此,效能隨備份裝置數量的增加而提升,直到達到資料庫或事務日誌檔案接收資料的最大吞吐量。

使用多個備份裝置進行備份和還原操作,SQL Server 可以使用並行 I/O 來提高備份和還原操作的速度,因為每個備份裝置都可以與其他備份裝置同時執行寫操作或讀操作。對於具有大型資料庫的企業,使用多個備份裝置可以明顯減少執行備份和還原操作所花的時間。SQL Server 最多支援 64 個備份裝置同時執行一個備份操作。

當一個備份寫入多個備份裝置時,會出現幾個內部同步點。最重要的同步點在已備份完資料庫內的所有資料且即將開始備份事務日誌時出現。

重要提示:
使用多個備份裝置執行備份操作時,所用的備份媒體只能用於 SQL Server 備份操作。有關詳細資訊,請參閱使用備份媒體。
 


使用多個備份裝置建立和還原備份與使用單個裝置建立和還原備份相同。唯一的區別是使用多個備份裝置時,必須指定操作中用到的所有備份裝置,而不是僅指定一個。例如,如果使用三個磁帶備份裝置(如 \\.\TAPE0\\.\TAPE1\\.\TAPE2)建立資料庫備份,則必須將每個磁帶裝置指定為備份操作的一部分,儘管以後還原和備份時很少會用到這些磁帶備份裝置。

使用可移動媒體在多個備份裝置上建立備份時,這些裝置可以以不同的速度執行,媒體卷的可用空間也可以有所不同。在備份操作過程中,如果備份裝置上媒體卷的空間已用完,此操作將停止對該裝置執行寫操作並提示您更換新的媒體卷。該裝置將處於阻塞狀態,直到您使用空卷替換空間已滿的媒體卷。與此同時,備份操作繼續向其媒體仍具有可用空間的裝置寫入資料。替換空間已滿的媒體卷後,該裝置將變為可用,備份繼續向該裝置寫入資料。但是,請注意,如果在任何裝置阻塞時出現內部同步點,整個備份操作將暫停,直到該裝置再次可用。

示例
請考慮使用三個相同速度的磁帶備份裝置儲存完整資料庫備份的方案。前兩個磁帶有 10 GB 的可用空間,而第三個磁帶只有 5 GB 的可用空間。如果將 20 GB 的資料庫同時備份到這三個磁帶備份裝置上,第三個磁帶將在備份完成之前填滿。5 GB 的資料寫入第三個磁帶後,備份操作將立即停止對第三個裝置執行寫操作。備份操作將阻塞該裝置,並提示您更換新的磁帶。與此同時,備份操作繼續向另兩個裝置寫入資料。但是,在更換第三個磁帶之前,會出現內部同步點。此時,整個備份操作將暫停,直到第三個裝置中裝入了新磁帶。

 優化完整備份和差異備份的效能
建立完整備份或差異備份包含以下步驟:

將資料庫檔案中的資料複製到備份裝置。

複製事務日誌中用於將資料庫前滾到與相同的備份裝置狀態一致的那部分。

建立差異備份與建立完整備份相同,不過建立差異備份僅複製更改的資料。備份資料庫檔案只需把檔案中的資料複製到備份裝置。

用於儲存資料庫的資料庫檔案按磁碟裝置排序,並給每個裝置指派讀取器執行緒。該讀取器執行緒從資料庫檔案中讀取資料。給每個備份裝置指派寫入器執行緒。寫入器執行緒將資料寫入備份裝置。通過在更多的邏輯驅動器中分佈資料庫檔案可以增加並行讀取操作。同樣,通過使用更多的備份裝置可以增加並行寫操作。

一般情況下,瓶頸要麼是資料庫檔案,要麼是備份裝置。如果讀取吞吐總量比備份裝置吞吐總量大,則瓶頸在備份裝置這一側。新增更多的備份裝置(如果必要還新增 SCSI 控制器)可以提高效能。但是,如果備份吞吐總量比讀取吞吐總量大,則應通過新增更多資料庫檔案或裝置(或通過新增更多磁碟到 RAID 裝置)以增加讀取吞吐量。

 優化事務日誌備份效能
建立事務日誌備份只需將日誌中尚未備份的部分複製到備份裝置。雖然可能有多個事務日誌檔案,但事務日誌在邏輯上是某個執行緒按順序讀取的一個流。

給每個備份裝置指派寫入器執行緒。通過新增更多的備份裝置可以獲得更高的效能。

瓶頸既可能是包含事務日誌檔案的磁碟裝置也可能是備份裝置,這取決於它們的相對速度和所使用備份裝置的數量。新增更多備份裝置可以使效能呈線性增長,直到達到包含事務日誌檔案的磁碟裝置的最大容量,此後只有提高包含事務日誌的磁碟裝置的速度(例如,使用磁碟條帶化),才能得到更多的效能收益。

 優化還原效能
還原資料庫備份或差異備份包括四個步驟:

建立資料庫和事務日誌檔案(如果它們不存在)。

將資料從備份裝置複製到資料庫檔案。

從事務日誌檔案複製事務日誌。

前滾事務日誌,然後(如果需要)重新啟動恢復。

應用事務日誌備份包括兩個步驟:

將資料從備份裝置複製到事務日誌檔案。

前滾事務日誌。

還原資料庫檔案包括兩個步驟:

建立所有丟失的資料庫檔案。

將資料從備份裝置複製到資料庫檔案。

 檔案初始化
如果資料庫和事務日誌檔案還不存在,必須先建立它們才能將資料還原到其中。建立資料庫和事務日誌檔案並將檔案內容初始化為零。單獨的工作執行緒並行建立和初始化檔案。按磁碟裝置排序資料庫和事務日誌檔案,並給每個磁碟裝置指派單獨的工作執行緒。建立和初始化檔案需要很大的吞吐量,因此在可用的邏輯驅動器中均勻分佈檔案能產生最佳效能。

 即時檔案初始化
在 SQL Server 2005 及更高版本中,可以即時初始化資料檔案,因而可以快速執行資料庫或檔案組還原操作。即時檔案初始化功能將收回使用的磁碟空間,不會使用零填充。而是,新資料寫入檔案時覆蓋磁碟內容。日誌檔案初始化仍需要零位調整,但此操作將與從備份傳輸資料並行進行。傳輸所有資料並初始化整個日誌之前,不能開始還原的前滾步驟。

注意:
只有在 Microsoft Windows XP 或 Windows Server 2003 系統中才可以使用即時檔案初始化功能。
 


若要使用即時檔案初始化,必須在 Windows 帳戶下執行 MSSQLSERVER 服務帳戶併為該 Windows 帳戶分配 Windows SE_MANAGE_VOLUME_NAME 特權。此許可權預設情況下分配給 Windows 管理員組。如果擁有系統管理員許可權,您可以通過將 Windows 帳戶新增到“執行卷維護任務”安全策略來分配此許可權。有關分配使用者許可權的詳細資訊,請參閱 Windows 文件。

 優化磁帶備份裝置效能
有多個變數影響磁帶備份裝置的效能,並使 SQL Server 備份和還原效能操作隨磁帶裝置的新增大致呈線性增長:

軟體資料塊大小。

共享一個小型計算機系統介面 (SCSI) 匯流排的磁帶裝置數。

磁帶裝置型別。

軟體資料塊大小是由 SQL Server 為最佳效能計算的,不應更改。最大 BLOCKSIZE 為 64 KB。

許多高速磁帶機如果對每個所使用的磁帶機有專用 SCSI 匯流排,將執行得更好。本機傳輸速率超過 SCSI 匯流排速度的 50% 的驅動器必須在專用 SCSI 匯流排上,以避免降低效能。有關影響磁帶機效能的設定的更多資訊,請參閱磁帶機供應商文件。

重要提示:
永遠不要將磁帶機與磁碟或 CD-ROM 驅動器放置在同一個 SCSI 匯流排上。對這些裝置的錯誤處理操作互不相容。
 


對已載入的磁帶執行多個備份操作時,可以通過指定 NOREWIND 來提高效能。此選項導致 SQL Server 在完成備份操作後使磁帶保持開啟狀態。NOREWIND 意即 NOUNLOAD。

 優化磁碟備份裝置效能
磁碟備份裝置的原始 I/O 速度影響磁碟備份裝置效能,並使 SQL Server 備份和還原效能操作隨磁碟裝置的新增大致呈線性增長:

對磁碟備份裝置使用 RAID 時需認真考慮。例如,RAID 5 的寫入效能低,大致與單個磁碟的速度相同(由於必須維護奇偶資訊)。另外,將資料追加到檔案的原始速度明顯比原始裝置寫入速度慢。

如果將備份裝置高度條帶化,以便使對備份裝置的最大寫入速度遠遠超過備份裝置將資料追加到檔案的速度,則在相同的條帶集上放置幾個邏輯備份裝置會比較合適。換句話說,可以通過在相同的邏輯驅動器上放置幾個備份媒體家族來提高備份效能。然而,需要採用經驗方法確定這對每個環境是收益還是損失。通常情況下,最好將每個備份裝置放置在單獨的磁碟裝置上。

一般在 SCSI 匯流排上只有少數幾個磁碟可以最大速度執行,但 Ultra-wide 和 Ultra-2 匯流排可以處理更多磁碟。不過,很可能需要認真配置硬體以獲得最佳效能。

有關影響磁碟效能的設定的更多資訊,請參閱磁碟供應商文件。

 資料壓縮
如今的磁帶機有內建的硬體資料壓縮,可顯著提高將資料傳送到驅動器的有效傳送速率。資料庫內實資料的可壓縮性取決於資料本身和所使用的磁帶機。對於大範圍的資料庫,典型的資料壓縮率是從 1.2:1 到 2:1。該壓縮率對於在多種業務應用程式中使用的資料是典型的,但有些資料庫可能有更高或更低的壓縮率。例如,主要包含已壓縮影像的資料庫將不能再由磁帶機進一步壓縮。有關資料壓縮的更多資訊,請參閱磁帶機供應商文件。

預設情況下,SQL Server 支援硬體壓縮,但可以使用 3205 跟蹤標誌禁用硬體壓縮。在極少數情況下,禁用硬體壓縮可以提高備份效能。例如,如果資料已經完全壓縮,禁用硬體壓縮可防止磁帶機浪費時間試圖進一步壓縮資料。

有關跟蹤標誌的詳細資訊,請參閱跟蹤標誌 (Transact-SQL)。

 備份壓縮
預設情況下,使用備份壓縮排行備份會顯著增加 CPU 使用率,並且壓縮排程佔用的額外 CPU 可能會對併發操作造成不利影響。因此,您可能需要在會話中建立低優先順序的壓縮備份,當發生 CPU 爭用時,此備份的 CPU 使用率受資源調控器限制。有關詳細資訊,請參閱如何使用資源調控器限制備份壓縮的 CPU 使用量 (Transact-SQL)。

 傳送到磁帶的資料量
建立資料或差異備份只捕獲資料庫中包含實際資料的部分,而不備份未使用的空間。其結果將使備份操作的速度更快。

雖然您可以根據需要將 SQL Server 資料庫配置為自動增長,但是也可以繼續保留資料庫內的空間以保證它可用。保留資料庫內的空間對備份吞吐量和備份資料庫所需的總時間沒有負面影響。

 優化日誌傳送同步
嘗試同步日誌傳送目標時,不必在 RESTORE LOG 步驟之間使用 WITH STANDBY。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-520809/,如需轉載,請註明出處,否則將追究法律責任。

相關文章