每個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倍。
但是使用所有這些選項的綜合,你將會達到更快的備份和重新存儲的速度,但是即使是以上所有的方 法,也總是會有某些類型的限制。