You may have different servers (test, stage & production), a hybrid on-premises & Office 365 environment or are performing a migration between servers and come across the need to keep your term stores and managed metadata in sync in SharePoint. I thought it may help to explore your options regarding the different methods of synchronizing term stores / managed metadata between environments or servers to keep them the same or in sync.
1. Using the built-in tools, you can backup the Managed Metadata service and restore it to another farm. I have never personally attempted this, however I have backed up an entire farm and restored it this way, my assumption is this should work as well.
2. If you are only looking to copy the term store form production to training (this assumes training has a functioning Managed Metadata service), the SolidQ Managed Metadata Exporter for SharePoint 2010 works well. This tool is on Codeplex and free to download.
3. Publish the production Managed Metadata service and have the other environments connect to it. This ensures the service and term stores are always up to date in the other environments as it is consuming the service from one place. This may not be a desirable configuration for you however if you do not want your production term store changes to become active at the same time your other server term stores change.
4. Moving Term Stores between servers (i.e., Dev –> QA –> Production) via PowerShell and the Import-SPMetadataWebServicePartitionData & Export commands.
5. Moving the term store, term sets and terms with PowerShell via importing and exporting them to an .xml file (I believe these are custom made cmdlets? not sure)
6. Manually restoring an existing term store db to a new MMS service
DB backup in SQL of the Managed MetaData Service database (Open SQL Server Management Studio –> Right Click db –> Tasks –> Backup)
This can be completed with the following steps:
- 1. Backup the managed metadata database in your source farm
- 2. Delete the MMS service in your target farm
- 3. Restore the managed metadata database to your target farm
- 4. Create a new MMS service in your target farm
- 5. Ensure correct service accounts have full control of MMS
- 6. Rename the properties of the SQL database to be the name of original db (if your MMS database names are not the same on each environment)
7. SharePoint 2010 CSV Bulk Taxonomy TermSet Importer/Exporter on CodePlex with some additional notes on how to recompile it for use with SharePoint 2013 by Richard Skinner
8. ShareGate $
This is a 3rd party paid product, but the new full version (not lite) has a feature to copy Term Groups & Term Sets between servers. I have used an earlier version of ShareGate before to move content from one server to another and I actually liked it a lot but have not tried this yet. Check it our for yourself:
9. Using C# and the SharePoint.taxonomy class to program a custom solution to import and export metadata between environments (you definitely need to know how to program to do this): http://erickhaw.blogspot.com/2010/11/migrate-sharepoint-2010-managed.html – Eric Khaw
Allows you to manage the GUIDS and sync the term store as you migrate from development to QA to UAT to staging and ultimately to production. Works on premise or in the cloud.
11. Managed Metadata Term Store Sync for SharePoint (Term Sync) – $ – Premier Point Solutions Seems good for using BCS (Business Connectivity Services) to import terms from external systems *Please see note below in comments from Premier Point about their product
12. Service Aware Term Store Sync $ This description was provided from the vendor: ” ServiceAware Term Store Sync can ensure consistent SharePoint Managed Metadata taxonomies across – both classic Development, Testing, Acceptance and Production environments – and also hybrid environments with SharePoint 2013 on-premises and SharePoint Online in Office365. ServiceAware Term Store Sync also support manual migration of Term Groups and Term Sets using XML files, while still maintaining unique identifiers, labels, sort order, etc. A fully functional trial version is available for download from www.serviceaware.com/download“. I believe one option it can be used it to sync term groups with GUIDs to Office365 in a hybrid setup.
13. Core.MMSSync – a free open-source project on GitHub by Bert Jansen
14. For Office365, here is a way to use PowerShell & CSOM to import a term set/terms in an article from Brendan Griffin.
If you are having some issues with your hiddentaxonomylist not updating or the timer jobs not working, see some links for some ideas here:
Last, I believe the only OOTB method available to export the term store is to a .csv file. I see from others on the internet and my own personal experience (due to potential ASCII coding changes when you convert a .csv to a .txt) that is not a method many people are using.