代码改变世界

SharePoint 2019 拆分网站集体内的子站点到不同的内容数据库

  四毛的家  阅读(177)  评论(0编辑  收藏  举报

SharePoint 是一个网站集体对应一个内容数据库;一个内容数据库可以存放多个网站集体。

我遇到的是一个网站集,下面多个子站点,每个子站点对应一个部门。结果就是这些部门的数据其实放在一个内容数据库里。导致内容数据库越来越大,已经超过1T了。

越来越大的内容数据库,导致访问速度极慢。为了彻底解决这个问题,只能拆分子站点到其他网站集,也就是到另外一个内容数据库。

要求就是:数据不能丢失,权限要保持不变。

我的方案是:PowerShell + 第三方工具ShareGate

步骤如下:

【1】首先新建内容数据库,然后新建网站集,确保新的网站集在新的内容数据库里。

使用命令创建内容数据库:New-SPContentDatabase -Name "WSS_Content_xxxx" -DatabaseServer "SP-DATA" -WebApplication 'http://sp2019-web'

使用命令迁移网站集到指定内容数据库:Move-SPSite 'http://sp2019-web/xxx' -DestinationDatabase 'WSS_Content_xxxx'

【2】使用ShareGate迁移

此工具收费,但有15天试用期。但在试用期内迁移文档库会随机跳过项,目的还是为了逼迫你购买。

我使用此工具主要是为了迁移权限,用户组,权限级别。所以无妨。

至于使用方法,可以自行研究。

【3】导出子站点文档库,然后再新的网站集内的子站点导入。

导出:

Export-SPWeb -identity http://sp2019-web/网站集/子站点 -ItemUrl /网站集/子站点/文档库路径 -Path C:\data\xxxxx.cmp -IncludeVersions All -IncludeUserSecurity -NoFileCompression 

导入:

Import-SPWeb http://sp2019-web/新网站集/新子站点 -Path C:\data\xxxxx.cmp -IncludeUserSecurity -Force -NoFileCompression -UpdateVersions Overwrite

原计划是直接导出子站点,但是在我导入的过程中总是报:System Roles Canot be update。这大概是我修改过系统自带权限等级的原因,经过验证始终无法解决。所以被迫使用了ShareGate来解决权限的问题。

【4】关点旧的子站点权限。

注意迁移后链接肯定变化了,所以原来分享出去的链接肯定不能用了。

相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
点击右上角即可分享
微信分享提示