{"id":10962,"date":"2010-08-18T14:26:44","date_gmt":"2010-08-18T14:26:44","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/bharry\/2010\/08\/18\/backing-up-and-restoring-your-tfs-server\/"},"modified":"2024-06-26T10:48:15","modified_gmt":"2024-06-26T17:48:15","slug":"backing-up-and-restoring-your-tfs-server","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/bharry\/backing-up-and-restoring-your-tfs-server\/","title":{"rendered":"Backing up and Restoring your TFS Server"},"content":{"rendered":"<p>Backing up and restoring a TFS server can be daunting.\u00a0 There are potentially a lot of services and a lot of steps.\u00a0 As soon as we shipped TFS 2010, I knew we had to do something to improve it and we began talking about how we were going to simplify the process.\u00a0 For a thorough understanding of what is involved, see: <a title=\"http:\/\/msdn.microsoft.com\/en-us\/library\/bb552295.aspx\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/bb552295.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/bb552295.aspx<\/a>.\u00a0 The primary customer I have been concerned about is the small team who doesn\u2019t have a data center operations team and SQL DBAs who know the ins and outs of SQL backup.<\/p>\n<p>A few months ago, we hatched a plan to build a new Power Tool that would greatly simplify backing up and restoring a TFS server.\u00a0 I\u2019m proud to announce that we are almost done with the Power Tool and it will be included in our next Power Tools release (no date at this time but within the next couple of months).<\/p>\n<p>Among the more frustrating things about our currently published backup instructions is that every time you add a new project collection to your server, you are supposed to go and install some new stored procedure goo in the new database to ensure it is gets a consistent snapshot with all of the other databases.\u00a0 I just <em>know<\/em> most people are going to forget to do that.\u00a0 While, it\u2019s by no means the end of the world, it\u2019s not going to give you the most seamless restore experience if you forget.\u00a0 One of the coolest features of this new tool is that it automatically scans all of your project collections every time you take a back up and ensures that all of the right snapshot goo is installed so there is nothing additional backup related work you have to do when you create a new collection.\u00a0 The new collection is automatically configured and added to your existing backup plan.<\/p>\n<p>The more complicated your deployment, the more complicated it\u2019s going to be.\u00a0 For the purpose of this discussion I\u2019m going to focus on TFS Basic users because the simplification there is the greatest but this Power Tool can help simplify the process for many users.<\/p>\n<p>When we set out to build this Power Tool, we decided to exercise an unpublished feature of our new 2010 admin console: Extensibility.\u00a0 We designed the admin console to support a pluggable architecture but we haven\u2019t documented the interfaces yet because we really haven\u2019t done enough testing of them.\u00a0 This is kind of the first real test and I hope that in the future, we will be able to open up the interfaces for 3rd party plugins as well.<\/p>\n<p>Let me walk you through the new backup experience while telling you a bit about what it does.<\/p>\n<h3>Configuring a Backup Plan<\/h3>\n<p>After installing the next Power Tools release on your TFS 2010 server (yes, this only works for TFS 2010), you will notice that there is a new tab in the admin console called \u201cTeam Foundation Backups\u201d.\u00a0 When you click on it you will see a screen like this that allows you to begin the configuration of your TFS backup plan.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/6866.Backup1_thumb_7EA4FDD6.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16341\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/6866.Backup1_thumb_7EA4FDD6.png\" alt=\"Image 6866 Backup1 thumb 7EA4FDD6\" width=\"604\" height=\"356\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/6866.Backup1_thumb_7EA4FDD6.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/6866.Backup1_thumb_7EA4FDD6-300x177.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>If you click \u201cCreate Backup Plan\u201d, it will launch a wizard to guide you through the process.\u00a0 Here\u2019s what the wizard welcome page looks like:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/7140.Backup2_thumb_0B9EDDE8.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16342\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/7140.Backup2_thumb_0B9EDDE8.png\" alt=\"Image 7140 Backup2 thumb 0B9EDDE8\" width=\"604\" height=\"454\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/7140.Backup2_thumb_0B9EDDE8.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/7140.Backup2_thumb_0B9EDDE8-300x225.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Clicking Next gives you the first page where you enter the location for backups and the # of days you want to keep backups around for (it will automatically delete backups older than this).\u00a0 Of course you can delete backups yourself if you want to too \u2013 they are just files in the specified directory.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5824.Backup3_thumb_3FA3576E.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16343\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5824.Backup3_thumb_3FA3576E.png\" alt=\"Image 5824 Backup3 thumb 3FA3576E\" width=\"604\" height=\"455\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5824.Backup3_thumb_3FA3576E.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5824.Backup3_thumb_3FA3576E-300x226.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Click Next again and you can provide the account that will run automated backups and see what SQL permission that account will need.\u00a0 As you\u2019ll see later backups don\u2019t have to be automated but they can be.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/7484.Backup4_thumb_29F8F904.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16345\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/7484.Backup4_thumb_29F8F904.png\" alt=\"Image 7484 Backup4 thumb 29F8F904\" width=\"604\" height=\"454\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/7484.Backup4_thumb_29F8F904.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/7484.Backup4_thumb_29F8F904-300x225.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Click Next again and you can configure the backup service to send you emails about any failures in the backup process.\u00a0 In this case, I didn\u2019t have my TFS server configured with an SMTP host, so my only option was No Email Alerts.\u00a0 This uses the same email host and from address that other TFS notifications use, only the recipient can be specified here.\u00a0 If you want more than one recipient, you can separate them with commas.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1033.Backup5_thumb_6F9D8322.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16346\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1033.Backup5_thumb_6F9D8322.png\" alt=\"Image 1033 Backup5 thumb 6F9D8322\" width=\"604\" height=\"454\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1033.Backup5_thumb_6F9D8322.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1033.Backup5_thumb_6F9D8322-300x225.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Click Next again and you can configure the schedule.\u00a0 The default is to run every night and do a full backup of your TFS.\u00a0 For small TFS installations, this is a simple and sufficient backup strategy.\u00a0 Choosing this option will run the full backup at 2:00AM every morning.\u00a0 If you want more control than that, you can click the Advanced Schedules Options.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/8561.Backup6.1_thumb_75E459B0.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16347\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/8561.Backup6.1_thumb_75E459B0.png\" alt=\"Image 8561 Backup6 1 thumb 75E459B0\" width=\"604\" height=\"454\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/8561.Backup6.1_thumb_75E459B0.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/8561.Backup6.1_thumb_75E459B0-300x225.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>If you choose Advanced Schedules, you get two more options 1) a Full, Differential and Transactional Schedule and 2) a Manual Backup Only option.\u00a0 If you choose manual backup only, it will not run any backups automatically but rather only perform a backup when you run the admin console and click the \u201cTake Full Backup Now\u201d button (more on this later).\u00a0 Here I have chosen the Full, Differential and Transactional schedule \u2013 this is a pretty typical enterprise kind of backup strategy.\u00a0 I have configured it to do a full backup every Sunday at 2:00AM, a Differential (sometimes called incremental) backup every other day of the week at 2:00AM.\u00a0 And a transactional backup every 15 minutes.\u00a0 This means I should never lose more than 15 minutes of data yet the performance and storage cost for this is quite modest.\u00a0 This is something that is totally cool about SQL\u2019s backup capabilities.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1682.Backup6.2_thumb_4DD1AA91.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16348\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1682.Backup6.2_thumb_4DD1AA91.png\" alt=\"Image 1682 Backup6 2 thumb 4DD1AA91\" width=\"604\" height=\"454\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1682.Backup6.2_thumb_4DD1AA91.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1682.Backup6.2_thumb_4DD1AA91-300x225.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Once I\u2019ve configured my schedule, clicking Next lets me review my settings.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/2100.Backup7_thumb_5822CEF1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16349\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/2100.Backup7_thumb_5822CEF1.png\" alt=\"Image 2100 Backup7 thumb 5822CEF1\" width=\"604\" height=\"454\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/2100.Backup7_thumb_5822CEF1.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/2100.Backup7_thumb_5822CEF1-300x225.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Clicking Next again will verify that the settings I\u2019ve provided should work.\u00a0 You don\u2019t want to have to wait until 2:00 AM the next morning to find out you fat fingered something \ud83d\ude42\u00a0 In this case I get a warning because I already had a backup plan configured and I\u2019m overwriting it.\u00a0 This tool only supports one backup schedule per TFS server.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1033.Backup8_thumb_7E187F47.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16350\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1033.Backup8_thumb_7E187F47.png\" alt=\"Image 1033 Backup8 thumb 7E187F47\" width=\"604\" height=\"479\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1033.Backup8_thumb_7E187F47.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1033.Backup8_thumb_7E187F47-300x238.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Clicking Configure will make all of the changes necessary to configure your TFS server for backup.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/3683.Backup9_thumb_552D6A3E.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16351\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/3683.Backup9_thumb_552D6A3E.png\" alt=\"Image 3683 Backup9 thumb 552D6A3E\" width=\"604\" height=\"479\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/3683.Backup9_thumb_552D6A3E.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/3683.Backup9_thumb_552D6A3E-300x238.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Click Next again and you are done!\u00a0 Your server is fully configured for backups (compare that to the docs :)).<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5023.Backup10_thumb_29106D4D.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16352\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5023.Backup10_thumb_29106D4D.png\" alt=\"Image 5023 Backup10 thumb 29106D4D\" width=\"604\" height=\"479\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5023.Backup10_thumb_29106D4D.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5023.Backup10_thumb_29106D4D-300x238.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Taking a Backup<\/h3>\n<p>Of course, if you\u2019ve created a schedule, backups will happen automatically at the specified time but I really can\u2019t show you cool screen shots of that \u2013 there\u2019s nothing to see :).\u00a0 Regardless of whether you\u2019ve created a schedule or not, at any time, you can manually take a full backup.\u00a0 Once a backup plan has been configured, the panel for Team Foundation Backups will look more like this.\u00a0 It will show you many of your settings and provide a set of administrative actions (on the right).<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1207.Backup20_thumb_53106B75.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16353\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1207.Backup20_thumb_53106B75.png\" alt=\"Image 1207 Backup20 thumb 53106B75\" width=\"604\" height=\"426\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1207.Backup20_thumb_53106B75.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1207.Backup20_thumb_53106B75-300x212.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>If you click Take Full Backup Now, it will perform a back up and put it in the file system location specified in the plan.\u00a0 That\u2019s it, it\u2019s that easy!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1526.Backup21_thumb_405B71BE.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16354\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1526.Backup21_thumb_405B71BE.png\" alt=\"Image 1526 Backup21 thumb 405B71BE\" width=\"604\" height=\"484\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1526.Backup21_thumb_405B71BE.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1526.Backup21_thumb_405B71BE-300x240.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Restoring a Backup<\/h3>\n<p>Restoring a backup is a bit trickier and it depends on exactly what you are trying to do.\u00a0 There are two basic scenarios that we enable:<\/p>\n<p>1) Restore one or more Team Project Collections (but not the whole server).\u00a0 You would do this if one team screwed up their database and wanted it restored but all the other teams using the server don\u2019t want to be interrupted.<\/p>\n<p>2) Restore the entire Team Foundation Server data (maybe you lost the data drive).<\/p>\n<p>The process is mostly the same but I\u2019ll call out a few differences.\u00a0 Please take these steps only as demonstrative and look at the docs that come with the Power Tools to get a more thorough understanding of what you need to do based on your configuration.<\/p>\n<p>The first thing you have to do is get the server ready for the restore.<\/p>\n<p>If you are restoring the whole server you should go to a command prompt and run \u201ctfsservicecontrol quiesce\u201d from the Tools directory of your TFS 2010 server installation.\u00a0 This will shutdown all of the TFS services and release any database locks.<\/p>\n<p>If you are only restoring individual collections, the tool will prompt you to take any collections you are restoring offline and will automatically copy the replaced collection aside.<\/p>\n<p>This tool is conservative.\u00a0 It won\u2019t overwrite any data.\u00a0 So, except in the case of restoring individual collections, if you plan to restore a backup of a database that already exists, you must first delete the database.\u00a0 You can use SQL Server Management Studio or <a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?familyid=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B&amp;displaylang=en\">SQL Server Management Studio Express<\/a> to do this easily.\u00a0 What I prefer to do is to detach the databases and move them aside but you can also just delete the databases.\u00a0 All of this can be done using the right click context menu on the database in SQL Server Management Studio.<\/p>\n<p>Now you are ready to restore.\u00a0 In the TFS admin console, on the Team Foundation Backups tab, you click \u201cRestore Databases\u201d.\u00a0 This will launch a wizard to walk you through the process.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5023.Restore1_thumb_7F4CF259.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16355\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5023.Restore1_thumb_7F4CF259.png\" alt=\"Image 5023 Restore1 thumb 7F4CF259\" width=\"604\" height=\"479\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5023.Restore1_thumb_7F4CF259.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/5023.Restore1_thumb_7F4CF259-300x238.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>After clicking Next on the welcome screen, you will get the opportunity to browse the list of backups and choose a backup set to restore (based on the date and time of the backup).<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/3288.Restore2_thumb_70A24674.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16356\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/3288.Restore2_thumb_70A24674.png\" alt=\"Image 3288 Restore2 thumb 70A24674\" width=\"604\" height=\"479\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/3288.Restore2_thumb_70A24674.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/3288.Restore2_thumb_70A24674-300x238.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>After clicking Next, you need to choose which of the databases in the set you wish to restore and to which SQL instance you wish to restore them.\u00a0 By blanking out the \u201cSQL Server\u201d field for a database, it means not to restore that database.\u00a0 In this case I\u2019m restoring all the databases to the same SQL instance but I could have chosen to restore them to different SQL Instances if this were a multi-SQL server, scaled out TFS server.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/2100.Restore3_thumb_56CE1045.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16357\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/2100.Restore3_thumb_56CE1045.png\" alt=\"Image 2100 Restore3 thumb 56CE1045\" width=\"604\" height=\"479\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/2100.Restore3_thumb_56CE1045.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/2100.Restore3_thumb_56CE1045-300x238.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Click Next again and you can review your choices.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/4760.Restore4_thumb_23FE09D1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16358\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/4760.Restore4_thumb_23FE09D1.png\" alt=\"Image 4760 Restore4 thumb 23FE09D1\" width=\"604\" height=\"479\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/4760.Restore4_thumb_23FE09D1.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/4760.Restore4_thumb_23FE09D1-300x238.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Clicking Next or Verify will make sure that the restore is likely to work.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/4278.Restore5_thumb_2E4F2E31.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16359\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/4278.Restore5_thumb_2E4F2E31.png\" alt=\"Image 4278 Restore5 thumb 2E4F2E31\" width=\"604\" height=\"479\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/4278.Restore5_thumb_2E4F2E31.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/4278.Restore5_thumb_2E4F2E31-300x238.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Clicking Restore will restore the SQL databases.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/8407.Restore6_thumb_2D0A9552.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16360\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/8407.Restore6_thumb_2D0A9552.png\" alt=\"Image 8407 Restore6 thumb 2D0A9552\" width=\"604\" height=\"479\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/8407.Restore6_thumb_2D0A9552.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/8407.Restore6_thumb_2D0A9552-300x238.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>And finally, clicking Next again shows a victory screen \ud83d\ude42\u00a0 It also includes an \u201cinformational warning\u201d that you probably want to go delete the cache on your application tier as well because you don\u2019t want it to be out of sync with the database you just restored.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1638.Restore7_thumb_4C4D3C25.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-16361\" src=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1638.Restore7_thumb_4C4D3C25.png\" alt=\"Image 1638 Restore7 thumb 4C4D3C25\" width=\"604\" height=\"484\" srcset=\"https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1638.Restore7_thumb_4C4D3C25.png 604w, https:\/\/devblogs.microsoft.com\/bharry\/wp-content\/uploads\/sites\/8\/2010\/08\/1638.Restore7_thumb_4C4D3C25-300x240.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>The last thing you must do, if you ran tfsservicecontrol quiesce, is run \u201ctfsservicecontrol unquiesce\u201d to bring the TFS server back on line.<\/p>\n<h3>Conclusion<\/h3>\n<p>That\u2019s it!\u00a0 If you\u2019ve done a backup\/restore of a TFS server before, you\u2019ll recognize this as being WAY easier.\u00a0 I didn\u2019t cover every caveat (that\u2019s what docs are for) and as with any backup strategy, don\u2019t count on it unless you\u2019ve tested it.\u00a0 Make sure whatever you do works \u2013 you can back up and successfully restore all of your data and please, please, please don\u2019t torch your system in the process by accidentally reformatting or deleting data you haven\u2019t backed up, etc.\u00a0 You might even try it all out on a dummy or \u201cpre-production\u201d system first before you try it on a production system with real data.<\/p>\n<p>I\u2019m SUPER excited about this new Power Tool.\u00a0 It\u2019s the next step in making managing a TFS server as easy as we can possibly make it.\u00a0 As I say, this will be available with some other cool stuff in the next Power Tools release.\u00a0 I\u2019ll let you know as soon as it is available.\u00a0 As always, feedback is welcome.<\/p>\n<p>Thanks,<\/p>\n<p>Brian<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Backing up and restoring a TFS server can be daunting.\u00a0 There are potentially a lot of services and a lot of steps.\u00a0 As soon as we shipped TFS 2010, I knew we had to do something to improve it and we began talking about how we were going to simplify the process.\u00a0 For a thorough [&hellip;]<\/p>\n","protected":false},"author":244,"featured_media":14617,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[5],"class_list":["post-10962","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-tfs"],"acf":[],"blog_post_summary":"<p>Backing up and restoring a TFS server can be daunting.\u00a0 There are potentially a lot of services and a lot of steps.\u00a0 As soon as we shipped TFS 2010, I knew we had to do something to improve it and we began talking about how we were going to simplify the process.\u00a0 For a thorough [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/10962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/users\/244"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/comments?post=10962"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/10962\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media\/14617"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media?parent=10962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/categories?post=10962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/tags?post=10962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}