Export ed import del Manage Metadata di SharePoint
Un esempio di come esportare e reimportare il Menage metadata di SharePoint usando PowerShell
Soluzione: creare la share di rete su SQL Server. Se il database server ha più nodi, crearla su quello attivo.
Export
PowerShell
$app= Get-SPServiceApplication | ? {$_.TypeName -eq "Managed Metadata Service"}
$proxy= Get-SPServiceApplicationProxy | ? {$_.TypeName -eq "Managed Metadata Service Connection"}
Export-SPMetadataWebServicePartitionData $app.Id -ServiceProxy $proxy-Path "\\sqlServerName\temp\mms_yyyy-MM-dd.cab"
Attenzione se nella farm ci sono più Menage metadata, va modificato lo script per recuperare l'app e il proxy usando l'ID.
Import
PowerShell
$app= Get-SPServiceApplication | ? {$_.TypeName -eq "Managed Metadata Service"}
$proxy= Get-SPServiceApplicationProxy | ? {$_.TypeName -eq "Managed Metadata Service Connection"}
Import-SPMetadataWebServicePartitionData $app.Id -ServiceProxy $proxy-Path "\\sqlServerName\temp\mms_yyyy-MM-dd.cab" –OverwriteExisting
Errori comuni
Import-SPMetadataWebServicePartitionData : You do not have permission to use the bulk load statement.
At line:1 char:1
+ Import-SPMetadataWebServicePartitionData $mmsApplication.Id -ServiceP ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (Microsoft.Share...cePartitionData:SPCmdletImportM...cePartitionData) [Impo
rt-SPMetadataWebServicePartitionData], FaultException`1
+ FullyQualifiedErrorId : Microsoft.SharePoint.Taxonomy.Cmdlet.SPCmdletImportMetadataWebServicePartitionData
Soluzione: Aggiungere la permission SQL Server bulkadmin all'utente dell'application pool con cui gira la service application del Menage Metadata. Dopo l'import si può rimuovere la permission.At line:1 char:1
+ Import-SPMetadataWebServicePartitionData $mmsApplication.Id -ServiceP ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (Microsoft.Share...cePartitionData:SPCmdletImportM...cePartitionData) [Impo
rt-SPMetadataWebServicePartitionData], FaultException`1
+ FullyQualifiedErrorId : Microsoft.SharePoint.Taxonomy.Cmdlet.SPCmdletImportMetadataWebServicePartitionData
Import-SPMetadataWebServicePartitionData : Cannot bulk load because the file
"\\serverName\temp\ac3d31550edf42a9b89c50ae04dfeed2\ECMServiceSettings.dat" could not be opened. Operating system
error code 5(Access is denied.).
At line:1 char:1
+ Import-SPMetadataWebServicePartitionData $mmsApplication.Id -ServiceP ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (Microsoft.Share...cePartitionData:SPCmdletImportM...cePartitionData) [Impo
rt-SPMetadataWebServicePartitionData], FaultException`1
+ FullyQualifiedErrorId : Microsoft.SharePoint.Taxonomy.Cmdlet.SPCmdletImportMetadataWebServicePartitionData
Questo capita perché anche SQL Server deve poter accedere alla share di rete."\\serverName\temp\ac3d31550edf42a9b89c50ae04dfeed2\ECMServiceSettings.dat" could not be opened. Operating system
error code 5(Access is denied.).
At line:1 char:1
+ Import-SPMetadataWebServicePartitionData $mmsApplication.Id -ServiceP ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (Microsoft.Share...cePartitionData:SPCmdletImportM...cePartitionData) [Impo
rt-SPMetadataWebServicePartitionData], FaultException`1
+ FullyQualifiedErrorId : Microsoft.SharePoint.Taxonomy.Cmdlet.SPCmdletImportMetadataWebServicePartitionData
Soluzione: creare la share di rete su SQL Server. Se il database server ha più nodi, crearla su quello attivo.