首页 > 代码库 > 在使用SQL server High Availability 的SharePoint 2013 Farm环境中使用Import-SPMetadataWebServicePartitionData

在使用SQL server High Availability 的SharePoint 2013 Farm环境中使用Import-SPMetadataWebServicePartitionData

本文讲述笔者在在使用SQL server High Availability 的SharePoint 2013 Farm环境中使用Import-SPMetadataWebServicePartitionData遇到的问题,希望对大家有帮助。

笔者最近使用Export-SPMetadataWebServicePartitionData 从开发环境导出Metadata ,然后使用Import-SPMetadataWebServicePartitionData将Metadata 备份文件导入到使用SQL server High Availability 的SharePoint 2013 Farm环境的测试环境中,具体导出,导入的命令请参考 SharePoint 2013/2010 Farm间迁移 managed metadata service.


但是使用Import-SPMetadataWebServicePartitionData导入时,遇到如下错误

Import-SPMetadataWebServicePartitionData : Cannot bulk load because the file
"\\...\Script\ECMGroup.dat" could
not be opened. Operating system error code 5(Access is denied.).

+ Import-SPMetadataWebServicePartitionData $svc.Id -ServiceProxy $proxyName
-Path  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
    + CategoryInfo          : InvalidData: (Microsoft.Share...cePartitionData:
   SPCmdletImportM...cePartitionData) [Import-SPMetadataWebServicePartitionDa
  ta], FaultException`1
    + FullyQualifiedErrorId : Microsoft.SharePoint.Taxonomy.Cmdlet.SPCmdletImp
   ortMetadataWebServicePartitionData


笔者Google一圈,发现网上的解释无非以下几个:

1. 要使用网路路径 \\...\Script\ECMGroup.dat

2. 要将该共享目录放置在SQL server服务器上(在DB1上)

3. 要给SQL server service 可以读写共享目录的权限


这些笔者都照做了,还是包一样的错误。

Import-SPMetadataWebServicePartitionData的本质是使用SQL 的Bulk来批量导入数据,于是笔者使用下列语句进行测试:

use [Service_DB]
Bulk insert [dbo].[Table_1]
from "\\...\Script\ECMGroup.dat"

发现连接SQL HAG cluster的时候报错为:

Msg 4861, Level 16, State 1, Line 2
Cannot bulk load because the file "\\...\Script\ECMGroup.dat" could not be opened. Operating system error code 5(Access is denied.).

于是笔者将共享目录设置在DB2上,再运行以上命令,成功了


于是笔者也 Import-SPMetadataWebServicePartitionData的参数改道DB2上的共享目录,果然成功了。


后来进一步发现,这是因为当时DB2是整个HAG cluster的主节点。