选择哪种方式进行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 快 快 ...
随机推荐
- LINUX内核分析第七周学习总结:可执行程序的装载
LINUX内核分析第七周学习总结:可执行程序的装载 韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/cours ...
- iframe自动适应高度1
js: function iFrameHeight() { var ifm= document.getElementById("iframepage"); var subWeb = ...
- C盘实际占用容量比显示的要少
1.问题 服务器是Window Server 2008 R2,就几天时间,60G的C盘容量一下子满了,选中所有的文件,占用才20多G. 2.原因 1).有的文件没有系统管理员权限,大小不会显示出来. ...
- Linux系统编程-防止僵尸进程产生的常用方法
1.父进程调用wait函数或waitpid函数回收子进程. 2.让init进程去处理子进程回收工作,代码中加上"signal(SIGCHLD, SIG_IGN)"这句话.
- Servlet调用过程整理
- redis学习(二) Redis Hash
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿). redis ...
- JSON的故事
1.介绍JSON http://www.json.org/ https://developer.mozilla.org/zh-CN/docs/JSON 2.json的序列化和反序列化 序列化方法 va ...
- RRDTool 三个命令的使用
要了解rrdtool如何使用就要先从rrd的数据存储方式开始,rrdtool就是为了操作这个数据库的工具,抄来下面一段文字解释. 0x01 什么是rrd数据库 所谓的“Round Robin” 其实是 ...
- vim不用鼠标复制粘贴
第一种方法(只能复制行): 在当前行3yy(表示复制3行,多行同理),然后鼠标移到需要粘贴的位置,按p,即可粘贴 第二种方法(无限制): 按v进入visual模式,移动光标(推荐使用hjkl,用熟后比 ...
- 使用PreTranslateMessage替代钩子函数处理键盘消息
2002年左右,我所在公司在开发基于H.323的VoIP电话系统(用了以色列一家公司的库,具体名字忘记了). 去电信科技研究院测试系统,同事发现处理键盘消息总有一些莫名其妙的问题,比如延迟或异常. 我 ...