选择哪种方式进行SharePoint的备份
关于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种,当你了解了你使用的是哪种备份方式,就可以了解到他的效率,以及可能带来的问题了。
选择哪种方式进行SharePoint的备份的更多相关文章
- LR选择哪种方式录制
LR选择哪种方式录制,有以下考虑原则: 1.基于浏览器的应用程序推荐使用HTML-basic script方式录制 2.不是基于浏览器的应用程序推荐使用URL-basic script方式录制 3.如 ...
- Spring注解依赖注入的三种方式的优缺点以及优先选择
当我们在使用依赖注入的时候,通常有三种方式: 1.通过构造器来注入: 2.通过setter方法来注入: 3.通过filed变量来注入: 那么他们有什么区别吗?应该选择哪种方式更好? 三种方式的区别小结 ...
- react创建组件的几种方式及其区别
react创建组件有如下几种方式 ①.函数式定义的无状态组件 ②.es5原生方式React.createClass定义的组件 ③.es6形式的extends React.Component定义的组 ...
- React创建组件的三种方式及其区别
内容转载于http://www.cnblogs.com/wonyun/p/5930333.html React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归; 具体的三种方式: ...
- React中创建组件的3种方式
目前作者所知道的创建react组件的方式有三种: 函数式定义(无状态组件) function MyComponent(props){ return( <h1>mycomponent< ...
- 【转载】Sqlserver数据库备份的几种方式
在实际的数据库Sqlserver的运维的过程中,很多时候我们需要做到数据的备份操作,可以做到定时备份,也可以进行手动数据库备份.在实际的过程中,有时候因业务需要备份出完整数据库,而有时候又因为实际业务 ...
- jSP的3种方式实现radio ,checkBox,select的默认选择值。
jSP的3种方式实现radio ,checkBox,select的默认选择值.以radiao 为例:第一种方式:在jsp中使用java 脚本,这个方法最直接,不过脚本太多,不容易维护<%Stri ...
- 解决 SharePoint 2010 拒绝访问爬网内容源错误的小技巧(禁用环回请求的两种方式)
这里有一条解决在SharePoint 2010搜索爬网时遇到的“拒绝访问错误”的小技巧. 首先要检查默认内容访问帐户是否具有相应的访问权限,或者添加一条相应的爬网规则.如果目标资源库是一个ShareP ...
- mysql备份的4种方式
mysql备份的4种方式 转载自:https://www.cnblogs.com/SQL888/p/5751631.html 总结: 备份方法 备份速度 恢复速度 便捷性 功能 一般用于 cp 快 快 ...
随机推荐
- VC++ 控制外部程序,向外部程序发送一个消息的方法
这里需要考虑两部分的内容: 发送端: 查找对应的窗体,找到CWnd的值 向窗体发送消息 举例: CWnd* wnd = FindWindow(NULL, _T("选择题做题过程中" ...
- Windows 窗体设计器中的设计时错误
当修改窗体里面某一项时导致窗体报错,但是编译运行没问题,报"依赖项问题"则只需要把报错的那个依赖项删除后再重新引用.
- IOC和AOP使用扩展 多种方式实现依赖注入
多种方式实现依赖注入 1.Spring 使用setter访问器实现对属性的赋值, 2.Spring 构造constructor方法赋值, 3.接口注入 4.Spring P命名空间注入直接量 sett ...
- Cable master poj1064(二分)
http://poj.org/problem?id=1064 题意:共有n段绳子,要求总共被分为k段.问在符合题意的前提下,每段长最大是多少? #include <iostream> #i ...
- javascript this
最近看了很多人的微博,主要是“追梦子”的微博,总结了一下.希望大家多多指点. 1. 没有new this的指向问题 this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁调用的就指向 ...
- document.referrer 特性
最近需要用到document.referrer,但是在测试的时候,总是获取为空,百思不得其解. 于是发动百度,看了大量的文章没有一个说到点子上是为什么,后来偶然看到document.referrer ...
- Apache-Commons包作用说明
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.项目地址http://commons.apache.org/ Commons BeanUtils 提供 ...
- Android之ImageView 旋转
方案一: (1)获取ImageView对应的图片,并将其转成Bitmap; (2)创建Matrix对象; (3)调用matrix.setRotate( );设置旋转度数 (4)重新创建bitm ...
- 记一次Web服务的性能调优
前言 一个项目在经历开发.测试.上线后,当时的用户规模还比较小,所以刚刚上线的项目一般会表现稳定.但是随着时间的推移,用户数量的增加,qps的增加等因素会造成项目慢慢表现出网页半天无响应的状况.在之前 ...
- 递推 N三角形问题
Description 用N个三角形最多可以把平面分成几个区域? Input 输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据 ...