怎樣用壓縮技術給SQL Server備份文件瘦身_Mssql數據庫教程
推薦:如何在SQL 2005中實現循環每一行做一定的操作如果我們想對一個表的每一行做出比較復雜的操作,大多會想到用游標,本文中,我們將換一種思路,用SQL Server 2005中的新函數ROW_NUMBER()和while循環來對每一行執行操作。詳細的示例代碼如下: select Department_No as departmentNo,ROW_NUMBER() OVER(ORD
眾所周知,隨著數據庫體積的日益龐大,其備份文件的大小也水漲船高。雖然說通過差異備份與完全備份配套策略,可以大大的減小SQL Server數據庫備份文件的容量。可是,其體積仍然很龐大。所以,在日常工作中,如何給SQL Server的備份文件瘦身,就是很多數據庫管理員所關心的問題了。
也許微軟的數據庫產品設計專家聽到了眾多數據庫管理員的呼聲了吧。在最新的2008版本的SQLServer數據庫中,提出了備份壓縮的概念。其基本原理跟利用RAR等壓縮工具壓縮文件一樣,可以讓原有的備份文件體積更小。這直接帶來的好處,就是可以節省服務器的備份空間。另外,若SQLServer數據庫配置了異地備份的話,那么也可以節省網絡帶寬,縮短異地備份的時間,等等。
筆者前不久剛把數據庫升級到了2008,并重新更改了備份配置,讓數據庫支持備份壓縮。下面筆者就把備份壓縮的管理心得跟大家分享一下。希望筆者這些經驗能夠幫助大家做好SQL Server數據庫備份壓縮的管理。簡單的來說,如果要采用備份壓縮技術,那么數據庫管理員要弄明白幾個問題。
問題一:備份壓縮技術的限制條件。
由于備份壓縮技術是2008版本中才提出來的,所以其兼容性可能就會收到一些限制。根據官方的說法是,從2008以后的數據庫版本,都會支持這個備份壓縮技術。故向后兼容應該問題不大。數據庫管理員關心的應該是,從低版本升級到高版本的數據庫時的一些限制條件。掌握這些限制條件,可能會讓數據庫升級少遇到一些問題。根據筆者的了解,這里至少有二個限制條件。
一是壓縮的備份和未壓縮的備份不能夠共存于一個媒體集中。在SQL Server數據庫中,如果要對數據集進行備份,則首先需要建立一個媒體集。筆者升級完成之后,先對數據庫進行了一個完全備份,這個備份沒有采用壓縮技術。后來筆者在測試壓縮備份的時候,卻發現怎么都不成功。后來根據錯誤提示查詢了相關資料并進行親自測試,才發現壓縮的備份和未壓縮的備份不能夠共存于一個媒體集中。筆者后來重新建立了一個媒體集后,備份壓縮技術就可以起作用了。
二是早期版本的SQL Server數據庫無法讀取壓縮的備份。為了測試備份壓縮技術的向前兼容性,筆者特意利用備份壓縮后的數據庫文件,去恢復2005版本的數據庫。注意,這個數據庫文件是升級到2008后馬上備份的,也就是說,除了這個壓縮技術外,沒有采用2008的新技術與新對象。但是,卻發現2005版本的數據庫根本不認賬,不認識這個壓縮后的備份文件。可見,早期版本的SQL Server數據根本無法讀取壓縮后的備份文件。
這是筆者測試后發現的兩個限制條件。不過筆者查詢了一些官方資料后發現,還有一個重要的限制。如NTBACKUP工具無法共享含壓縮的數據庫備份磁帶。不過由于筆者用不到這方面的內容,所以也沒有測試是否如此。
問題二:壓縮的效果到底如何?
如果采用了壓縮備份技術,那么備份文件到底可以瘦下來多少呢?這主要跟數據庫有關。根據筆者的了解,如下一些因素會直接影響到最終的壓縮效果。
首先是跟數據類型有關。如果數據庫中大部分是字符型的數據,則其壓縮效果會比較好。而如果數字類型比較多的話,那么采用壓縮備份技術后,備份文件并不能夠小多少。這也給數據庫管理元是否要采用壓縮備份技術提供了一個判斷的標準。
其次是數據是否加密。正常情況下,如果數據庫中的數據未加密,則其壓縮的效果會比較明顯。相反如果數據庫的數據加密了,則其壓縮的程度就會小很多。如數據庫管理員利用透明數據加密方法來加密整個數據庫,則采用壓縮備份技術之后,壓縮備份并不會將數據庫減小多少,甚至根本不會減小。
再者,跟數據表設計也有關系。一般情況下,如果表設計比較合理,則其壓縮的效果就會好許多。如某頁中包含多個行,而其中的某個字段包含相同的值,則該值就可以獲得比較大的壓縮率。與之相反,如果字段中的數據大部分是隨機數據(即使只有稍微的差別),則其壓縮備份的大小幾乎與未壓縮的備份相同。這也就是說,要想取得比較好的壓縮效果,則在數據庫設計時,就需要考慮。如可以采用一些列表字段供用戶選擇,就可以提高最終備份文件的壓縮效果。
問題三:壓縮備份對于性能的影響如何?
數據庫采用壓縮備份之后,對于數據庫的影響是雙方面的,即有利也有害。
利是直接跟上面所說的數據庫壓縮效果相關。因為同一個數據庫的壓縮備份文件要比原來的備份文件要小,所以壓縮備份所需要的設備輸入輸出通常比較少,所以可以大大提高備份速度。而且,數據庫進行異地備份的話,還可以大大縮短網路傳輸的時間。所以,當數據庫的壓縮效果越好,則對于數據庫的性能,也會有很大的改善。
分享:如何在應用環境中構造最優的數據庫模式數據庫設計(Database Design)的概念:數據庫設計是指對于一個給定的應用環境,構造最優的數據庫模式,建立數據庫及其應用系統,使之能夠有效地存儲數據,滿足各種用戶的應用需求(信息要求和處理要求)。 (在數據庫領域內,經常把使用數據庫的各類系統統稱為數
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數據庫教程-怎樣用壓縮技術給SQL Server備份文件瘦身
。