How to change Data Tier(Sql Instance) in TFS - tfs

I have just installed TFS Server 2010 but during installation I selected SqlExpress as my data tier. Both my TFS application server and database exists on the same box. I also have full enterprise Sql Server edition on the samebox and now want to use the same rather than SqlExpress.
In TFS administration console, I found no way to change my data tier. I haven't created any project as such on TFS so there is no data to migrate. I just want to use my default instance now.
How to go about this ?

FROM https://msdn.microsoft.com/en-us/library/ms404869(v=vs.120).aspx
In order to restore the TFS databases using the restore tool, you must install but not configure TFS on the new data-tier server, and then use the restore function in the Scheduled Backups node.
Install TFS and cancel the setup TFS setup window once it opens. Or in my case I used the Uninstall Application tier option in the TFS Admin Tool. I didn't know you could cancel the application tier install. The wizard kind of forces you into it. Then I had to rename\delete the configuration db and any others that were created in the install.

I had to do this today for a TFS 2018 and found the below article useful. May not fit everyone's scenario but sharing since this SO link came on top of search results.
Run
TfsRestore.exe
in the C:\Program Files\Microsoft Team Foundation Server 14.0\Tools
folder. It has a GUI.
https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2012/jj620932(v=vs.110)

At this early point, you might as well just uninstall and reinstall. That's probably the easiest method.

Related

TFS doesn't recognize imported DB

My company is using a TFS 2013 (Update 4 = 12.0.31101.0) server for development. I was tasked with migrating the TFS server to VSTS but realized I had to update to TFS2018 to be able to use the current migration tool.
My boss obviously didn't like the idea of performing "open heart surgery" on our productive environment so we created a back-up of the SQL Collection-Database (by creating a dump using Management Studio) installed a Trial Version of TFS/SQL Server in a VM (VirtualBox) and tried importing the back-up.
Using the built-in import tool (TFS\Tools\TfsRestore.exe) I imported the old DB into the SQL Server, which actually worked really well, looking at the DB in ManagementStudio everything that needs to be there seems to be there.
However, trying to attach the Team Project Collection in the Team Foundation Server Administration Console I simply can't find it. I List Available Databases and the only one it finds is the DefaultCollection that was created during installation of the server.
I made sure that the versions are the exact same version, only difference is the License which is a real License on our production environment and a Dev License on the VM.
Anyone got an idea why this is happening? Maybe some way to get a more detailed Exception?
Edit: Trying to use the TfsConfig registerDB command throws an expection:
TFS30040: The database is not correctly configured. Contact your Team Foundation Server administrator
First, please make sure you are a member of the Team Foundation Administrators security group and a member of the sysadmin security group for any SQL Server databases that the new Team Foundation Server uses.
Usually this kind of issue should be solved after giving proper database permissions to the user.
Besides, after the configuration you can try RemapDBs to redirect TFS to its databases.
Back to the error: TF30040: The database is not correctly configured. Contact your Team Foundation Server. Here is a similar thread for your reference: TF30040: The database is not correctly configured
Moreover, you could also check the event view on your VM, if there are some more detail error message for troubleshooting.
Did you detach the collection in the TFS admin console before taking the backup on your 2013 server?
When you detach the collection is moves all of the relevant data from the TFS configuration database in to the collection database. You can then take a backup of the collection database and restore it to the new SQL server instance.
Note that detaching the collection will take it offline until the backup is complete and you re-attach the collection.
Then the new version of TFS should be able to see the collection and attach it. This will copy the configuration data to the new configuration database and you'll be able to bring the collection online.
So steps are
Detach collection in TFS 2013
Take backup of the TFS 2013 collection DB
Re-attach the TFS 2013 collection so that users can continue to use the collection whilst you test your upgrade
Copy the backup to the 2018 server
Restore the backup
In the TFS 2018 Admin console attach the collection
Once you're happy that the upgrade will go smoothly repeat the process but skip step 3.
Managed to do it by following this guide : https://cromwellhaus.com/2013/08/restoring-tfs-2012-to-sandbox/
Short Version: I was missing the config database, it was quite easy once I was using the old config.

The difference of uninstall the complete application and unconfigure TFS

We had moved everything from TFS sever to VSTS include database, logs. Not sure if we will use it again in the feature.
For now, we have two choices: uninstall the complete application/delete database entirely and simply unconfigure TFS
What are the differences between them? I want to choose the appropriate one.
To "Unconfigure TFS", please go to the Team Foundation Administration Console on the Application Tier machine. Click on the server name and click on "Remove Feature"
By Removing the feature, we will be removing
The Application Tier configuration from the server (but we don't
remove the binaries)
Connection with Data tier (but the databases won’t be deleted)
TFS Website.
TFS Application Pools
TFS Services (The Visual Studio Team Foundation Server Job Agent)
You can do the same from command prompt, execute TfsConfig setup /uninstall:ApplicationTier command to unconfigure TFS Application Tier. (You can also use various switches to remove other features SharePointExtensions, TeamBuild and VersionControlP
roxy) from server machine.
Usually we'd like to refresh the TFS Application Tier setup to defaults in case there's an unintended change in services/IIS settings and we want to set it back to defaults. We give an option to Remove Application Tier/Features without having to uninstall the complete application.
Another usage is when you are using pre-upgrade for test, you could quickly remove Application Tier. Since everything have been migrated, if you don't need the TFS server any more, just simply uninstall the complete application and database.You could back up your database, once you want to use again. Just install a new application and restore your database.

Complicated TFS 2017 Upgrade

I wish to upgrade my current TFS 2015.3 instance to 2017. It's not going to be quite as easy as advertised, however, due to some complicating factors. My scenario appears to be undocumented.
I'll be installing a new domain controller (moving from Server Essentials 2012 R2 to Server Essentials 2016).
The current OS is Server 2012 R2; I will be upgrading this as well, to Server 2016 (a clean install to a new VM).
Both of these new VMs must retain the same NETBIOS names as before.
The current SQL Server instance is 2014; I will be upgrading this as well, to SQL Server 2016.
The SQL Server instance for the current TFS instance is on a separate VM. I would like to consolidate this and put everything on a single VM. (I'm a solo developer putting a very light load on my server and I want to shed the extra complexity and overhead.)
Is it merely a matter of installing TFS 2017 and restoring from a 2015.3-generated backup? Will 2017 automatically apply any schema changes etc. during the restore process? Could it be that simple?
The closest question I could find to this is here, but unfortunately it doesn't quite address my situation.
Instead of doing a detach/attach upgrade there is another option available to you. detach/attach upgrades have had issues in the past and though most of these issues have been fixed, it's considered a suboptimal solution.
Instead, perform an Upgrade Installation.
Take a full backup of all your TFS 2015u3 databases and restore them to the new SQL server instance. You can create the full backup using the Team Foundation Server Admin Console, or use SQL Server Management Studio after stopping all TFS services on each Application Tier (in your case there is probably only one) using
TFSServiceControl quiesce
Now install TFS 2017 and perform the "upgrade" installation and point it to your existing databases. It will ask you if you want to upgrade them and whether you have a valid backup.
And after some time (upgrades can take a while, as data is moved around the databases), your TFS server will come back online. The installation wizard usually does all the mapping work required.
There is one big caveat, and that has to do with domain changes. If you are
installing in the same Windows Active Directory domain, you're good. But if your server is running in Workgroup mode you may want to remap all the identities in your TFS database prior to running the upgrade step. So install TFS, but do not configure yet. Run the following command
TFSConfig Identities /change /fromdomain:Domain1 /todomain:Domain2
Then use the upgrade option to have TFS use your database backups. The full explanation on doing a cross domain server migration is documented on MSDN. Be sure to safeguard your pre-upgrade backup until you've verified a successful upgrade.
We face almost the same thing, as our server was created for TFS 2013 and therefore has SQL 2012 installed.
Yes, it actually is as easy as your question states. When you attach the collection that you restored form the backup all the schema changes will be applied. Before then you configure the app tier of TFS and skip
An important thing though is to detach the collection before doing the backup. This copies various configuration into the collection database so that it is self-contained and can be moved to another server. You then only move the collection database to the new server.
Here is how in list form:
Detach collection using TFS Admin Console
Backup collection database using SSMS, e.g. Tfs_YourCollection
Restore collection database on new server using SSMS
Install TFS
Configure app tier, skip creation of new DefaultCollection
Attach collection in the TFS Admin Console, might take some time depending on your collection size.
You can do 4+5 before 3.
Note: Changing domain can add complexity. SharePoint and Reporting sites are not migrated!

Issues with TFS Aggregator implementation

We used TFS Aggregator to automatic update the User Story's state according to its sons state changes and also to automatic Update User Story's state of other project (if they are related).
Also important to mention that we hire an external freelance to help us doing it. When we tested it on his environment - it worked well. But when deploy it in
our environment - there's no change, the new functionality doesn't work.
what you recommend us to check ?
what can be the reasons for this integration problem?
What actions should we take?
Your advises are more than welcome!
First, try to follow the steps of installation on this website to install the plugin: https://github.com/tfsaggregator/tfsaggregator/wiki/Install
If it still doesn't work. Here is the troubleshooting page you can refer to: TFS Aggregator Troubleshooting:
You are using the right version of this server side plugin for the
right server. You can get multiple releases of this plugin at website
https://github.com/tfsaggregator/tfsaggregator
You have updated a work item that triggers a rule. (The TFS
Aggregation only works once a work item that has aggregation rules on
it is updated. This may change in a future version.)
If the rule navigates between work items, work items have a proper
Link (e.g. Parent-Child).
You copied the DLLs and the Policies file to the plugins location on
all TFS Application Tier Servers (Usually at: :\Program
Files\Microsoft Team Foundation Server {version}\Application Tier\Web
Services\bin\Plugins)
You have valid names for source and destination fields in
TFSAggregator2.ServerPlugin.policies.
When you saved the file you saved it as UTF-8 encoding (in Notepad++
it is called “utf-8 without BOM”).
You have given permission to the user running the plugin, e.g. add
the "TFS Service Account" to the Project Collection Administrators
TFS Group.
You may have to do this from the commandline using tfssecurity
/collection:http://server:8080/tfs/DefaultCollection /g+ "Project
Collection administrators" "LOCAL SERVICE" if your service account is
either LocalService, NetworkService or any other Windows Well-known
identity, since they are no longer shown in the permission UI.
When using the Impersonation option, make sure the user executing the
plugin (generally the TFS Service account) has the "Make requests on
behalf of others" permission at the server level
If you upgraded your TFS from 2013.x to 2015.* and from 2015rtm to
2015.1 and did not uninstall the TFS Aggregator before doing this TFS upgrade the aggregator does not work. Remove the TFS Aggregator from
the TFS 2013 Program Files folder or run the uninstall of the TFS
Aggegrator (backup your policies!). Then re-install the TFS
Aggegrator setup or install manually for TFS 2015 as described here.
Every TFS version has its "own" assembly for the aggregator so it is
important to use the right version against the right TFS.

What's a Backup and Recovery Process for Team Foundation Server 2010?

We have a new installation of TFS 2010 (on SQL Server 2008), and I'm planning the backup and recovery process.
It seems the configuration information and data is stored in the Tfs_Configuration and Tfs_DefaultCollection databases (and additional Tfs_[CollectionName] dbs if you have more than one collection). In a test setup, I tried backing up the two dbs, uninstalling TFS, then reinstalling (thinking I could then hook the databases up at some point in the install process). This is where I'm confused. I don't see an option or clear guidance on how this is suppose to work.
If you have backed up your TFS 2010 databases and lose your TFS server, you can restore it by restoring all of your TFS databases, reinstalling TFS, and selecting the Application Tier option of the installation wizard. Once you point the wizard at your database, it will recognize the Tfs_Configuration database from the previous installation and restore your previous configuration as well as your collections.
Download the TFS Power tools and use the backup tool (it's even got a nice GUI)!
There seems to be a MSDN section on this topic: http://msdn.microsoft.com/en-us/library/bb552295.aspx

Resources