<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">

<channel>
	<title>Nullable Type</title>
	<atom:link href="http://nullabletype.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nullabletype.com</link>
	<description>Viewing the world from a tri-state of mind</description>
	<lastBuildDate>Thu, 25 Feb 2010 06:18:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>		<item>
		<title>Migrating the TFS 2008 data tier from SQL Server 2005 to SQL Server 2008</title>
		<link>http://nullabletype.com/2010/02/25/migrating-the-tfs-2008-data-tier-from-sql-server-2005-to-sql-server-2008/</link>
		<comments>http://nullabletype.com/2010/02/25/migrating-the-tfs-2008-data-tier-from-sql-server-2005-to-sql-server-2008/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 06:18:54 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[SQL Server Reporting Services]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[TFS 2008]]></category>
		<category><![CDATA[Windows Sharepoint Services]]></category>
		<category><![CDATA[WSS]]></category>
		<category><![CDATA[WSS 3.0]]></category>

		<guid isPermaLink="false">http://nullabletype.com/2010/02/25/migrating-the-tfs-2008-data-tier-from-sql-server-2005-to-sql-server-2008/</guid>
		<description><![CDATA[ 
Team Foundation Server 2008 qualifies as a showcase of sorts for the Microsoft platform.&#160; It builds on several core elements of the enterprise stack, including SQL Server, Sharepoint, and IIS.&#160; This results in a product that can be difficult to deploy and even more difficult to modify once it is deployed.
Microsoft provides a guide [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nullabletype.com/wp-content/uploads/2010/02/354436_3629.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="354436_3629" border="0" alt="354436_3629" src="http://nullabletype.com/wp-content/uploads/2010/02/354436_3629_thumb.jpg" width="244" height="184" /></a> </p>
<p><a href="http://msdn.microsoft.com/en-us/teamsystem/dd408382.aspx">Team Foundation Server 2008</a> qualifies as a showcase of sorts for the Microsoft platform.&#160; It builds on several core elements of the enterprise stack, including <a href="http://www.microsoft.com/sqlserver/2008/en/us/default.aspx">SQL Server</a>, <a href="http://office.microsoft.com/en-gb/sharepointtechnology/default.aspx">Sharepoint</a>, and <a href="http://www.iis.net/">IIS</a>.&#160; This results in a product that can be difficult to deploy and even more difficult to modify once it is deployed.</p>
<p>Microsoft provides a <a href="http://msdn.microsoft.com/en-us/library/ms404869.aspx">guide</a> that documents procedures for moving all or a subset of the components, as it should.&#160; Unfortunately, the tremendous flexibility enjoyed in deployment means that covering all possible scenarios becomes a virtually impossible task.</p>
<p>I am currently responsible for the TFS deployment at a client that I would describe as being of middling complexity.&#160; It evolved from a single server deployment to a multi-server deployment.&#160; This deployment has been moved around several times during server reorganizations and survived the upgrade from TFS 2005 to 2008.</p>
<p>Recently, as part of a move from SQL Server 2005 to 2008, it once again became necessary to relocate the data tier.&#160; Just to keep things exciting, this move took place between two instances installed on the same machine (a default instance of SQL Server 2005, and a named instance of SQL Server 2008).&#160; We did not perform an in-place upgrade of SQL Server 2005.&#160; I am going to detail the steps involved in this process, but first I will provide a little background.&#160; I am going to assume you are on <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9E40A5B6-DA41-43A2-A06D-3CEE196BFE3D&amp;displaylang=en">TFS 2008 SP1</a> and <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EF93E453-75F1-45DF-8C6F-4565E8549C2A&amp;displaylang=en">WSS 3.0 SP2</a>.</p>
<h4>TFS platform background</h4>
<p><a href="http://nullabletype.com/wp-content/uploads/2010/02/1214100_90736719.jpg"><img style="border-right-width: 0px; margin: 0px 0px 0px 20px; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="1214100_90736719" border="0" alt="1214100_90736719" src="http://nullabletype.com/wp-content/uploads/2010/02/1214100_90736719_thumb.jpg" width="244" height="164" /></a>Team Foundation Server 2008 comprises several tiers, to borrow the terminology of the documentation.&#160; I prefer to look at the dependencies individually:</p>
<ul>
<li>Internet Information Services 6 or above – this is necessary for the core application services, really just a number of web services built on ASMX (and a companion Windows service), and for the optional Team System Web Access portal </li>
<li>SQL Server 2005 or 2008
<ul>
<li>Engine – provides the platform for the databases </li>
<li>Analysis Services – data warehousing </li>
<li>Reporting Services – reporting </li>
<li>Agent – maintenance jobs that come out of the box </li>
</ul>
</li>
<li>Windows Sharepoint Services 3.0 – provides team sites with guidance and non-source related artifact storage </li>
</ul>
<p>I won’t delve into the build services here, but those would obviously come into play if you were doing a complete move.&#160; When planning a move of the databases, there are three groups of interest:&#160; the Reporting Services databases, the Sharepoint databases, and the core databases (source control, work items, builds, etc.).</p>
<h4></h4>
<h4>Reporting Services</h4>
<p>I won’t spend too much time on this here, as our deployment was complicated by the existing SQL Server 2005 Reporting Services instance not uninstalling properly.&#160; In TFS 2005, co-location of Reporting Services was required, but that is no longer the case with TFS 2008.</p>
<p>SQL Server 2008 Reporting Services is a big step up.&#160; I have found the software to be much easier to install and configure than the 2005 version, which always seemed to have something that had to be cleaned up manually.&#160; I do have one recommendation here:&#160; go ahead and put the TFS reporting on its own instance of Report Server; it will save you the headache of having to move it later when you don’t want your project folders cluttering up another report server.</p>
<p>Install your instance of SSRS 2008 and select the option to manually configure it later.&#160; Back up the SSRS 2005 encryption key and stop the 2005 service and associated app pool(s).&#160; Move the databases to your SQL Server 2008 instance, either by detach/attach or backup/restore.&#160; Go through the <a href="http://msdn.microsoft.com/en-us/library/bb522676.aspx">Reporting Services Configuration</a> tool and point at the restored databases.&#160; Restore the backed up encryption key and remove the other.&#160; You should be able to activate this instance.</p>
<p>Now it is simply a question of executing <a href="http://msdn.microsoft.com/en-us/library/bb778396.aspx">TfsAdminUtil ConfigureConnections</a>, setting ReportsUri and ReportServerUri appropriately.&#160; Use the view switch of TfsAdminUtil to make sure of the format before changing the URIs and again afterwards to make sure the changes were correctly applied.&#160; Test the reports to make sure they still run.&#160; You may wish to double-check the data sources to make sure they are pointing to the correct server (wherever your data warehouse and core databases still reside).</p>
<h4>Windows Sharepoint Services</h4>
<p>The fun begins here.&#160; The guide is rather vague in describing the most effective way to move the Sharepoint side of the house.&#160; Most of what I learned about the best way to move Sharepoint came from Sharepoint documentation and forums.&#160; While many companies may have the benefit of having staff experienced in WSS, I know that many smaller shops (or larger shops where the Sharepoint administrators don’t want TFS rolled in with the existing deployment) may not enjoy that advantage.</p>
<p>I will provide a little background context as to database configuration for WSS 3.0 (MOSS is similar but I have never attempted a TFS deployment on MOSS before, so I will avoid embarrassing myself).&#160; </p>
<p>A good place to start is the <a href="http://technet.microsoft.com/en-us/library/cc512723.aspx">TechNet guide</a> for moving all of the Sharepoint databases.&#160; If you want to go that route, you probably can follow the guide pretty closely and have a successful move, but the whole aliasing approach seems unclean to me, not to mention that it breaks down under more complex move scenarios.</p>
<p>A typical Sharepoint install consists of the content databases, the search database, the Central Administration content database, and the configuration database.&#160; The content databases, usually called WSS_Content (with or without an additional underscore and a GUID) or STS_Content_TFS (if you used the TFS install process rather than using an existing WSS installation), contain all of the project sites and associated content.&#160; The search database (which may be named WSS_Search or similar) can be moved, but I would not bother as <a href="http://technet.microsoft.com/en-us/library/cc287875.aspx#section3">it is necessary</a> to allow the sites to be recrawled regardless.&#160; The Central Administration content database (usually called Sharepoint_AdminContent_{guid}) as well as the configuration database (usually called WSS_Config or STS_Config_TFS) <a href="http://technet.microsoft.com/en-us/library/cc287875.aspx#section5">should not be moved</a> under normal circumstances.&#160; You actually can follow the recommended procedures <a href="http://technet.microsoft.com/en-us/library/cc512814.aspx">here</a> as to how best to document configuration settings if you have done a lot of customization, or you can <a href="http://technet.microsoft.com/en-us/library/cc287650.aspx">turn</a> to a shadow copy solution such as <a href="http://www.microsoft.com/systemcenter/dataprotectionmanager/en/us/default.aspx">System Center Data Protection Manager</a> or the <a href="http://www.symantec.com/business/products/agents_options.jsp?pcid=&amp;pvid=57_1">Backup Exec Agent for Sharepoint</a>.</p>
<p>This leaves the content database(s), and I suggest you follow <a href="http://technet.microsoft.com/en-us/library/cc287899.aspx">the guide</a> for moving these between instances of SQL Server.&#160; As for which farm you reattach to, I will leave that for you to decide.&#160; If you wish to continue using the same server to host Sharepoint, you may wish to remove the farm on that server and <a href="http://technet.microsoft.com/en-us/library/cc287960.aspx">create a new one</a> using the Sharepoint Products and Technologies Configuration Wizard, or you can establish a new farm on a different server.&#160; Either way you will want to choose the web front-end option rather than stand-alone.&#160; If you are reinstalling on the same machine, keep in mind that you may need to delete the existing application pools/sites to avoid a possible error.</p>
<p>After you get your new farm set up, you continue with the move instructions discussed above to reattach the content databases.&#160; Since the point of this guide is to upgrade to SQL Server 2008, you might as well bump the compatibility level of your databases after you move them.&#160; It is also necessary to install the TFS Sharepoint extensions (I am not sure a reinstall is necessary if you used the same machine, but I would recommend it).&#160; Keep in mind that you will need to get the download from the <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=fbd14eea-781f-45a1-8c46-9f6ba2f68bf0">Power Tools</a> if you are installing on a 64-bit server (MOSS 2007 users may wish to refer to <a href="http://blogs.msdn.com/dstfs/archive/2008/09/02/installing-64-bit-wss-extensions-for-tfs-2008-on-moss-2007.aspx">this blog entry</a>).&#160; You will also need to reinstall any custom templates you may be using.</p>
<p>If you used a different server for your Sharepoint installation, the last step is establishing <a href="http://blogs.msdn.com/aabdou/archive/2007/07/11/team-foundation-server-2008-and-sharepoint-integration.aspx">connectivity</a> between the TFS application tier and your new location.&#160; You will need to use the TfsAdminUtil ConfigureConnections command with the appropriate Sharepoint switches (SharepointUri, SharepointSitesUri, SharepointAdminUri, and SharepointUnc).</p>
<h4>TFS Databases</h4>
<p>The last step in the process involves moving the core TFS databases.&#160; If you start by following the <a href="http://msdn.microsoft.com/en-us/library/ms404869.aspx">guide</a>, you will get most of the way through this.&#160; You will detach and move or backup and restore the core TFS databases (TfsBuild, TfsIntegration, TfsVersionControl, TfsWarehouse, TfsWorkItemTracking, TfsWorkItemTrackingAttachments, and TfsActivityLogging).&#160; Take this opportunity to go ahead and change the database compatibility level to 100 (SQL Server 2008).</p>
<p>This is where things get interesting.&#160; After you have followed the instructions and run TfsAdminUtil RenameDT and ActivateAT (yes, you should go ahead and run ActivateAT even if you haven’t moved the application tier), you will need to rebuild the data warehouse cube.&#160; If your application tier does not reside on the same box as the data tier, you will probably need to install the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&amp;displaylang=en">Analysis Management Objects</a> (AMO) for SQL Server 2008.&#160; You will also need to make some changes to the web.config files in the <a href="http://billwg.blogspot.com/2009/04/how-to-upgrade-tfs-data-tier-to-sql.html">warehouse web service folder</a> and the <a href="http://blogs.msdn.com/tfssetup/archive/2009/10/20/tfs-2008-setupwarehouse-command-would-fail-after-upgrading-sql.aspx">SetupWarehouse.exe folder</a>.&#160; Now you can proceed with rebuilding the cube as directed.</p>
<p>When you go to verify that the reports are accessible, you will want to verify that the <a href="http://msdn.microsoft.com/en-us/library/ms404689.aspx">reporting data sources</a> are set correctly.&#160; At this point, you will find that <a href="http://blogs.msdn.com/dstfs/archive/2009/03/11/issues-with-tfs-2008-built-in-reports-using-sql-server-reporting-services-2008.aspx">several of the reports fail</a>.&#160; New versions of the reports that work correctly with SQL Server 2008 are available <a href="http://code.msdn.microsoft.com/KB969210">here</a>.&#160; Unfortunately, the directions in that package of corrected reports direct you to replace the reports one at a time by hand through the Report Manager interface.&#160; This is a tedious task if you have more than a couple of projects, so I would suggest you find a machine with the SQL Server 2008 Business Intelligence Development Studio installed.&#160; Once you have fired up BIDS, create a reporting project, create two shared data sources that mirror the two TFS data sources on the report server exactly, and add the downloaded files that are appropriate to the template you are using (Agile or CMMI).&#160; Then right click on the project and point the targets to the root of your TFS reporting instance for the data sources and the appropriate path for your first project.&#160; Once you have applied those changes, right click on the project and deploy the reports.&#160; This will replace the existing reports with the corrected versions.&#160; Then repeat the process for each project you have.</p>
<p>The last thing you may wish to do is make sure that the SQL Server Agent jobs for TFS maintenance exist on the new database server.&#160; In my case they weren’t there, so I needed to use the Object Viewer Details window in SQL Server Management Studio to script all of them and move them to the new server.</p>
<p>Good luck and if you have any trouble with the directions, have any other tips to share, or have general questions please feel free to leave a comment or contact me.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fnullabletype.com%2F2010%2F02%2F25%2Fmigrating-the-tfs-2008-data-tier-from-sql-server-2005-to-sql-server-2008%2F&amp;linkname=Migrating%20the%20TFS%202008%20data%20tier%20from%20SQL%20Server%202005%20to%20SQL%20Server%202008">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://nullabletype.com/2010/02/25/migrating-the-tfs-2008-data-tier-from-sql-server-2005-to-sql-server-2008/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>In the beginning</title>
		<link>http://nullabletype.com/2010/02/09/in-the-beginning/</link>
		<comments>http://nullabletype.com/2010/02/09/in-the-beginning/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 04:03:14 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://nullabletype.com/2010/02/09/in-the-beginning/</guid>
		<description><![CDATA[ Where do you want to go today?&#160; Microsoft has traveled a long road, and is once again at a critical juncture in its existence.&#160; Does the dominant technology company of our lifetimes have a rendezvous with their own fourth turning, or will they recede quietly into the annals of history?
I hope to address this [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; margin: 0px 15px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="1204276_79348112" border="0" alt="1204276_79348112" align="left" src="http://nullabletype.com/wp-content/uploads/2010/02/1204276_793481123.jpg" width="298" height="224" /> Where do you want to go today?&#160; Microsoft has traveled a long road, and is once again at a critical juncture in its existence.&#160; Does the dominant technology company of our lifetimes have a rendezvous with their own <a href="http://www.fourthturning.com/">fourth turning</a>, or will they recede quietly into the annals of history?</p>
<p>I hope to address this question in this new site.&#160; This site serves as the new home of my analysis as both an end-user and a technologist.&#160; I expect this analysis to be interspersed with tips and experience across a broad range of technology topics, from Visual Studio and SQL Server to Zune and Windows Mobile.</p>
<p>So relax, enjoy, and join me on this journey.&#160; <a href="http://nullabletype.com/feed">Subscribe</a> to the site’s feed, <a href="http://twitter.com/nullable_type">follow</a> me on twitter, and let the games begin.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fnullabletype.com%2F2010%2F02%2F09%2Fin-the-beginning%2F&amp;linkname=In%20the%20beginning">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://nullabletype.com/2010/02/09/in-the-beginning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

