<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>SharePoint Hosting and Development</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/mikewat/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/mikewat/feed.xml</link>
    <description>One stop shop for all your SharePoint hosting needs</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:24:01 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>I'm back.</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/im-back</link>
      <pubDate>Sat, 17 Jan 2009 02:24:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2009/01/17/im-back/</guid>
      <description><![CDATA[I have resurfaced from the underground. My new blog is at...]]></description>
      <content:encoded><![CDATA[<P>I have resurfaced from the underground. My new blog is at <A href="https://www.sharepointmadscientist.com/">https://www.sharepointmadscientist.com</A></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Customization Best Practices</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/sharepoint-customization-best-practices</link>
      <pubDate>Mon, 22 Sep 2008 16:54:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2008/09/22/sharepoint-customization-best-practices/</guid>
      <description><![CDATA[At the SharePoint Best Practices Conference, there was quite a bit of interest in customization,...]]></description>
      <content:encoded><![CDATA[<P>At the SharePoint Best Practices Conference, there was quite a bit of interest in customization, specifically best practices for customization in SharePoint. The current bible on that topic was written by my buddy, Sean Livingston, a PM in the SharePoint PG. The doc can be found here: <A href="https://go.microsoft.com/fwlink/?LinkId=92311&amp;clcid=0x409">https://go.microsoft.com/fwlink/?LinkId=92311&amp;clcid=0x409</A></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint and Virtualization - Better Together!</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/sharepoint-and-virtualization-better-together</link>
      <pubDate>Tue, 09 Sep 2008 15:50:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2008/09/09/sharepoint-and-virtualization-better-together/</guid>
      <description><![CDATA[I'm really excited about virtualization and think it's the best way to streamline deployments and...]]></description>
      <content:encoded><![CDATA[<P>I'm really excited about virtualization and think it's the best way to streamline deployments and get the most bang for buck out of your hardware. However, there are some important differences between virtual and physical environments that you need to be mindful of.&nbsp;I was hoping to get my virtualization guidance out in conjunction with MSFT's updated guidance, but I'm really under water right now and haven't had time to do the needed testing. Still, if you plan to deploy a production farm on virtual servers, make sure you follow the principles outlined in the following article: <A href="https://technet.microsoft.com/en-us/library/cc816955.aspx">https://technet.microsoft.com/en-us/library/cc816955.aspx</A></P>
<P>Something else&nbsp;of note&nbsp;is that HW vendors are beginning to optimize their hardware for virtualization. Just check out this fact sheet about HP's BL 495c: <A href="https://www.hp.com/hpinfo/newsroom/press_kits/2008/virtualization/docs/fs_proliant.pdf">https://www.hp.com/hpinfo/newsroom/press_kits/2008/virtualization/docs/fs_proliant.pdf</A></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>The SharePoint Best Practices Resource Center is live!</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/the-sharepoint-best-practices-resource-center-is-live</link>
      <pubDate>Thu, 28 Aug 2008 21:09:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2008/08/28/the-sharepoint-best-practices-resource-center-is-live/</guid>
      <description><![CDATA[Check it out.
&nbsp;
https://technet.microsoft.com/en-us/office/sharepointserver/bb736746.aspx]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="COLOR: #1f497d"><FONT size=3><FONT face=Calibri><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p>Check it out.</o:p></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><A href="https://technet.microsoft.com/en-us/office/sharepointserver/bb736746.aspx"><FONT face=Calibri size=3>https://technet.microsoft.com/en-us/office/sharepointserver/bb736746.aspx</FONT></A></P>]]></content:encoded>
    </item>
    <item>
      <title>Improving SharePoint with SQL Server 2008</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/improving-sharepoint-with-sql-server-2008</link>
      <pubDate>Tue, 19 Aug 2008 15:00:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2008/08/19/improving-sharepoint-with-sql-server-2008/</guid>
      <description><![CDATA[You might have noticed that SharePoint&nbsp;SP1 now supports SQL Server 2008...]]></description>
      <content:encoded><![CDATA[<P>You might have noticed that SharePoint&nbsp;SP1 now supports SQL Server 2008 :-)</P>
<P>&nbsp;<A href="https://blogs.msdn.com/sharepoint/archive/2008/08/15/sql-server-2008-support-for-sharepoint-products-and-technologies.aspx">https://blogs.msdn.com/sharepoint/archive/2008/08/15/sql-server-2008-support-for-sharepoint-products-and-technologies.aspx</A></P>
<P><A href="https://blogs.msdn.com/mikewat/archive/2008/08/19/sql-server-2008-is-now-officially-supported.aspx">https://blogs.msdn.com/mikewat/archive/2008/08/19/sql-server-2008-is-now-officially-supported.aspx</A></P>
<P><A href="https://technet.microsoft.com/en-us/library/cc288751.aspx" mce_href="https://technet.microsoft.com/en-us/library/cc288751.aspx"><STRONG><FONT color=#006bad>https://technet.microsoft.com/en-us/library/cc288751.aspx</FONT></STRONG></A>&nbsp;</P>
<P><A href="https://technet.microsoft.com/en-us/library/cc262485.aspx" mce_href="https://technet.microsoft.com/en-us/library/cc262485.aspx"><STRONG><FONT color=#006bad>https://technet.microsoft.com/en-us/library/cc262485.aspx</FONT></STRONG></A>&nbsp;</P>
<P>There is a vast array of new features in SQL Server 2008. While I would love to explore all of them, many are not relevant to the SharePoint admin since we are not allowed to modify the underlying schema. Also, keep in mind that while I did minimum testing to understand these features, no one (that I’m aware of) has any large scale perspective with SQL Server 2008 and SharePoint yet. This is not meant to be definitive guidance. That said, I will focus on the big wins for SharePoint and how to leverage them in your environment.</P>
<H3>Intellisense</H3>
<P>One of my favorite features is Intellisense in SQL Management Studio 2008. No more moving back in forth from query window to the object explorer trying to figure out what that column was called. No more select * queries to see the table. Those familiar with the Visual Studio IDE experience will be right at home. It’s awesome! Here’s a screenshot of Intellisense at work:</P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image002_2.jpg" original-url="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image002_2.jpg" mce_href="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image002_2.jpg"><IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=442 alt=clip_image002 src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image002_thumb.jpg" original-url="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image002_thumb.jpg" width=583 border=0 mce_src="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image002_thumb.jpg"></A></P>
<H3>Compression, Compression, Compression. </H3>
<P>Much has been made of SQL Server’s new compression features. There are actually three different compression scenarios in SQL now:</P>
<P>Database/Log Backup Compression</P>
<P>SQL Server 2008 Enterprise edition gives you the ability to compress backups. (though any SQL 2008 server can restore a compressed backup) This is probably the most usable compression feature of the lot, not just for backups, but for log shipping as well. Set the Compression flag in your backup script or set the server to compress by default and suddenly the size of your backups and shipped logs will be reduced. How much? Well, as with most technologies, it depends. SharePoint, due to its storage of blob data, is not the best compression candidate. That said, you can probably see up to 30% on your blob-laden content databases and perhaps 90 -95% on your other databases. Below is a screenshot of two database backups, one with compression and one without.</P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image004_2.jpg" original-url="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image004_2.jpg" mce_href="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image004_2.jpg"><IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=48 alt=clip_image004 src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image004_thumb.jpg" original-url="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image004_thumb.jpg" width=660 border=0 mce_src="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image004_thumb.jpg"></A></P>
<P>Not only will backups require less space, but backup duration will likely be reduced as well. This is because smaller backups require less IO’s and less time to write. </P>
<P>Backup Compression is quite simple to implement. The easiest way is to navigate to your SQL server’s server properties in management studio &gt; Select Database Settings &gt; and choose Compress Backup as seen here:</P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image006_2.jpg" original-url="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image006_2.jpg" mce_href="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image006_2.jpg"><IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=548 alt=clip_image006 src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image006_thumb.jpg" original-url="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image006_thumb.jpg" width=620 border=0 mce_src="https://blogs.msdn.com/blogfiles/mikewat/WindowsLiveWriter/ImprovingSharePointwithSQLServer2008_A8CB/clip_image006_thumb.jpg"></A></P>
<P>What’s great about setting the backup compression via server properties is that all backups including those made with the SharePoint UI or with STSADM will be compressed. (site backups excluded since they don’t actually backup databases) </P>
<P>The other way to backup using compression is to add the compression clause to your backup script. For example:</P>
<P>BACKUP DATABASE [&lt;DATABASE_NAME&gt;]</P>
<P>TO DISK = ‘E:\&lt;DATABASE_NAME&gt;.bak’</P>
<P>WITH COMPRESSION;</P>
<P>That’s it. Simple huh? Unfortunately, compression is not completely without thought. First, compression has no knobs. It’s on or it’s off. Great for simplicity, but for those used to third-party compression products and their infinite options might not be impressed. Talking with Kevin Farlee from the SQL PG, he mentioned that their testing of different compression levels showed higher and higher CPU utilization with very little benefit so it was decided that on/off with the best setting was the better approach. I recommend those using third-party compression tools with elaborate compression schemes, especially those who tune the size of the IO specifically for their environments, to continue using those products, but for a lot of folks “free” will be hard to pass up.</P>
<P>Lastly, compression requires CPU resources and in many environments CPU is a precious commodity, even during backup windows. How much CPU really depends on what is being compressed. Kevin Farlee mentioned that they observed 2% CPU usage in customer environments, but I doubt those environments included SharePoint. I’ve seen other compression tools taking far more CPU than that. My advice is to test this feature during a weekend backup window to see what affect it will have on your system before implementing across all backups. Straight from the horse’s mouth: (<A href="https://technet.microsoft.com/en-us/library/ms190954.aspx" mce_href="https://technet.microsoft.com/en-us/library/ms190954.aspx">https://technet.microsoft.com/en-us/library/ms190954.aspx</A> )</P>
<P>&lt;By default, backing up using <A href="https://technet.microsoft.com/en-us/library/bb964719.aspx" mce_href="https://technet.microsoft.com/en-us/library/bb964719.aspx">backup compression</A> significantly increases CPU usage, and the additional CPU consumed by the compression process can adversely impact concurrent operations.&gt;</P>
<P>The blurb goes on to say:</P>
<P>Therefore, you might want to create a low-priority compressed backup in a session whose CPU usage is limited by <A href="https://technet.microsoft.com/en-us/library/bb895232.aspx" mce_href="https://technet.microsoft.com/en-us/library/bb895232.aspx">Resource Governor</A> when CPU contention occurs. For more information, see <A href="https://technet.microsoft.com/en-us/library/cc280384.aspx" mce_href="https://technet.microsoft.com/en-us/library/cc280384.aspx">How to: Use Resource Governor to Limit CPU Usage by Backup Compression (Transact-SQL)</A>.&gt; </P>
<P>Intrigued? So am I, but for continuity sake, I’ll talk about resource governor later. There are still two more compression scenarios to discuss. There’s a really good blog post on backup compression here: <A href="https://sqlcat.com/technicalnotes/archive/2008/04/21/tuning-the-performance-of-backup-compression-in-sql-server-2008.aspx" mce_href="https://sqlcat.com/technicalnotes/archive/2008/04/21/tuning-the-performance-of-backup-compression-in-sql-server-2008.aspx">https://sqlcat.com/technicalnotes/archive/2008/04/21/tuning-the-performance-of-backup-compression-in-sql-server-2008.aspx</A></P>
<H4>Database Mirroring Log Compression (Log Stream Compression)</H4>
<P>One of the major performance limiting factors of database mirroring is network throughput between the principal and mirror servers. With 2008, SQL has introduced a feature to compress the log stream (the inserts/updates/deletes being transferred between servers), which should help maximize the network throughput, especially in environments where network conditions are poor. You should expect to see the same compression effectiveness as backup compression and possibly the same CPU overhead. Unlike backup compression; however, you can’t easily control this potential CPU hog. It’s on by default as soon as you start a mirroring session. There is one saving grace. You can disable log stream compression with traceflag 1462. </P>
<P>My advice to shops using database mirroring for SharePoint is to test before enabling log stream compression. You don’t want to be in a situation where your SharePoint environment tanks because SQL is pegged. If your SQL server ventures into the greater than 50% CPU utilization territory on a regular basis it would be safe to assume that log stream compression is not your friend although all is not lost. Simply add more CPU. (i.e. Scale up or out) The SQL CAT team has published an excellent blog entry on log stream compression: <A href="https://sqlcat.com/technicalnotes/archive/2007/09/17/database-mirroring-log-compression-in-sql-server-2008-improves-throughput.aspx" mce_href="https://sqlcat.com/technicalnotes/archive/2007/09/17/database-mirroring-log-compression-in-sql-server-2008-improves-throughput.aspx">https://sqlcat.com/technicalnotes/archive/2007/09/17/database-mirroring-log-compression-in-sql-server-2008-improves-throughput.aspx</A></P>
<H4>Data Compression</H4>
<P>SQL Server 2008 also introduces ways to reduce the size of your actual databases. These ways are called row compression and page compression. Unfortunately, these options are NOT SUPPORTED as they would require modification of SharePoint’s schema so I will not discuss them. For those interested, you can find out more here: <A href="https://blogs.msdn.com/sqlserverstorageengine/archive/2007/11/12/types-of-data-compression-in-sql-server-2008.aspx" mce_href="https://blogs.msdn.com/sqlserverstorageengine/archive/2007/11/12/types-of-data-compression-in-sql-server-2008.aspx">https://blogs.msdn.com/sqlserverstorageengine/archive/2007/11/12/types-of-data-compression-in-sql-server-2008.aspx</A></P>
<H3>Transparent Data Encryption (TDE)</H3>
<P>TDE takes SQL Server 2005’s encryption capabilities to the next level. In SQL Server 2008 Enterprise, TDE allows you to encrypt an entire database(s) and as its name suggests, TDE requires no application awareness or modification which means game on for SharePoint. Basically, the way it works is that data is encrypted as it’s written to disk and decrypted as it’s read from disk and it’s very simple to implement. Just 4 steps:</P>
<P>--Step 1. Create an encryption key.</P>
<P>USE MASTER; </P>
<P>CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘p@$$W0rd’</P>
<P>--Note: Password must meet complexity requirements if complexity is enforced.</P>
<P>--Step 2. Create a certificate</P>
<P>CREATE CERTIFICATE MYENCRYPTCERT WITH SUBJECT = ‘TDE’;</P>
<P>--Note: You should backup the cert with key and save to safe place.</P>
<P>--Step 3. Set you database(s) to use the certificate for encryption</P>
<P>USE &lt;ContentDB&gt;;</P>
<P>CREATE DATABASE ENCRYPTION KEY</P>
<P>WITH ALGORITHM = AES_256 – There are a number of different algorithms to choose. </P>
<P>ENCRYPTION BY SERVER CERTIFICATE MYENCRYPTCERT;</P>
<P>--Step 4. Turn encryption on</P>
<P>ALTER DATABASE &lt;ContentDB&gt;</P>
<P>SET ENCRYPTION ON;</P>
<P>Though encryption is very simple to set up there are definitely performance ramifications of doing so. Encryption is a CPU intensive operation and in order to guarantee security, encryption has to be scoped to not only the encrypted database, but also the log, temp database, and all backups of the encrypted database as well. This means that on a busy system a lot of CPU will be used no matter how few databases you encrypt since the temp DB will also be encrypted. My Advice: Use encryption carefully. Only implement where it’s absolutely necessary after thoroughly testing the performance and operational ramifications. Since the tempDB will be encrypted I would recommend you build out a secure SQL server just for subsets of databases where security is super important and scale is not a factor. I would then charge your tenants big money for the privilege J</P>
<P>Other factors to consider when using TDE:</P>
<P>· Backup compression will be less effective on encrypted databases.</P>
<P>· TDE might not take advantage of multiple processors.</P>
<P>· TDE affects restore operations and disaster recovery since you will need the certificate to restore a database. No certificate means no restore!</P>
<P>· TDE affects database mirroring and log shipping. You need to install the certificate on the partner servers in order to mirror or log ship. </P>
<P>· FileStream data will not be encrypted so those thinking about external blob storage will have more to consider. </P>
<P>Learn more about TDE here: <A href="https://msdn.microsoft.com/en-us/library/bb934049.aspx" mce_href="https://msdn.microsoft.com/en-us/library/bb934049.aspx">https://msdn.microsoft.com/en-us/library/bb934049.aspx</A></P>
<H3>Better Mirroring</H3>
<P>Outside of the log stream compression feature we discussed above, there are other database mirroring enhancements in SQL Server 2008. These enhancements should increase the reliability and performance of mirroring. I won’t go into the details of each enhancement, but you can read about them here: <A href="https://msdn.microsoft.com/en-us/library/cc645581.aspx" mce_href="https://msdn.microsoft.com/en-us/library/cc645581.aspx">https://msdn.microsoft.com/en-us/library/cc645581.aspx</A></P>
<H3>Resource Governor </H3>
<P>Resource Governor is exciting! SQL Server 2008 gives you the ability to granularly control how your SQL Server resources (CPU and memory) are allocated. Resource Governor applies thresholds to incoming connections based on criteria identified by the administrator. For example, if you want to prevent your reporting application running on a separate server from consuming too much memory, you can create a policy that identifies that application by appname, hostname, or username. You can apply Resource Governor to any attribute that makes an incoming request unique. Now I know what you’re thinking. Before you get too excited allow me to step on my soapbox.</P>
<P>&lt;soapbox&gt;Resource governor should not be used to control SharePoint’s usage of SQL. If your Index server is really hitting SQL hard, that’s a capacity planning problem that needs to be addressed with additional capacity, not by artificially restricting critical services. Restricting SharePoint services, no matter how unimportant the service(s) may seem, could have serious implications on the health and supportability of your environment. If you need more capacity buy and build more capacity. &lt;/soapbox&gt;</P>
<P>So if you shouldn’t use Resource Governor to ratchet down SharePoint, where should you use it? Maintenance and administration. I can’t tell you how many times I’ve seen maintenance impacting server performance and health. I’ve seen backups pegging CPU and running outside of maintenance windows and DBCC’s running unmonitored doing the same. I’ve seen administrators tank SQL with bad queries during the day. Resource Governor to the rescue. </P>
<P>For example, let’s say that you want to ensure that your operations folks don’t tank your SQL server with ad-hoc queries using Management Studio or Query Analyzer. To do so, let’s prevent ad-hoc queries from consuming more than 25% CPU. </P>
<P>Step 1. Create a resource pool to limit CPU usage to 25%.</P><PRE>CREATE RESOURCE POOL poolAdhoc</PRE><PRE>WITH (MAX_CPU_PERCENT = 25);</PRE>
<P>Step 2. Create a workload group for ad-hoc queries and register it with the new resource pool</P>
<P>CREATE WORKLOAD GROUP groupAdhoc</P>
<P>USING poolAdhoc;</P>
<P>Step 3. Create a function that classifies Management Studio and Query Analyzer as members of the ad-hoc group.</P><PRE>CREATE FUNCTION adhocQueryClassifier() RETURNS SYSNAME </PRE><PRE>WITH SCHEMABINDING</PRE><PRE>AS</PRE><PRE>BEGIN</PRE><PRE>&nbsp;&nbsp;&nbsp; DECLARE @grp_name AS SYSNAME</PRE><PRE>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IF (APP_NAME() LIKE '%MANAGEMENT STUDIO%')</PRE><PRE>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OR (APP_NAME() LIKE '%QUERY ANALYZER%')</PRE><PRE>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET @grp_name = 'groupAdhoc'</PRE><PRE>&nbsp;&nbsp;&nbsp; RETURN @grp_name</PRE><PRE>END</PRE><PRE>GO</PRE><PRE>&nbsp;</PRE>
<P>Step 4. Register the new function with the Resource Governor</P><PRE>ALTER RESOURCE GOVERNOR </PRE><PRE>WITH (CLASSIFIER_FUNCTION= dbo.adhocQueryClassifier);</PRE><PRE>&nbsp;</PRE>
<P>Step 5. Restart Resource Governor</P>
<P>ALTER RESOURCE GOVERNOR RECONFIGURE;</P>
<P>That’s it! Now queries originating from SQL Management Studio or Query Analyzer will be allocated to poolAdhoc and if CPU becomes constrained, those queries will be restricted to using no more than 25% CPU. When CPU is not constrained, Resource Governor is smart enough to allow the query to consume needed resources without restriction. Resource Governor can also be used to allocate minimum resources too. To learn more about Resource Governor visit <A href="https://msdn.microsoft.com/en-us/library/bb933866.aspx" mce_href="https://msdn.microsoft.com/en-us/library/bb933866.aspx">https://msdn.microsoft.com/en-us/library/bb933866.aspx</A>. </P>
<H3>More Insight</H3>
<P>If you are like me, analyzing SQL health and performance can be a dizzying experience. There’s so much to know and so many different tools to use. That’s why I was super excited about SQL Server 2005 SP2 Performance dashboard reports and now really excited about the upgrade to the 2008 Performance Studio. </P>
<P>Performance Studio takes the dashboard reports to the next level. It’s powerful stuff. Luckily, Rob Carrol, a UK based PFE, has already done the hard part for us and posted a really informative blog on the Performance Studio. Check it out here: <A href="https://sqlblogcasts.com/blogs/thepremiers/archive/2008/06/20/sql-server-2008-performance-studio.aspx" mce_href="https://sqlblogcasts.com/blogs/thepremiers/archive/2008/06/20/sql-server-2008-performance-studio.aspx">https://sqlblogcasts.com/blogs/thepremiers/archive/2008/06/20/sql-server-2008-performance-studio.aspx</A></P>
<P>In addition to Performance Studio, there was also a number of new performance counters added which should help you better analyze your niche and not so niche scenarios. There are way too many to list, but I do want to call out for those using database mirroring there are some really good additions that should help you better understand what mirroring is doing. Paul Randle has a great post on these enhancements at <A href="https://www.sqlskills.com/blogs/paul/2007/10/01/SQLServer2008NewPerformanceCountersForDatabaseMirroring.aspx" mce_href="https://www.sqlskills.com/blogs/paul/2007/10/01/SQLServer2008NewPerformanceCountersForDatabaseMirroring.aspx">https://www.sqlskills.com/blogs/paul/2007/10/01/SQLServer2008NewPerformanceCountersForDatabaseMirroring.aspx</A></P>
<H3>Summary</H3>
<P>All in all, SQL Server 2008 is a major improvement over SQL Server 2005 and includes many compelling reasons to upgrade. While not all new features can be used in SharePoint, the ones that can will definitely improve SharePoint’s operability, survivability, and security. </P>
<H3>Giving Credit Where Credit is Due</H3>
<P>This has been the most collaborative blog post I’ve ever written. I had a lot of help from folks from all over Microsoft and the blogosphere to ensure you got the best information. I wanted thank the following people for their contributions:</P>
<P>Gabe Bratton – SharePoint Supportability</P>
<P>Simon Skaria – SharePoint CAT</P>
<P>Lindsey Allen – SQL CAT</P>
<P>Kevin Farlee – SQL PG</P>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server 2008 is now officially supported!</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/sql-server-2008-is-now-officially-supported</link>
      <pubDate>Tue, 19 Aug 2008 14:19:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2008/08/19/sql-server-2008-is-now-officially-supported/</guid>
      <description><![CDATA[Microsoft has announced SharePoint Products and Technologies 2007 (SP1)&nbsp;support for SQL Server...]]></description>
      <content:encoded><![CDATA[<P>Microsoft has announced SharePoint Products and Technologies 2007 (SP1)&nbsp;support for SQL Server 2008. See <A href="https://technet.microsoft.com/en-us/library/cc262485.aspx" mce_href="https://technet.microsoft.com/en-us/library/cc262485.aspx">https://technet.microsoft.com/en-us/library/cc262485.aspx</A>&nbsp;for MOSS&nbsp;and <A href="https://technet.microsoft.com/en-us/library/cc288751.aspx" mce_href="https://technet.microsoft.com/en-us/library/cc288751.aspx">https://technet.microsoft.com/en-us/library/cc288751.aspx</A>&nbsp;for WSS. (look towards the bottom)</P>
<P>&nbsp;See my posts on upgrade <A href="https://blogs.msdn.com/mikewat/archive/2008/08/11/upgrading-sharepoint-sql-servers-to-sql-server-2008.aspx">https://blogs.msdn.com/mikewat/archive/2008/08/11/upgrading-sharepoint-sql-servers-to-sql-server-2008.aspx</A>&nbsp;and new features <A href="https://blogs.msdn.com/mikewat/archive/2008/08/19/improving-sharepoint-with-sql-server-2008.aspx">https://blogs.msdn.com/mikewat/archive/2008/08/19/improving-sharepoint-with-sql-server-2008.aspx</A></P>]]></content:encoded>
    </item>
    <item>
      <title>I’m Speaking at the SharePoint Best Practices Conference</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/im-speaking-at-the-sharepoint-best-practices-conference</link>
      <pubDate>Wed, 13 Aug 2008 13:19:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2008/08/13/im-speaking-at-the-sharepoint-best-practices-conference/</guid>
      <description><![CDATA[It’s official. I’ll be at the SharePoint Best Practices Conference September 15th – 17th in...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 4"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'">It’s official. I’ll be at the <A href="https://www.sharepointbestpractices.com/"><FONT color=#0000ff>SharePoint Best Practices Conference</FONT></A> September 15<SUP>th</SUP> – 17<SUP>th</SUP> in Washington DC. This will be a great conference. There are a lot of great speakers and sessions and the focus on best practices will cut out all the fluff. If you are an ITPro focused on SharePoint/SQL/Storage design, availability, performance, or administration come check out my sessions on:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 4"><B><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'">Capacity Planning and Performance Tuning - <A href="https://www.sharepointbestpractices.com/event-speakers#watson"><FONT color=#0000ff>Mike Watson</FONT></A><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 6"><B><SPAN style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'">(ITP433, CIO433, PM433)<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'">The topics of capacity planning and performance monitoring will be presented together because much of the foundation is the same. Performance counters that are used for testing a farm's capacity are also used to monitor the performance of the farm. In fact, some of the capacity planning metrics will help define the baseline used for performance monitoring. For example, we will show you how to test the capacity of your farm for Web requests using performance counters. We will then use those performance tests results to define the baseline for monitoring those servers for adequate performance. You will be presented with best practices for Hardware and software boundaries, Planning using System Center Capacity Planner 2007, Testing using Visual Studio 2008, and Monitoring using native and 3rd party tools. <o:p></o:p></SPAN></P>
<H4 style="MARGIN: auto 0in"><A class="" name=#17></A><FONT face="Times New Roman">Best Practices for Data Protection, Recovery, and Availability - </FONT><A href="https://www.sharepointbestpractices.com/event-speakers#watson"><FONT face="Times New Roman" color=#0000ff>Mike Watson</FONT></A></H4>
<H6><FONT face="Times New Roman">(ITP432, CIO432, PM432)</FONT></H6>
<P><FONT face="Times New Roman" size=3>If Server 2007 is a critical component in an organization's infrastructure, it is imperative to properly plan, design, implement, and maintain a data protection, recovery, and availability plan. Simply backing up and restoring via Central Administration is insufficient to fully restore data in all but the simplest implementations. Because SharePoint Server 2007 usually consists of multiple, interconnected systems and dependencies, we will focus on the planning and designing processes first, and then focus on the individual components that make up a SharePoint Server 2007 server farm. The following topics will be presented: Planning for recovery and availability, Designing for high availability, Backup and restore strategies, and Recovering from disasters.</FONT></P>
<H4 style="MARGIN: auto 0in"><A class="" name=#20></A><FONT face="Times New Roman">Intranet, Extranet, and Internet Best Practices - </FONT><A href="https://www.sharepointbestpractices.com/event-speakers#2"><FONT face="Times New Roman" color=#0000ff>Ben Curry</FONT></A><FONT face="Times New Roman">/</FONT><A href="https://www.sharepointbestpractices.com/event-speakers#watson"><FONT face="Times New Roman" color=#0000ff>Mike Watson</FONT></A></H4>
<H6><FONT face="Times New Roman">(ITP431, CIO431, PM431)</FONT></H6>
<P><FONT face="Times New Roman" size=3>Web application best practices are the foundation for any Intranet, Extranet, or Internet SharePoint Server 2007 implementation. Many best practices, including content database, Internet Information Services, Web application policies, authentication, client integration, and farm topologies, will be discussed along with some possible scenarios to begin and refine your design. In addition, we will discuss best practices for sharing information over the Internet for collaboration, as well as Internet-facing sites for anonymous users. </FONT></P>
<H4 style="MARGIN: auto 0in"><A class="" name=itpro></A><FONT face="Times New Roman">IT PRO Experts Panel - </FONT><A href="https://www.sharepointbestpractices.com/event-speakers#9"><FONT face="Times New Roman" color=#0000ff>Bob Fox</FONT></A><FONT face="Times New Roman">/</FONT><A href="https://www.sharepointbestpractices.com/event-speakers#watson"><FONT face="Times New Roman" color=#0000ff>Mike Watson</FONT></A><FONT face="Times New Roman">/</FONT><A href="https://www.sharepointbestpractices.com/event-speakers#12"><FONT face="Times New Roman" color=#0000ff>Daniel Webster</FONT></A><FONT face="Times New Roman">/Tom Wisnowski</FONT></H4>
<P><FONT face="Times New Roman" size=3>Good luck trying to find a problem that this team can not fix.&nbsp; Bring your trickiest problems and let these top experts work with you on them. </FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Upgrading SharePoint SQL Servers to SQL Server 2008.</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/upgrading-sharepoint-sql-servers-to-sql-server-2008</link>
      <pubDate>Mon, 11 Aug 2008 16:20:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2008/08/11/upgrading-sharepoint-sql-servers-to-sql-server-2008/</guid>
      <description><![CDATA[SQL Server 2008 is now released and is supported by WSS 3.0 and MOSS 2007&nbsp;SP1 and above...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>SQL Server 2008 is now released and is supported by WSS 3.0 and MOSS 2007&nbsp;SP1 and above although we probably won't see a supportability statement anytime soon due to resource constraints with the content folks. I will let you know when the official supportability statement is released. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt">[Update] - Support has been annouced. See <A href="https://technet.microsoft.com/en-us/library/cc262485.aspx">https://technet.microsoft.com/en-us/library/cc262485.aspx</A>&nbsp;for MOSS&nbsp;and <A href="https://technet.microsoft.com/en-us/library/cc288751.aspx">https://technet.microsoft.com/en-us/library/cc288751.aspx</A>&nbsp;for WSS. (look towards the bottom)</P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Upgrade from 2005 to 2008 is a pretty simple process. Here are some things to be aware of when using Upgrade Advisor. If you run upgrade advisor (recommended for SQL servers not dedicated to SharePoint 2007) you will see the following warnings in the report. These warnings can safely be ignored:</FONT></P>
<P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 38.1pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; mso-add-space: auto"><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri size=3>Full-Text Search has changed in SQL Server 2008 – SharePoint 2007 no longer uses Full Text Search and will not be affected by these changes.</FONT></P>
<P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 38.1pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; mso-add-space: auto"><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri size=3>Column aliases in ORDER BY clause cannot be prefixed by table alias – This is flagged on each instance of the proc_GetTpPageMetaData stored procedure in each content database. Though this issue suggests that this stored procedure will not work correctly in SQL 2005 and SQL 2008, it apparently does and can be ignored. </FONT></P>
<P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 38.1pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; mso-add-space: auto"><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri size=3>Other Database Engine upgrade issues – The upgrade advisor doesn’t check for all possible upgrade and compatibility issues. This can be ignored for SharePoint 2007 databases. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT size=3><FONT face=Calibri><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Here are some additional things to be aware of when building out a new farm or provisioning new services on SQL server 2008. </P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>(Thanks to Gabe Bratton and Rahul Sakdeo for this info)</FONT></P></FONT></FONT>
<P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 38.1pt; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; mso-add-space: auto"><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri size=3>SSRS and MOSS Report Center – On servers where MOSS is installed on top of SQL server 2008 with Reporting Services the potential for a URL conflict exists since they can both end up with the same url. The workaround would be to use a non-default web site for hosting MOSS. You can distinguish the sites using and IP address, Host Header, or Port. </FONT></P>
<P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 38.1pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; mso-add-space: auto"><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri size=3>Least Privilege Deployments and WSS 3.0 – There is at least one known issue where provisioning a new web application will fail if content access account is running without sufficient permissions to the new database. I haven’t reproduced this or tested a workaround, but I imagine that if you temporarily give the content access account sys admin perms on the SQL Server you will avoid this error. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>You will need to install .Net 3.5 SP1 and hotfix KB942288-v4 (Windows Installer 4.5) - Update services will be stopped and started during the install. These installs will likely require a reboot. One will wait for the other to complete before prompting to reboot. (two installs - one reboot)</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>Run setup.exe again after reboot and choose installation &gt; upgrade from SQL Server 2000 or SQL Server 2005 and follow the prompts. I imagine a resource constrained or large SQL instance will take some time to upgrade. I did not notice any loss of availability with my databases during the upgrade which is good since my upgrade took almost 4 hours per instance, not including the prerequisites install. I have a feeling it took so long because of the lack of memory on my virtual server. (2GB) There was lots of paging occurring during the upgrade. The upgrade process itself seems lightweight, never consuming more than a few percent of the proc and about 30MB of memory. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>If using database mirroring, upgrade the mirror and witness instances first. If running a mirroring split (principal databases on both instances) fail over to one node or the other. By upgrading the mirror and witness first you will ensure mirroring continues to work during the upgrade and you will minimize downtime due to the mandatory reboot. Make sure to upgrade the witness server and mirror server before attempting a failover. Else, the failover will fail and you will end up with unprotected databases and worse, you will need to break mirroring to bring your principal databases online. </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>All in all, the upgrade from SQL 2005 to SQL 2008 is a straightforward process. While I recommend you test the upgrade process I doubt you will find any surprises on a dedicated SharePoint backend. I hope that IT shops fast track this upgrade so we can focus on and take advantage of the </FONT><A href="https://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=73" mce_href="https://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=73"><FONT face=Calibri size=3>new feature set</FONT></A><FONT face=Calibri size=3> in 2008. I plan to talk about how we SharePoint folks can leverage those new features in a post in the near future. [Update] See <A href="https://blogs.msdn.com/mikewat/archive/2008/08/19/improving-sharepoint-with-sql-server-2008.aspx">https://blogs.msdn.com/mikewat/archive/2008/08/19/improving-sharepoint-with-sql-server-2008.aspx</A>&nbsp;for information on new features. </FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>SQL Mirroring Setup Made Easy</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/sql-mirroring-setup-made-easy</link>
      <pubDate>Thu, 31 Jul 2008 00:38:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2008/07/31/sql-mirroring-setup-made-easy/</guid>
      <description><![CDATA[In an ongoing effort to simplify mirroring I've decided to post the scripts I use to setup...]]></description>
      <content:encoded><![CDATA[<FONT color=#0000ff size=2><FONT color=#008000 size=2>
<P><FONT color=#000000>In an ongoing effort to simplify mirroring I've decided to post the scripts I use to setup mirroring for myself. There are 9 easy steps to execute. The trick with most of these commands is that they output a script that you will need to copy into the query window and execute on the appropriate server. The scripts assume that the entire SQL server is dedicated to SharePoint and will create a command for every database on the server except for the system databases (Master, Model, MSDB, and Temp... All databases with an ID &gt; 4) </FONT></P>
<P><FONT color=#000000>Make sure to replace the variables where necessary. Read the comments throughout for guidance.</FONT> </P>
<H1></H1><PRE class=csharpcode><SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Step 1 -- Run this command on the principal, mirror, and witness</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Create the endpoint </SPAN>

<SPAN class=kwrd>CREATE</SPAN> ENDPOINT Endpoint_Mirroring <SPAN class=rem>-- name</SPAN>

<SPAN class=kwrd>STATE</SPAN>=STARTED <SPAN class=rem>-- Endpoint will be started and ready</SPAN>

<SPAN class=kwrd>AS</SPAN> TCP(LISTENER_PORT=5022 <SPAN class=rem>-- Endpoint will use port 5022</SPAN>

, LISTENER_IP=<SPAN class=kwrd>ALL</SPAN>) <SPAN class=rem>-- Endpoint will listen on all IP addresses</SPAN>

<SPAN class=kwrd>FOR</SPAN> DATABASE_MIRRORING <SPAN class=rem>-- Specifies mirroring as the endpoint purpose</SPAN>

(AUTHENTICATION = WINDOWS[Negotiate] <SPAN class=rem>-- Will negotiate NTLM or Kerberos for authentication</SPAN>

, ENCRYPTION = SUPPORTED, <SPAN class=rem>-- Mirroring traffic will be encrypted</SPAN>

<SPAN class=kwrd>ROLE</SPAN>=<SPAN class=kwrd>ALL</SPAN>); <SPAN class=rem>-- This endpoint can be principal, mirror, or a witness</SPAN>



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<SPAN class=rem>--</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Step 2 -- Run on Principal</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Set all the databases to use full recovery.</SPAN>

<SPAN class=rem>-- Caution - Full recovery requires additional logging space</SPAN>

<SPAN class=rem>-- Run this on the principal BEFORE backup</SPAN>

<SPAN class=rem>-- Select the output of this query, paste, and run in the query window to execute.</SPAN>

<SPAN class=rem>-- this query will set all databases to use full recovery except system databases (master, temp, msdb, and model)</SPAN>

<SPAN class=kwrd>Select</SPAN> <SPAN class=str>'USE MASTER; ALTER DATABASE ['</SPAN> + name + <SPAN class=str>'] SET RECOVERY FULL;'</SPAN> <SPAN class=kwrd>from</SPAN> sys.databases <SPAN class=kwrd>where</SPAN> database_id &gt; 4



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<SPAN class=rem>--</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Step 3 -- Run on principal</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Backup all databases</SPAN>

<SPAN class=rem>-- Select the output of this query, paste, and run in the query window to execute.</SPAN>

<SPAN class=rem>-- This will backup all databases on the server except the system databases (master, temp, msdb, and model)</SPAN>

<SPAN class=rem>-- Make sure all databases are in full recovery mode before backup</SPAN>

<SPAN class=rem>-- Replace &lt;BackupLocation&gt; with the appropriate local backup path. Format C:\dir\</SPAN>

<SPAN class=kwrd>SELECT</SPAN> <SPAN class=str>'BACKUP DATABASE ['</SPAN> + name + <SPAN class=str>'] TO DISK = '</SPAN><SPAN class=str>'&lt;BackupLocation&gt;'</SPAN> + name + <SPAN class=str>'.bak'</SPAN><SPAN class=str>' WITH FORMAT;'</SPAN> <SPAN class=kwrd>from</SPAN> sys.databases <SPAN class=kwrd>where</SPAN> database_id &gt; 4



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<SPAN class=rem>--</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Step 4 -- Run on principal</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Backup logs</SPAN>

<SPAN class=rem>-- Select the output of this query, paste, and run in the query window to execute.</SPAN>

<SPAN class=rem>-- This will backup the log for all databases on the server except the system databases (master, temp, msdb, and model)</SPAN>

<SPAN class=rem>-- Replace &lt;BackupLocation&gt; with the appropriate local backup path. Format C:\dir\</SPAN> 

<SPAN class=kwrd>SELECT</SPAN> <SPAN class=str>'BACKUP LOG ['</SPAN> + name + <SPAN class=str>'] TO DISK = '</SPAN><SPAN class=str>'&lt;BackupLocation&gt;log_'</SPAN> + name + <SPAN class=str>'.bak'</SPAN><SPAN class=str>' WITH FORMAT;'</SPAN> <SPAN class=kwrd>from</SPAN> sys.databases <SPAN class=kwrd>where</SPAN> database_id &gt; 4



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<SPAN class=rem>--</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Step 5 -- Run on the query generator on the principal</SPAN>

<SPAN class=rem>-- Run the actual queries on the mirror server</SPAN>

<SPAN class=rem>-- Make sure to copy the backups to the mirror before restoring.</SPAN>

--<SPAN class=kwrd>Restore</SPAN> Databases

<SPAN class=rem>-- Select the output of this query, paste, and run in the query window to execute.</SPAN>

<SPAN class=rem>-- This will restore all databases from the principal.</SPAN>

<SPAN class=rem>-- Replace &lt;BackupLocation&gt; with the appropriate local backup path. Format C:\dir\</SPAN> </PRE><PRE class=csharpcode><SPAN class=kwrd>SELECT</SPAN> <SPAN class=str>'RESTORE DATABASE ['</SPAN> + name + <SPAN class=str>'] FROM DISK = '</SPAN><SPAN class=str>'&lt;BackupLocation&gt;'</SPAN> + name + <SPAN class=str>'.bak'</SPAN><SPAN class=str>' WITH NORECOVERY;'</SPAN> <SPAN class=kwrd>from</SPAN> sys.databases <SPAN class=kwrd>where</SPAN> database_id &gt; 4



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<SPAN class=rem>--</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Step 6 -- Run on the mirror server</SPAN>

<SPAN class=rem>-- Make sure to copy the log backups to the mirror before restoring.</SPAN>

--<SPAN class=kwrd>Restore</SPAN> logs

<SPAN class=rem>-- Select the output of this query, paste, and run in the query window to execute.</SPAN>

<SPAN class=rem>-- This will restore all logs from the principal.</SPAN>

<SPAN class=rem>-- Replace &lt;BackupLocation&gt; with the appropriate local backup path. Format C:\dir\</SPAN> </PRE><PRE class=csharpcode><SPAN class=kwrd>SELECT</SPAN> <SPAN class=str>'RESTORE LOG ['</SPAN> + name + <SPAN class=str>'] FROM DISK = '</SPAN><SPAN class=str>'&lt;BackupLocation&gt;log_'</SPAN> + name + <SPAN class=str>'.bak'</SPAN><SPAN class=str>' WITH NORECOVERY;'</SPAN> <SPAN class=kwrd>from</SPAN> sys.databases <SPAN class=kwrd>where</SPAN> database_id &gt; 4



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<SPAN class=rem>--</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Step 7 -- Run on the mirror server FIRST!</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Replace &lt;principalserverfqdn&gt; with the fully qualified domain name of the principal server</SPAN>

<SPAN class=rem>-- Select the output of this query, paste, and run in the query window to execute.</SPAN>

<SPAN class=kwrd>SELECT</SPAN> <SPAN class=str>'ALTER DATABASE ['</SPAN> + name + <SPAN class=str>'] SET PARTNER = '</SPAN>TCP://&lt;principalserverfqdn&gt;:5022<SPAN class=str>';'</SPAN> <SPAN class=kwrd>from</SPAN> sys.databases <SPAN class=kwrd>where</SPAN> database_id &gt; 4



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<SPAN class=rem>--</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Step 8 -- Run on the principal server. Run After Step 7!</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Replace &lt;mirrorserverfqdn&gt; with the fully qualified domain name of the mirror server</SPAN>

<SPAN class=rem>-- Select the output of this query, paste, and run in the query window to execute.</SPAN>

<SPAN class=kwrd>SELECT</SPAN> <SPAN class=str>'ALTER DATABASE ['</SPAN> + name + <SPAN class=str>'] SET PARTNER = '</SPAN>TCP://&lt;mirrorserverfqdn&gt;:5022<SPAN class=str>';'</SPAN> <SPAN class=kwrd>from</SPAN> sys.databases <SPAN class=kwrd>where</SPAN> database_id &gt; 4



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<SPAN class=rem>--</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Step 9 -- Run on the principal server, Run After Step 8!</SPAN>

<SPAN class=rem>--</SPAN>

<SPAN class=rem>-- Replace &lt;witnessserverfqdn&gt; with the fully qualified domain name of the witness server</SPAN>

<SPAN class=rem>-- Select the output of this query, paste, and run in the query window to execute.</SPAN>

<SPAN class=kwrd>SELECT</SPAN> <SPAN class=str>'ALTER DATABASE ['</SPAN> + name + <SPAN class=str>'] SET WITNESS = '</SPAN>TCP://&lt;witnessserverfqdn&gt;:5022<SPAN class=str>';'</SPAN> <SPAN class=kwrd>from</SPAN> sys.databases <SPAN class=kwrd>where</SPAN> database_id &gt; 4

<SPAN class=rem>-- That's it!</SPAN>

<SPAN class=rem>-- High Availability mirroring is now setup.</SPAN></PRE>
<STYLE type=text/css>
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</STYLE>
</FONT><FONT color=#008000 size=2></FONT></FONT><FONT size=2></FONT>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2007 Infrastructure Update Released</title>
      <link>https://docs.microsoft.com/archive/blogs/mikewat/sharepoint-2007-infrastructure-update-released</link>
      <pubDate>Tue, 15 Jul 2008 21:30:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mikewat/2008/07/15/sharepoint-2007-infrastructure-update-released/</guid>
      <description><![CDATA[The SharePoint 2007 Infrastructure Update is a must have install including numerous performance and...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri><FONT size=3>The SharePoint 2007 Infrastructure Update is a must have install including numerous performance and stability hotfixes. Make sure to install this one. For more info see the SharePoint team blog </FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><SPAN style="COLOR: #1f497d"><A href="https://blogs.msdn.com/sharepoint/archive/2008/07/15/announcing-availability-of-infrastructure-updates.aspx"><FONT size=3>https://blogs.msdn.com/sharepoint/archive/2008/07/15/announcing-availability-of-infrastructure-updates.aspx</FONT></A><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></B></P></FONT>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<TABLE class=MsoNormalTable style="MARGIN: auto 6.75pt; BORDER-COLLAPSE: collapse; mso-table-layout-alt: fixed; mso-yfti-tbllook: 1184; mso-table-lspace: 9.0pt; mso-table-rspace: 9.0pt; mso-table-anchor-vertical: paragraph; mso-table-anchor-horizontal: column; mso-table-left: left; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 align=left border=0 class="MsoNormalTable">
<TBODY>
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #4f81bd 1pt solid; WIDTH: 77.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 2.25pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=103>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><B><SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 178.3pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 2.25pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=238>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><FONT size=3><FONT face=Calibri>X86<SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 223.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 2.25pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=297>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><FONT size=3><FONT face=Calibri>X64<SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 1">
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #4f81bd 1pt solid; WIDTH: 77.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid" vAlign=top width=103>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><FONT size=3><FONT face=Calibri><B>WSS</B><B><SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></B></FONT></FONT></P></TD>
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 178.3pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid" vAlign=top width=238>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><SPAN style="COLOR: #1f497d"><A href="https://www.microsoft.com/downloads/details.aspx?FamilyId=3811C371-0E83-47C8-976B-0B7F26A3B3C4&amp;displaylang=en" mce_href="https://www.microsoft.com/downloads/details.aspx?FamilyId=3811C371-0E83-47C8-976B-0B7F26A3B3C4&amp;displaylang=en"><FONT face=Calibri size=3>https://www.microsoft.com/downloads/details.aspx?FamilyId=3811C371-0E83-47C8-976B-0B7F26A3B3C4&amp;displaylang=en</FONT></A></SPAN><SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 223.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid" vAlign=top width=297>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><SPAN style="COLOR: #1f497d"><A href="https://www.microsoft.com/downloads/details.aspx?FamilyId=3A74E566-CB4A-4DB9-851C-E3FBBE5E6D6E&amp;displaylang=en" mce_href="https://www.microsoft.com/downloads/details.aspx?FamilyId=3A74E566-CB4A-4DB9-851C-E3FBBE5E6D6E&amp;displaylang=en"><FONT face=Calibri color=#0000ff size=3>https://www.microsoft.com/downloads/details.aspx?FamilyId=3A74E566-CB4A-4DB9-851C-E3FBBE5E6D6E&amp;displaylang=en</FONT></A></SPAN><SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 2">
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #4f81bd 1pt solid; WIDTH: 77.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=103>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><FONT size=3><FONT face=Calibri><B>MOSS</B><B><SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></B></FONT></FONT></P></TD>
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 178.3pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=238>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><SPAN style="COLOR: #1f497d"><A href="https://www.microsoft.com/downloads/details.aspx?FamilyId=256CE3C3-6A42-4953-8E1B-E0BF27FD465B&amp;displaylang=en" mce_href="https://www.microsoft.com/downloads/details.aspx?FamilyId=256CE3C3-6A42-4953-8E1B-E0BF27FD465B&amp;displaylang=en"><FONT face=Calibri size=3>https://www.microsoft.com/downloads/details.aspx?FamilyId=256CE3C3-6A42-4953-8E1B-E0BF27FD465B&amp;displaylang=en</FONT></A></SPAN><SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 223.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=297>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><SPAN style="COLOR: #1f497d"><A href="https://www.microsoft.com/downloads/details.aspx?FamilyId=6E4F31AB-AF25-47DF-9BF1-423E248FA6FC&amp;displaylang=en" mce_href="https://www.microsoft.com/downloads/details.aspx?FamilyId=6E4F31AB-AF25-47DF-9BF1-423E248FA6FC&amp;displaylang=en"><FONT face=Calibri color=#0000ff size=3>https://www.microsoft.com/downloads/details.aspx?FamilyId=6E4F31AB-AF25-47DF-9BF1-423E248FA6FC&amp;displaylang=en</FONT></A></SPAN><SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 3; mso-yfti-lastrow: yes">
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #4f81bd 1pt solid; WIDTH: 77.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid" vAlign=top width=103>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><FONT size=3><FONT face=Calibri><B>Project Client</B><B><SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></B></FONT></FONT></P></TD>
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 178.3pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid" vAlign=top width=238>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><SPAN style="COLOR: #1f497d"><A href="https://www.microsoft.com/downloads/details.aspx?FamilyId=F385ADB8-0425-4BA4-BECE-7664B8F49D12&amp;displaylang=en" mce_href="https://www.microsoft.com/downloads/details.aspx?FamilyId=F385ADB8-0425-4BA4-BECE-7664B8F49D12&amp;displaylang=en"><FONT face=Calibri color=#0000ff size=3>https://www.microsoft.com/downloads/details.aspx?FamilyId=F385ADB8-0425-4BA4-BECE-7664B8F49D12&amp;displaylang=en</FONT></A></SPAN><SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 223.1pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid" vAlign=top width=297>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly"><FONT size=3><FONT face=Calibri>N/A<SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD></TR></TBODY></TABLE>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>]]></content:encoded>
    </item>
  </channel>
</rss>