本文讲述SharePoint 2013/2010 在Farm之间迁移 managed metadata service的数据。
1. 在源Farm的SharePoint Management Shell 中执行以下脚本
www.2cto.com
www.2cto.com
[plain]
$mmsApplication = Get-SPServiceApplication | {$_.TypeName -eq "Managed Metadata Service"}$mmsProxy = Get-SPServiceApplicationProxy | {$_.TypeName -eq "Managed Metadata Service Connection"}Export-SPMetadataWebServicePartitionData $mmsApplication.Id -ServiceProxy $mmsProxy -Path "C:\mmsdata.cab"
2. 将mmsdata.cab拷贝到目标Farm (WFE 或App) Server的C 盘
3.在目标Farm的Sql Server上将managed metadata service的service account 设置成Sql server对应实例的bulk admin角色,否则在第四步将遇到如下错误
Import-SPMetadataWebServicePartitionData: You do not have permission to use the bulk load statement
www.2cto.com
注意:
a. 如果是默认的情况managed metadata service的service account为Network service, 具体可以去IIS里面查看对应Application pool的account
b. 如果使用standalone的安装模式安装SharePoint, 对应
数据库的实例名为 .\SharePoint
www.2cto.com
4. 在第步相同的目标Farm (WFE 或App) Server上启动SharePoint Management Shell并执行如下脚本:
[plain]
$mmsApplication = Get-SPServiceApplication | {$_.TypeName -eq "Managed Metadata Service"}
$mmsProxy = Get-SPServiceApplicationProxy | {$_.TypeName -eq "Managed Metadata Service Connection"}
Import-SPMetadataWebServicePartitionData $mmsApplication.Id -ServiceProxy $mmsProxy -Path "C:、mmsdata.cab" -OverwriteExisting
这种方法的好处是迁移过去的term store, term set, term都会保留源Farm中的guid,如果有feature 关联到term store(如列表的某一列数据源为某个term set), 那个这个feature迁移到目标Farm时不需要变更其帮定的Guid.