SharePoint数据迁移解决方案详解

说来惭愧,我们的SharePoint内网门户跑了2年,不堪重负,数据量也不是很大,库有60GB左右,数据量几万条,总之由于各种原因吧,网站速度非常慢,具体问题研究了很久,也无从解决,所有考虑用Net重新搭网站,进行数据迁移,也就带来了数据迁移这个问题。

思路:由于SharePoint的架构和Net有着不一样的特点,而且SharePoint的数据库设计是不为人所知的(当然我们可以了解一些,但不完全),虽然也是基于Net架构的,但是我们很难做到Sql To Sql的方式。所以,只能考虑服务器端对象模型,插入到数据库中的方式,其间,经理给的建议非常合理,就是将SharePoint的数据整理好插入中间库,然后统一插入到新网站数据库中。在后来的实践中,发现这一方法对数据迁移和检查,都有着非常好的帮助,避免了很多SharePoint对象模型中出错,但是不好更正的现象。

中间库设计:

考虑到原内网门户有列表、文档库、图片库三种主要类型(特殊列表特殊对待),所以创建了两个数据库表,分别用来存List和DocLib,同时再创建两个表Image和Attachment用来存列表正文中的图片和列表附件(文档库文档当做列表附件)。

一、用来存储列表内容的表 --  TABLE [dbo].[List]

[ID] [int] IDENTITY(1,1) NOT NULL,--主键ID
[WebID] [nvarchar](max) NULL,--所在网站的Guid
[ListID] [nvarchar](max) NULL,--所在列表的Guid
[ListName] [nvarchar](max) NULL,--列表名称
[ContentType] [nvarchar](max) NULL,--所属内容类型
[ItemID] [nvarchar](max) NULL,-- 列表里面的ID
[ApprovalState] [int] NULL,--审批状态
[Title] [nvarchar](max) NULL,--标题
[SubTitle] [nchar](10) NULL,--副标题
[ItemContent] [nvarchar](max) NULL,--内容
[Creator] [nvarchar](max) NULL,--创建者LoginName
[CreatorID] [nvarchar](max) NULL,--创建者UserID
[DispCreator] [nvarchar](max) NULL,--创建者UserName
[Modifier] [nvarchar](max) NULL,--修改者LoginName
[ModifierID] [nvarchar](max) NULL,--修改者UserID
[DispModifier] [nvarchar](max) NULL,--修改者UserName
[CreatTime] [datetime] NULL,--创建时间
[ModifyTime] [datetime] NULL,--修改时间
[TransferDate] [datetime] NULL,--数据迁移时间

 二、用来存储文档库/图片库的表 -- TABLE [dbo].[DocLib]

[ID] [int] IDENTITY(1,1) NOT NULL,--主键ID
[WebID] [nvarchar](max) NULL,--所在网站的Guid
[ListID] [nvarchar](max) NULL,--所在列表的Guid
[ListName] [nvarchar](max) NULL,--列表名称
[ListType] [nvarchar](max) NULL,--列表类型(文档库/图片库)
[ItemID] [nvarchar](max) NULL,-- 列表里面的ID
[ApprovalState] [int] NULL,--审批状态
[Title] [nvarchar](max) NULL,--标题
[Creator] [nvarchar](max) NULL,--创建者LoginName
[CreatorID] [nvarchar](max) NULL,--创建者UserID
[DispCreator] [nvarchar](max) NULL,--创建者UserName
[Modifier] [nvarchar](max) NULL,--修改者LoginName
[ModifierID] [nvarchar](max) NULL,--修改者UserID
[DispModifier] [nvarchar](max) NULL,--修改者UserName
[CreatTime] [datetime] NULL,--创建时间
[ModifyTime] [datetime] NULL,--修改时间
[Url] [nvarchar](max) NULL,--文档的Url
[TransferDate] [datetime] NULL,--数据迁移时间

三、用来存储正文图片的表 -- TABLE [dbo].[Image]

[ID] [int] IDENTITY(1,1) NOT NULL,--主键ID
[WebID] [nvarchar](max) NULL,--所在Web的Guid
[WebSubUrl] [nvarchar](max) NULL,--所在Web的相对WebUrl
[ListID] [nvarchar](max) NULL,--所在列表的Guid
[ListName] [nvarchar](max) NULL,--列表名称
[ItemID] [nvarchar](max) NULL,-- 列表里面的ID
[ImageUrl] [nvarchar](max) NULL,--内容图片的Url,多张图片,逗号分隔

四、用来存储附件集的表 -- TABLE [dbo].[Attachment]

[ID] [int] IDENTITY(1,1) NOT NULL,--主键ID
[WebID] [nvarchar](max) NULL,--所在Web的Guid
[WebSubUrl] [nvarchar](max) NULL,--所在Web的相对WebUrl
[ListID] [nvarchar](max) NULL,--所在列表的Guid
[ListName] [nvarchar](max) NULL--列表名称
[ItemID] [nvarchar](max) NULL,-- 列表里面的ID
[AttachUrl] [nvarchar](max) NULL,--附件的Url,多个的时候,逗号分隔

代码方法段:

首先就是对象模型读取列表插入List表,然后是对象模型读取文档库/图片库插入DocLib表,读取字段的代码比较简单,我们就不过多介绍,就介绍下其间遇到的几个问题,也避免代码太多太繁杂。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索max7456
, null
, sharepoint
, max
, max()
, 数据迁移
, max(id)
, nvarchar
, Identity实例详解
, NULL数据处理
创建者
sharepoint解决方案、数据迁移解决方案、无法迁移解决方案文件、历史数据迁移解决方案、云迁移解决方案,以便于您获取更多的相关知识。

时间: 2024-08-02 20:01:28

SharePoint数据迁移解决方案详解的相关文章

SharePoint 数据迁移解决方案

前言:说来惭愧,我们的SharePoint内网门户跑了2年,不堪重负,数据量也不是很大,库有60GB左右,数据量几万条,总之由于各种原因吧,网站速度非常慢,具体问题研究了很久,也无从解决,所有考虑用Net重新搭网站,进行数据迁移,也就带来了数据迁移这个问题. 思路:由于SharePoint的架构和Net有着不一样的特点,而且SharePoint的数据库设计是不为人所知的(当然我们可以了解一些,但不完全),虽然也是基于Net架构的,但是我们很难做到Sql To Sql的方式.所以,只能考虑服务器端

iOS开发:加载、滑动翻阅大量图片解决方案详解

今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏浏览界面的这短暂的1秒内(和后续的几秒),都发生了什么. 开发:加载.滑动翻阅大量图片解决方案详解-"> 常规思路流程 点击任意小图后, 1.首先制作scrollview框架:大小2个scrollview,小的用于手势缩放单一图片,大的横向依次加载全部照片 2.制作好scrollview框架后,加载照片 3.一切准备就绪跳转页面

Bootstrap弹出框(modal)垂直居中的问题及解决方案详解_javascript技巧

使用过bootstrap modal(模态框)组件的人都有一种困惑, 好好的一个弹出框怎么就无法垂直居中了呢?刚巧在做一个eit项目,由于此项目里面一些框架要遵循nttdata的一些规则,故用到了Bootstrap这个东东,第一次碰到这个东东,有很大抵触,觉得不好,但用起来我觉得和别的弹出框真没什么两样.废话少说,切入正题,Bootstrap弹出框垂直居中的问题,因为我拿到的弹出框样式并非垂直居中,而是top 10%,但页面长了,就显得特别恶心. 解决方案如下所示: 1.在css里,找到 .mo

PHP中filter函数校验数据的方法详解_php技巧

介绍PHP中filter函数校验数据的方法详解,PHP过滤器包含两种类型:Validation用来验证验证项是否合法.Sanitization用来格式化被验证的项目,因此它可能会修改验证项的值,将不合法的字符删除. input_filters_list() 用来列出当前系统所支持的所有过滤器. 复制代码 代码如下: <?php foreach(filter_list() as $id => $filter) {     echo $filter.' '.filter_id($filter).&

vuejs动态组件给子组件传递数据的方法详解_javascript技巧

通过子组件定义时候的props可以支持父组件给子组件传递数据,这些定义的props在子组件的标签中使用绑定属性即可,但是如果使用的是<component>动态组件,这个时候就没有显式的子组件标签,要给子组件传递数据需要在<component> 中进行绑定 <div class="app" id="deviceready"> <component :is="currentView" :user_name.s

Vuejs第九篇之组件作用域及props数据传递实例详解_javascript技巧

本篇资料来于官方文档: http://cn.vuejs.org/guide/components.html 本教程是小编结合官方文档整理的一套更加细致,代码更多更全的教程,特别适合新手阅读. props数据传递 ①组件实例的作用域: 是孤立的,简单的来说,组件和组件之间,即使有同名属性,值也不共享. <div id="app"> <add></add> <del></del> </div> <script&g

Android通过json向MySQL中读写数据的方法详解【读取篇】_Android

本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private void parseJsonMulti(String strResult) { try { Log.v("strResult11","strResult11="+strResult); int index=strResult.indexOf("[");

一个完美数据迁移解决方案诞生记

随着数据正在逐渐成为企业的核心资产,数据的存储.迁移成为企业时刻关注的问题.据Gartner统计数据表明,95%的受访企业都 认为数据迁移是个"硬骨头",让人头痛却又不得不面对.根据华为对业界的用户数据迁移行为的深入分析也发现,有接近38%的数据迁移需求源自于用户对IT系统服务器或是存储阵列的设备更新升级;超过11%的数据迁移需求源自于用户不得不对 长时间超负荷运营的IT设备进行维护操作;与此相当的是,也有超过11%的用户为了应对业务激增所面临的压力,必须对IT系统进行性能调优,从而导

科讯数码数据迁移解决方案

近几年来,企业http://www.aliyun.com/zixun/aggregation/14054.html">信息技术更新速度加快,应用系统经常需要更换平台以提供更好的性能并满足业务系统的需要,数据集中化成为一种趋势,因而数据迁移的需求大增.由于企业应用系统复杂,数据迁移经常需要设计到主机.存储.网络.数据库.中间件.应用系统等环节,技术要求较高.采用传统方法进行数据迁移,因为涉及环节多,很容易造成数据丢失或者业务系统中断时间过长. 科讯数码数据迁移解决方案采用虚拟存储技术,在存储