关于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的备份的更多相关文章

  1. LR选择哪种方式录制

    LR选择哪种方式录制,有以下考虑原则: 1.基于浏览器的应用程序推荐使用HTML-basic script方式录制 2.不是基于浏览器的应用程序推荐使用URL-basic script方式录制 3.如 ...

  2. Spring注解依赖注入的三种方式的优缺点以及优先选择

    当我们在使用依赖注入的时候,通常有三种方式: 1.通过构造器来注入: 2.通过setter方法来注入: 3.通过filed变量来注入: 那么他们有什么区别吗?应该选择哪种方式更好? 三种方式的区别小结 ...

  3. react创建组件的几种方式及其区别

    react创建组件有如下几种方式 ①.函数式定义的无状态组件 ②.es5原生方式React.createClass定义的组件   ③.es6形式的extends React.Component定义的组 ...

  4. React创建组件的三种方式及其区别

    内容转载于http://www.cnblogs.com/wonyun/p/5930333.html React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归; 具体的三种方式: ...

  5. React中创建组件的3种方式

    目前作者所知道的创建react组件的方式有三种: 函数式定义(无状态组件) function MyComponent(props){ return( <h1>mycomponent< ...

  6. 【转载】Sqlserver数据库备份的几种方式

    在实际的数据库Sqlserver的运维的过程中,很多时候我们需要做到数据的备份操作,可以做到定时备份,也可以进行手动数据库备份.在实际的过程中,有时候因业务需要备份出完整数据库,而有时候又因为实际业务 ...

  7. jSP的3种方式实现radio ,checkBox,select的默认选择值。

    jSP的3种方式实现radio ,checkBox,select的默认选择值.以radiao 为例:第一种方式:在jsp中使用java 脚本,这个方法最直接,不过脚本太多,不容易维护<%Stri ...

  8. 解决 SharePoint 2010 拒绝访问爬网内容源错误的小技巧(禁用环回请求的两种方式)

    这里有一条解决在SharePoint 2010搜索爬网时遇到的“拒绝访问错误”的小技巧. 首先要检查默认内容访问帐户是否具有相应的访问权限,或者添加一条相应的爬网规则.如果目标资源库是一个ShareP ...

  9. mysql备份的4种方式

    mysql备份的4种方式 转载自:https://www.cnblogs.com/SQL888/p/5751631.html 总结: 备份方法 备份速度 恢复速度 便捷性 功能 一般用于 cp 快 快 ...

随机推荐

  1. CSS背景图拉伸自适应尺寸,全浏览器兼容

    突然有人问我这个问题,说网上CSS filter的方法在非IE浏览器下不奏效.思考之后,问题之外让我感慨万千啊,很多我们所谓的难题,都会随着时代的发展迎刃而解,或被新的问题所取代. 当CSS背景图片拉 ...

  2. DOS批量递归删除文件夹

    @echo off for /d /r E:\test01\ %%i in (test) do rd /s /q "%%i" pause

  3. Linux程序包管理初步-yum的使用

    何为yum? yum:由yellow dog研发,全称Yellowdog Update Modifier 是rhel系列系统上rpm包管理器的前端工具,可用来自动解决依赖关系,从而更好的实现程序包的安 ...

  4. Servlet调用过程整理

  5. Python:time模块&序列化&生成随机数&反射

    time模块:>>> import time >>> time.time <built-in function time> >>> t ...

  6. linux links and lynx

    接下来,说一下links 和 lynx 的一些基本操作,首先你,需要安装这俩个软件 yum install links yum install lynx links links的功能键 一些常见功能按 ...

  7. go 的 time ticker 设置定时器

    上示例 package main import ( // "bytes" // "encoding/json" "fmt" // " ...

  8. quick-cocos2d-x之testlua之VisibleRect.lua

    require "extern" --这个类找到了可视区域的9个点的坐标:左上.上的中点.右上.左的中点.左下.下的中点.右下.右的中点.一般用于使用相对坐标的场合,解决自适应屏幕 ...

  9. 20145225《Java程序设计》 第6周学习总结

    20145225<Java程序设计> 第6周学习总结 教材学习内容总结 第十章 输入/输出 10.1InputStream与OutputStream 串流:衔接数据的来源和目的地就是串流对 ...

  10. LXC docker

    docker的原理和特点可以参照百度百科 http://baike.baidu.com/view/11854949.htm 昨天听到光照说docker技术实现, 既然可以轻量虚拟,是否可以多个虚拟出分 ...