You have to make sure you are not corrupting your current TFS instance that is up and running, while you are cloning a TFS instance. For this you need to prepare the restored databases of the TFS, in new hardware, before configuring the cloned Application Tier of TFS. In the “Cloning Your TFS Server Part 01 – Backing Up and Restoring Databases” how to back up and restore TFS database was discussed in detail. Let’s look at each of the preparation steps required in order to guarantee both current TS instance and cloned instance can coexist in the same network.
If you have SharePoint with your TFS then execute below commands, to redirect SharePoint products to new content databases restored. You have to do this in the SharePoint foundation machine you have setup in new hardware. Change directory to Drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\bin and the execute the commands.
stsadm.exe –o addcontentdb –url http://SharePointFoundationServerName/sites -databasename WSS_Content -databaseserver SQLServerName
stsadm.exe -o addpermissionpolicy -url http://SharePointFoundationServerName -userlogin Domain\UserName -permissionlevel "full control"
This step is mandatory to prevent risk of corruption of your current TFS instance and Cloned instance if both are live together. Corruption could happen if they are pointing to same SharePoint or Report Server. Open a command prompt as an administrator and change the directory to Team Foundation server tools folder. in the new Application Tier (AT). It can be Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Tools if the TFS instance is TFS 2013. For TFS 2015 it is Drive:\%programfiles%\Microsoft Team Foundation Server 14.0\Tools.
Execute the command below to prepare for TFS clone. This will remove information about scheduled backups, SharePoint, and reporting resources from a Team Foundation Server (TFS) deployment. You must run this command before configuring AT of your cloned TFS. For more information visit here.
TFSConfig PrepareClone /SQLInstance:ServerName /DatabaseName:TFSConfigurationDatabaseName /notificationURL:ApplicationTierURL
When above command executed you might run into error below if you have not restored the TFS_Analysis database.
TF246083: The configuration of Team Foundation Server is not valid. You must remap the databases in order to fix the configuration. The following error was received from the server: TF400673: Unable to find any compatible SQL Analysis Services database within the specified instance.'2' hosts have been given updated connection strings.
If you have configure Lab management for current TFS instance you will see a warning as shown above. As instructed execute TfsConfig.exe lab /delete /collectionName:collectionName to clear all lab assets from the clone, once the configuration of Application Tier of the cloned TFS instance is completed. This further will be discussed in the next article.
After prepare clone execute the ChangeServerID command to change the server GUIDs associated with the TFS databases.
TFSConfig ChangeServerID /SQLInstance:ServerName /DatabaseName:ConfigurationDatabaseName
Once the command executed it will prompt you to confirm Application Tier is not configured as this command should only be executed in a scenario where Application Tier of TFS is not configured and databases just restored.
Next execute RemapDBs command to redirect TFS to its databases in new hardware. This is not mandatory as you can see previous command already remapped the databases as shown in above screenshot. But you can execute the command to make sure it is properly mapped.
TFSConfig RemapDBs /DatabaseName:ServerName;ConfigurationDatabaseName /SQLInstances:ServerName1,ServerName2 [/AnalysisInstance:ServerName] [/AnalysisDatabaseName:DatabaseName] [/preview] [/continue] [/usesqlalwayson]
You should get the message that the current configuration is valid as shown above.
With the above steps the TFS databases in new hardware is prepared and ready for configuring as a cloned instance of current TFS. These two instances can coexist in the same network after the clone is configured. In the next article we will have a look at how to configure the cloned instance.