關于SharePoint的備份還原功能,大家可能都有所了解。但是SharePoint一共有多少種備份方式呢,哪種備份方式是更適合你的呢,本文主要為大家梳理,并且深入的研究一下常見的幾種備份方式,以便大家能有所了解,以及了解使用場合。
SharePoint提供了哪些級別的備份
- Web級別的備份
- SiteCollection級別的備份
- 數據庫級別的備份
Web級別的備份
對于Web級別的備份,我們常用的命令行是:
我們下面主要反編譯一下,看看他這個方式是如何實現的,過程省略,直接找到備份的核心類:
看到這幾個類圖相比大家已經心里了解到,SharePoint分別對站點中上面的內容進行序列化,并且存儲的,序列化的過程是什么樣的呢?這里簡單以Web為例:
這里基本能看到,SharePoint是通過API取屬性的方式把站點集里面的內容按照功能一步一步的進行序列化的,因此備份還原都是通過API來進行的,這個例子也證明了SharePoint API本身的強大。
具體里面的實現內容不再贅述,大家可以自己了解一下。到了這里我們大體可以總結一下,Web級別備份的特點:
- 基于SharePointAPI 進行的
- 備份的順序按照結構及其功能
- 還原也是通過SharePoint API進行的,因此如果使用這種備份數據進行還原,Id等表示不會重復。
SiteCollection級別的備份
對于SiteCollection級別的備份,我們常用的命令行是:
同樣的過程,我們反編譯代碼,看一下這個命令行的實現:
紅線中標識的,看起來和ContentDatabase 有關吧,再看一下核心的方式 manager.Serialize方法。
紅線中標識的關鍵字已經很明顯的告訴了我們,SharePoint是通過對ContentDatabase里面的每一張表進行序列化,然后保存到本地了。
因此到這里,我們可以簡單的歸納一下SiteCollection級別備份的特點:
- 基于SiteCollection級別進行的,不能細化
- 備份過程是按照數據庫中表的順序的
- 這種方式決定了還原之后,某些Id會重復,但是實際測試結果發現SiteCollectionId不會重復
數據庫級別的備份
這個就無需贅述了,他的特點是:
- 基于Database級別的,不能細化
- 備份過程中按照數據塊進行,或者快照
- 這種方式還原之后,Id,主鍵等信息和備份時完全一樣
如何選擇我們要使用哪種備份方式呢?
下面的列表可以幫助大家選擇
內容的重復性(和備份數據進行比較):
SiteCollectionId |
WebId |
DocumentId |
|
Web級別 |
不相同 |
不相同 |
不相同 |
SiteCollection級別 |
不相同 |
相同 |
相同 |
數據庫級別 |
相同 |
相同 |
相同 |
這個列表已經列出了數據重復性,因此在使用時,我們需要考慮一下幾點:
- 同一個SPFarm中,不可以有兩個Id相同的SPSite,因此數據庫級別的備份,備份還原數據在同一個SPFarm中是不兼容的
- 同一個SPContentDatabase中,不能有相同的WebId,因此SiteCollection級別的備份,備份還原數據再同一個SPContentDatabase中是不兼容的
- Web級別的備份沒有以上兩個問題
效率對比:
理論速度 |
|
Web級別 |
最慢 |
SiteCollection級別 |
中等 |
數據庫級別 |
快 |
效率對比,相信大家也可以理解,是用SharePointAPI的備份效率<按照Table進行備份<通過SQL進行快照備份。
因此通過比較,大家可以清晰的看出,每種備份方式的優缺點,及其效率。由于SharePoint不止提供很多接口進行了備份還原,甚至有很多第三方軟件也支持了SharePoint的備份還原,但萬變不離其宗,基本思路主要就是這3種,當你了解了你使用的是哪種備份方式,就可以了解到他的效率,以及可能帶來的問題了。
文章列表