每個SQL Server上面執行的最重要的任務之一都是運行備份和恢複。備份將你的資料庫拷貝一份,當 問題發生在你的產品資料庫的時候,備份通過給你一份完全的拷貝來恢複而提供安全措施。在大多數情況 下,恢複過程都是以非產品關鍵的方式完成的,例如淨化開發/測試環境或者淨化報告報告環境。但是在 大多數的關鍵模式下,你都需要通過恢複這些備份拷貝來修正產品環境。
基於建立備份的重要性,以及恢複備份來糾正產品問題的關鍵需求,時間就是根本。備份是線上操作 ,但是他們確實使用了系統資源。然而,恢複需要對資料庫進行額外的訪問,所以在錯誤狀態中,這甚至 是個更加關鍵的任務。
考慮到完成這些任務的時間因素,還有一些事情需要在備份端和恢複端完成,以改善這些操作的速度 。
硬體
備份和恢復是被你的硬體,以及這些硬體上的配置影響的。從硬體的角度來說,這裡有一些你需 要考慮用來提高效能的事情。
分散磁碟I/O。通過使用盡量多的驅動,你可以確保磁碟I/O不成為瓶頸。還要確保你沒有同時使用同 一塊硬碟進行讀寫操作。
採用最新的硬體技術使用最快的RAID配置:RAID 0, RAID1, RAID10 然後是 RAID 5.
使用最快的驅動
使用最快的控制器,並且將磁碟活動分散到不同的控制器或者不同的通道上去。
使用本地添加的磁碟,不要通過網路進行備份。
備份到磁碟上,然後存檔到磁帶上。
對快照和分割鏡像備份使用SAN技術。
如果你需要備份另一台機器,那麼儘可能地使用最快的網卡和交換器。還有,如果你能夠將這些網路 流量與正常的網路流量區分開,那麼你就可以降低網路I/O瓶頸的可能性。
本地備份
另一個可能會影響完成備份所費時間的領域就是何時,以及如何運行備份。
在伺服器利用時間較低的時候執行
不要在同一時間運行你所有的備份。
不要在大型備份的同一時間運行批次程式。
使用備份選項來寫入到多個檔案中。這將會將你的I/O分散,同時增加線程數量。
同時使用幾種備份技術:完全、區分的和日誌。
本地恢複
從恢複的角度來說,上面提到的大部分時間都是用在了恢複上面。這裡是一些額外的技巧:
不同階段使用不同的領域,這樣備份就被部分地恢複了,而不需要在同一時間恢複所有備份。
使用恢複過程,例如Log Shipping,達到與先前某個點類似的一些東西。
使用除了備份和從資料恢複中重新儲存之外的其它技術,例如聚簇、複製、CDP等。
第三方軟體
一個關鍵的節省時間的方法就是使用備份壓縮公用程式構建特別針對SQL Server的備份。在市場上有一些 這樣的工具,使用它們可以在最小努力的情況下獲得最大的收益。
Idera的 SQLsafe
Quest的 SQL LiteSpeed
Red-Gate的 SQL Backup
基於使用Idera和各種各樣硬體的供應商們進行的測試,Idera可以達到每小時4.5TB的備份速率,通過 使用SQL safe的重新儲存的速率可以達到每小時2.3TB。通過以下連結察看有關設定新的效能記錄的額外 資訊。這幾乎是大多數SQL環境的極限值,不論是從配置硬體的成本,到每小時4.5TB備份資料庫的需求。 但是現實情況是通過同時配置關於硬體和軟體的完整解決方案,是可能達到的。
小結
正如你看到的,要提高你的備份和重新預存程序的輸送量,有一些不同的事情可以完成。其中的一些 是非常簡單的修正,而另外一些則需要配置你的硬體,購買新的硬體或者購買可以協助提高速度的工具。
基於Idera測試得到的每小時4.5TB的速度,使用第三方備份壓縮公用程式看起來是最簡單的,和最輕鬆的 方式。我不認為有很多資料庫會達到這樣程度的資料庫規模,所以基於測試,大多數的完全備份都可以在 一小時之內完成。這裡是一份關於最大型的資料庫的報告,正如你看到的,還沒有很多的資料庫達到超越 TB的規模。從這份報告來看,這個數字大概2年就會翻3倍,我確信這個數量級不到兩年就會達到3倍。
但是使用所有這些選項的綜合,你將會達到更快的備份和重新儲存的速度,但是即使是以上所有的方 法,也總是會有某些類型的限制。