本文讲述笔者在在使用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的主节点。
在使用SQL server High Availability 的SharePoint 2013 Farm环境中使用Import-SPMetadataWebServicePartitionData