最佳化 SQL Server 中的備份和還原效能
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 SE_MANAGE_VOLUME_NAME 特殊權限給該 Windows 帳戶。此權限依預設會指定給 Windows Administrators 群組。若您有系統管理員權限,即可將 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 的寫入效能比較低,大約與單一磁碟的速度一樣 (因為必須維護同位檢查資訊)。此外,附加資料到檔案的原始速度顯著低於原始裝置的寫入速度。
如果備份裝置做了大量的條狀配置 (Stripe),使得備份裝置的最大寫入速度大幅超過它附加資料到檔案的速度,就可以將數個邏輯備份裝置放在同一個條狀磁碟組 (Stripe Set) 上。換言之,利用將多個備份媒體家族放在同一個邏輯磁碟機上,可以提高備份效能。但必須根據經驗法則,來決定這樣做對每個環境是得是失。通常最好是將每個備份裝置放在不同的磁碟裝置上。
一般而言,雖然 Ultra-wide 與 Ultra-2 匯流排可以處理較多磁碟,但在 SCSI 匯流排上,只有少數磁碟可以全速運轉。然而,仔細設定硬體組態,就有可能獲得最佳效能。
如需有關影響磁碟效能設定的詳細資訊,請參閱磁碟廠商的說明文件。
資料壓縮
新式磁帶機都有內建的硬體資料壓縮功能,可以顯著增加傳到磁帶機上的有效資料傳輸率。資料庫中真實資料的可壓縮性,須視資料本身與所用的磁帶機而定。典型的資料壓縮比範圍在 1.2:1 到 2:1 之間,適用於範圍廣泛的資料庫。這個壓縮比是範圍廣泛的企業應用程式中資料典型的壓縮比,儘管有些資料庫的壓縮比可能高或低一些。例如,大部分由影像組成的資料庫,因為已經壓縮過,所以磁帶機已無法再進一步壓縮。如需有關資料壓縮的詳細資訊,請參閱磁帶機廠商的說明文件。
根據預設,SQL Server 可支援硬體壓縮,但只要使用 3205 追蹤旗標,就可以停用此程序。在極少數的情況下,關閉硬體壓縮可能改善備份效能。例如,如果資料已完全壓縮過,關閉硬體壓縮後,磁帶機就不會浪費時間再進一步壓縮資料。
如需追蹤旗標的詳細資訊,請參閱<追蹤旗標 (Transact-SQL)>。
備份壓縮
根據預設,使用備份壓縮來備份會大幅增加 CPU 使用量,而且壓縮程序所耗用的額外 CPU 可能會對並行作業造成不良的影響。因此,如果發生 CPU 爭用的情況,您可能會想要在資源管理員限制 CPU 使用量的工作階段中建立低優先權的壓縮備份。如需詳細資訊,請參閱<如何:使用資源管理員來限制備份壓縮的 CPU 使用量 (Transact-SQL)>。
傳輸到磁帶的資料量
建立資料或差異備份,只會擷取資料庫中包含實際資料的部分,不會備份未使用的空間。此方式可讓備份作業較快速。
雖然 SQL Server 資料庫可以設成視需要自動成長,您還是可以在資料庫內保留空間,以確保可取得這個空間。在資料庫內保留空間並不會不利於備份輸送量,也不會影響備份資料庫所需的總時間。
最佳化記錄傳送同步處理
當您嘗試同步處理記錄傳送目的地時,不需要在 RESTORE LOG 步驟之間使用 WITH STANDBY。