<?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/"
	>

<channel>
	<title>Edwin M SarmientoSharePoint &#8211; Edwin M Sarmiento</title>
	<atom:link href="https://www.edwinmsarmiento.com/category/sharepoint/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.edwinmsarmiento.com</link>
	<description>Intentional Excellence</description>
	<lastBuildDate>Mon, 13 Apr 2026 21:00:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">84283043</site>		<item>
		<title>Video: SQL Server 2012/2014 Reporting Services in SharePoint-Integrated Mode</title>
		<link>https://www.edwinmsarmiento.com/sql-server-20122014-reporting-services-in-sharepoint-integrated-mode/</link>
		<comments>https://www.edwinmsarmiento.com/sql-server-20122014-reporting-services-in-sharepoint-integrated-mode/#respond</comments>
		<pubDate>Thu, 11 Feb 2016 02:26:43 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[SharePoint-integrated mode]]></category>
		<category><![CDATA[SQL Server Reporting Services]]></category>
		<guid isPermaLink="false">http://www.edwinmsarmiento.com/?p=2478</guid>

				<description><![CDATA[In a previous blog post, I covered how you can provide high availability for SQL Server Reporting Services workloads. One of those options is thru SharePoint&#8217;s scale-out implementation. While this topic is primarily for integrating SQL Server Reporting Services with SharePoint 2013, it helps us SQL Server professionals understand the difference in the architecture between native [&#8230;]]]></description>
					<content:encoded><![CDATA[<a href="https://www.edwinmsarmiento.com/sql-server-20122014-reporting-services-in-sharepoint-integrated-mode/"><img width="735" height="253" src="https://www.edwinmsarmiento.com/wp-content/uploads/2016/01/SSRS_logo.png" class="featured-image wp-post-image" alt="" srcset="https://www.edwinmsarmiento.com/wp-content/uploads/2016/01/SSRS_logo.png 735w, https://www.edwinmsarmiento.com/wp-content/uploads/2016/01/SSRS_logo-300x103.png 300w, https://www.edwinmsarmiento.com/wp-content/uploads/2016/01/SSRS_logo-518x178.png 518w, https://www.edwinmsarmiento.com/wp-content/uploads/2016/01/SSRS_logo-82x28.png 82w, https://www.edwinmsarmiento.com/wp-content/uploads/2016/01/SSRS_logo-600x207.png 600w" sizes="(max-width: 735px) 100vw, 735px" /></a><p>In a <a href="https://www.edwinmsarmiento.com/providing-high-availability-to-sql-server-reporting-services/" target="_blank">previous blog post</a>, I covered how you can provide high availability for SQL Server Reporting Services workloads. One of those options is thru SharePoint&#8217;s scale-out implementation.</p>
<p>While this topic is primarily for integrating SQL Server Reporting Services with SharePoint 2013, it helps us SQL Server professionals understand the difference in the architecture between native mode and SharePoint-integrated mode and make decisions based on those. In this particular case, when you deploy SQL Server Reporting Services in a SharePoint farm, we need to be aware of a couple of things:</p>
<ul>
<li>security and authentication</li>
<li>high availability and scale out load balancing</li>
<li>proper deployment</li>
</ul>
<p style="text-align: left;">If someone else on the team is responsible for managing your SharePoint farm, you can use these talking points to have a conversation about the implementation. A very common challenge that I see when there are separate teams managing SharePoint and SQL Server is that there is no proper coordination between the teams (I guess this happens in just about any teams, not just in IT.) I&#8217;ve seen cases where SQL Server Reporting Services was installed in SharePoint-integrated mode in a server that has not been joined to the SharePoint farm yet. And that usually turns out to be an administration nightmare down the road. It&#8217;s why I recommend having that conversation first before you even do any installation.</p>
<p style="text-align: left;">This video explains the service architecture model when SQL Server Reporting Services is deployed in SharePoint-integrated mode. And if you need help in designing and deploying SharePoint 2013 (and higher) as a business intelligence (BI) farm, <strong><a href="https://www.edwinmsarmiento.com/contact/" target="_blank">drop me a line</a></strong>. I&#8217;ll be happy to lend a hand.</p>
<p style="text-align: center;"><iframe title="YouTube video player" width="100%" height="353" src="//www.youtube.com/embed/wIJ1WsDn0b4?rel=0" frameborder="0" allowfullscreen></iframe><div style="margin-bottom: 10px; border: 1px #999999 solid; background-color: #eaeaea; padding: 6px 6px 6px 6px;font-family:arial,helvetica,sans-serif;font-size:10px;text-align:center;">If you can&rsquo;t see this video in your RSS reader or email, then <a href="https://www.edwinmsarmiento.com/sql-server-20122014-reporting-services-in-sharepoint-integrated-mode/" title="Video: SQL Server 2012/2014 Reporting Services in SharePoint-Integrated Mode">click here</a>.</div></p>
<h3 style="text-align: left;">Additional Resources</h3>
<ul>
<li><a href="http://blogs.msdn.com/b/jtarquino/archive/2012/06/13/sql-server-reporting-services-2012-sharepoint-integrated-mode-endpoints-architecture-or-how-our-services-talk-each-other.aspx" target="_blank">SQL Server Reporting Services 2012 SharePoint integrated mode Endpoints architecture (or how our services talk each other)</a></li>
<li><a href="https://www.edwinmsarmiento.com/providing-high-availability-to-sql-server-reporting-services/" target="_blank">Providing High Availability to SQL Server Reporting Services</a></li>
<li><a href="https://www.mssqltips.com/sqlservertip/3469/install-and-configure-sql-server-reporting-services-2012-sp1-and-2014-in-sharepoint-integrated-mode-part-1/" target="_blank">Install and Configure SQL Server Reporting Services 2012 SP1 and 2014 in SharePoint Integrated Mode</a></li>
<li><a href="https://www.mssqltips.com/sqlservertip/3545/installing-and-configuring-reporting-services-2012-sp1-or-2014-in-sharepointintegrated-mode-part-2/" target="_blank">Installing and Configuring Reporting Services 2012 SP1 or 2014 in SharePoint-Integrated Mode Part 2</a></li>
</ul>
<p style="text-align: center;"><div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;"><strong></p>
<h1>IF YOU ENJOYED THIS POST, GET MORE UPDATES STRAIGHT TO YOUR INBOX.</h1>
<p></strong> <br /><CENTER><script>(function() {
	window.mc4wp = window.mc4wp || {
		listeners: [],
		forms: {
			on: function(evt, cb) {
				window.mc4wp.listeners.push(
					{
						event   : evt,
						callback: cb
					}
				);
			}
		}
	}
})();
</script><!-- Mailchimp for WordPress v4.12.2 - https://wordpress.org/plugins/mailchimp-for-wp/ --><form id="mc4wp-form-1" class="mc4wp-form mc4wp-form-2722" method="post" data-id="2722" data-name="Subscribe" ><div class="mc4wp-form-fields"><p>
    <input type="text" name="FNAME" placeholder="First Name" required> &nbsp;&nbsp;
	<input type="email" name="EMAIL" placeholder="Your email address" required /> &nbsp;&nbsp;
	<input type="submit" value="Keep me updated!" />
</p></div><label style="display: none !important;">Leave this field empty if you're human: <input type="text" name="_mc4wp_honeypot" value="" tabindex="-1" autocomplete="off" /></label><input type="hidden" name="_mc4wp_timestamp" value="1780670384" /><input type="hidden" name="_mc4wp_form_id" value="2722" /><input type="hidden" name="_mc4wp_form_element_id" value="mc4wp-form-1" /><div class="mc4wp-response"></div></form><!-- / Mailchimp for WordPress Plugin --></CENTER></div></p>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/sql-server-20122014-reporting-services-in-sharepoint-integrated-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">2478</post-id>	</item>
		<item>
		<title>Delayed Durability in SQL Server 2014 and How You Can Take Advantage of It</title>
		<link>https://www.edwinmsarmiento.com/delayed-durability-in-sql-server-2014-and-how-you-can-take-advantage-of-it/</link>
		<comments>https://www.edwinmsarmiento.com/delayed-durability-in-sql-server-2014-and-how-you-can-take-advantage-of-it/#respond</comments>
		<pubDate>Mon, 03 Aug 2015 00:36:46 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[delayed durability]]></category>
		<category><![CDATA[SQL Server 2014]]></category>
		<guid isPermaLink="false">http://www.edwinmsarmiento.com/?p=1594</guid>

				<description><![CDATA[There have been a lot of blog posts and articles written about the Delayed Durability feature in SQL Server 2014. Here are a couple of them to get you started. Delayed Durability in SQL Server 2014 by SQL Server MVP/Regional Director and SQLSkills CEO Paul Randal (blog &#124; Twitter) Delayed Durability in SQL Server 2014 by [&#8230;]]]></description>
					<content:encoded><![CDATA[<p>There have been a lot of blog posts and articles written about the <a href="https://msdn.microsoft.com/en-us/library/dn449490.aspx" target="_blank">Delayed Durability feature in SQL Server 2014</a>. Here are a couple of them to get you started.</p>
<ul>
<li><a href="http://www.sqlskills.com/blogs/paul/delayed-durability-sql-server-2014/" target="_blank">Delayed Durability in SQL Server 2014</a> by SQL Server MVP/Regional Director and SQLSkills CEO Paul Randal (<a href="http://www.sqlskills.com/blogs/paul/" target="_blank">blog</a> | <a href="https://twitter.com/PaulRandal" target="_blank">Twitter</a>)</li>
<li><a href="http://sqlperformance.com/2014/04/io-subsystem/delayed-durability-in-sql-server-2014" target="_blank">Delayed Durability in SQL Server 2014</a> by SQL Server MVP Aaron Bertrand (<a href="http://blogs.sqlsentry.com/author/aaronbertrand/" target="_blank">blog</a> | <a href="https://twitter.com/AaronBertrand" target="_blank">Twitter</a>)</li>
<li><a href="https://rule30.wordpress.com/2014/03/09/delayed-durability-in-sql-server-2014-part-1-introduction/" target="_blank">Delayed Durability in SQL Server 2014 – Part 1 – Introduction</a> by Simon Harvey (<a href="https://rule30.wordpress.com/" target="_blank">blog</a>)</li>
</ul>
<p>As a SQL Server DBA, this is one feature that you should consider implementing in your environment &#8211; with the proper testing, of course &#8211; if you have a transaction log bottleneck. What this means is that your top waits include WRITELOG, some PAGEIOLATCH_* and potentially LOGBUFFER waits. Check to see if your system has a transaction log bottleneck by taking a look at the top waits.</p>
<div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;"><em>I couldn&#8217;t find any resources about whether or not SharePoint can take advantage of this feature or if it is even supported at all. As I&#8217;ve written in a <a href="https://www.edwinmsarmiento.com/knowing-and-understanding-your-disaster-recovery-strategy/" target="_blank">previous blog post</a>, SharePoint uses multiple databases and transactional consistency is maintained by keeping all of those databases in-sync (or at least as close to being synchronized as possible.) I guess I&#8217;ll just have to wait for an official support documentation or KB article.</em></div>
<p>The one caveat that you need to consider with the delayed durability feature in SQL Server 2014 is this: <span style="color: #3366ff;"><strong>you want to trade transactional durability for log performance</strong></span>.</p>
<p>Now, as a SQL Server high availability and disaster recovery guy, I&#8217;m all for transactional durability. It&#8217;s what we&#8217;re all accustomed to and it&#8217;s a guarantee that transactions are durable when committed. In a highly transactional, mission-critical system, every transaction counts and making them durable is a way to meet recovery objectives in terms of data loss. <span style="color: #ff0000;"><strong>But why do I think your application would benefit from it?</strong></span></p>
<p>Understanding the workload profile of your database can help you decide if you can take advantage of delayed durability.  Also, a lot of the SQL Server deployments that I see in the field are now on virtualized environments, utilizing storage area networks (SAN) and even iSCSI. This means that the virtual machines will share a common storage platform which impacts I/O throughput not just for your databases but for all workloads running on the SAN. This means that your databases will potentially experience I/O latencies &#8211; be it the data file or the transaction log file.  While we can apply all of the <a href="https://technet.microsoft.com/en-us/library/cc966534.aspx" target="_blank">storage best practices configuration settings</a> to optimize database I/O performance, there&#8217;s only so much we can do with the limited amount of resources that we have. Implementing delayed durability would definitely help improve transaction log performance.</p>
<p>But what about potential data loss? <span style="color: #ff0000;"><strong>Your transactions are not durable when committed</strong></span>. Scary, isn&#8217;t it?</p>
<p>This is one of the main reasons why I emphasize the importance of <a href="https://www.edwinmsarmiento.com/disaster-recovery-is-more-than-just-technology-part-2-the-alphabet-soup/" target="_blank">recovery objectives (RPO/RTO) and service level agreements (SLAs.)</a> You cannot treat a mission-critical application that cannot afford data loss the same as a line-of-business application that only needs to be online 16 hours every day. It&#8217;s the same reason why it&#8217;s OK to use SIMPLE recovery model with some of your databases. If you understand your workload profile and your recovery objectives, you can categorize your databases according to criticality. And if your not-so-mission-critical databases are experiencing transaction log bottleneck, every bit of performance optimization helps, including delayed durability.</p>
<p>If I were to decide, I would immediately <span style="color: #0000ff;"><strong>turn this feature on for Tier 1 and Tier 2 SQL Server 2014 database servers</strong> </span>and measure the performance impact. Anything beyond Tier 2, I would carefully evaluate the potential data loss and discuss it with business stakeholders.</p>
<p>Are you in the process of upgrading to SQL Server 2014? This is a great opportunity to test if your workloads can take advantage of this feature.</p>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/delayed-durability-in-sql-server-2014-and-how-you-can-take-advantage-of-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">1594</post-id>	</item>
		<item>
		<title>Why Regular Shrinking is NOT the Right Way to Reclaim Database Space in SharePoint</title>
		<link>https://www.edwinmsarmiento.com/why-shrinking-is-not-the-way-to-reclaim-database-space-in-sharepoint/</link>
		<comments>https://www.edwinmsarmiento.com/why-shrinking-is-not-the-way-to-reclaim-database-space-in-sharepoint/#respond</comments>
		<pubDate>Mon, 27 Jul 2015 01:42:15 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[database shrink]]></category>
		<category><![CDATA[disk space]]></category>
		<category><![CDATA[index fragmentation]]></category>
		<guid isPermaLink="false">http://www.edwinmsarmiento.com/?p=1590</guid>

				<description><![CDATA[I recently got a question about how to reclaim database space in SharePoint. The specific database mentioned was WSS_Logging although this could have been any of the SharePoint databases or any other SQL Server database for that matter. The database was growing really fast so the farm was configured to only keep a week&#8217;s worth [&#8230;]]]></description>
					<content:encoded><![CDATA[<a href="https://www.edwinmsarmiento.com/why-shrinking-is-not-the-way-to-reclaim-database-space-in-sharepoint/"><img width="760" height="570" src="https://www.edwinmsarmiento.com/wp-content/uploads/2015/07/stopDBShrink-760x570.jpg" class="featured-image wp-post-image" alt="" srcset="https://www.edwinmsarmiento.com/wp-content/uploads/2015/07/stopDBShrink-760x570.jpg 760w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/07/stopDBShrink-300x225.jpg 300w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/07/stopDBShrink-518x389.jpg 518w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/07/stopDBShrink-82x62.jpg 82w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/07/stopDBShrink-131x98.jpg 131w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/07/stopDBShrink-600x450.jpg 600w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/07/stopDBShrink.jpg 970w" sizes="(max-width: 760px) 100vw, 760px" /></a><p>I recently got a question about how to reclaim database space in SharePoint. The specific database mentioned was <strong>WSS_Logging </strong>although this could have been any of the SharePoint databases or any other SQL Server database for that matter. The database was growing really fast so the farm was configured to only keep a week&#8217;s worth of data. But because the database did not get any smaller, they decided to shrink it to reclaim space. To which I responded, &#8220;<span style="color: #800000;"><em><strong>Are you running out of free space on your disk?</strong></em></span>&#8221;</p>
<h3>Why I&#8217;m Against Regular Database Shrinking</h3>
<p>I still see this on a regular basis &#8211; a database maintenance plan that takes daily backups and shrinks the database after an index maintenance task. The reasoning behind it is that the administrator simply wants to reclaim disk space every day.  Very good intentions without understanding the effects of the action. That&#8217;s why I take my time to explain why it is a bad idea to regularly shrink databases.</p>
<p>In a <a href="https://www.edwinmsarmiento.com/communicating-shrinking-databases-to-the-accidental-dbas/" target="_blank">previous blog post</a>, I talked about how databases are like boxes being filled with content every day. As the box gets filled, the amount of free space decreases. But if you know that you will need to fill it up with more content, wouldn&#8217;t you go get a bigger box? Sadly, that&#8217;s not what we&#8217;re doing when we&#8217;re shrinking databases. We&#8217;re basically throwing away the box with free space to replace it with a smaller box with just enough space to keep all of the existing content. Imagine what you would do to accomplish this task &#8211; empty the box of its contents, throw away the box, replace it with a smaller box and put the contents back in. Wow, that&#8217;s a lot of work just to replace the box with a smaller one only to see someone else replace it back with a bigger one tomorrow (that someone else is SQL Server running autogrowth to accommodate new data being stored in the database.) But that&#8217;s similar to what&#8217;s happening to your databases every time you shrink them &#8211; you&#8217;re basically wasting resources every time you&#8217;re doing so.</p>
<p>But more than wasting resources just to reclaim free space is the performance impact this process has on the database. One of my favourite demos to show is how fragmentation in the database immediately happens as a side effect of shrinking. If you don&#8217;t believe me, watch this <strong><a href="https://youtu.be/ATUmUC6dqac?t=53m48s" target="_blank">video recording</a></strong> before proceeding any further.</p>
<h4 style="text-align: center;"><div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;"><span style="color: #800000;"><strong>Shrinking a database increases fragmentation which causes performance problems.</strong></span></div></h4>
<p>Let&#8217;s move on. Imagine a database maintenance plan that has an index maintenance task immediately followed by a shrink database task. Ugh! You&#8217;ve just fragmented the indexes that have been defragmented on your database.</p>
<p>Let me get something straight. I&#8217;m not against shrinking databases especially in an emergency situation where you run the risk of causing downtime because of a disk space issue. Besides, there are other ways to resolve a disk space issue like adding a new file and moving data into it. I just don&#8217;t like shrinking the databases on a regular basis. So, do yourself a favor and check if your database maintenance plans have the <strong>Shrink Database Task</strong> included anywhere. If you can&#8217;t, ask your database administrator to make sure you don&#8217;t have it. Remove it if you find any. Ignore anything that any SharePoint expert tells you otherwise, even when the response comes from the T<a href="https://social.technet.microsoft.com/Forums/office/en-US/home?forum=sharepointadmin&amp;filter=answered&amp;sort=relevancedesc&amp;searchTerm=shrink" target="_blank">echNet/MSDN forum and marked as Answered</a>. Your SharePoint users will thank you for it.</p>
<h3>Dealing With Database Space Issues The Right Way</h3>
<p>The proper way to deal with database space issues is to do capacity planning and monitoring. You need to understand what your space requirements will be within the next two years or more and plan accordingly. This should give you enough information to ask for budget allocation for that new storage infrastructure.</p>
<p>Now, you might ask, &#8220;<span style="color: #800000;"><em><strong>my database server has been running for almost a year now and we didn&#8217;t capture usage statistics to determine disk capacity. What do we do?</strong></em></span>&#8221;</p>
<p>To which I would respond by asking, &#8220;<span style="color: #0000ff;"><strong>Do you have database backups?</strong></span>&#8221; Well, I sure hope you do. In the <a href="https://www.edwinmsarmiento.com/how-to-forecast-database-disk-capacity-if-you-dont-have-a-monitoring-tool/" target="_blank">next blog post</a>, I&#8217;ll show you how you can use your database backups for more than just disaster recovery.</p>
<h4>Additional Resources</h4>
<ul>
<li><a href="http://www.sqlskills.com/blogs/paul/why-you-should-not-shrink-your-data-files/" target="_blank">Why you should not shrink your data files</a></li>
<li><a href="http://blog.sqlauthority.com/2011/01/19/sql-server-shrinking-database-is-bad-increases-fragmentation-reduces-performance/" target="_blank">SQL SERVER – Shrinking Database is Bad – Increases Fragmentation – Reduces Performance</a></li>
<li><a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2009/07/27/oh-the-horror-please-stop-telling-people-they-should-shrink-their-log-files.aspx" target="_blank">Oh, the horror! Please stop telling people they should shrink their log files!</a></li>
</ul>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/why-shrinking-is-not-the-way-to-reclaim-database-space-in-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">1590</post-id>	</item>
		<item>
		<title>So, You Think Your SQL Server Always On Availability Group Is Really Highly Available?</title>
		<link>https://www.edwinmsarmiento.com/so-you-think-your-sql-server-availability-group-is-really-highly-available/</link>
		<comments>https://www.edwinmsarmiento.com/so-you-think-your-sql-server-availability-group-is-really-highly-available/#comments</comments>
		<pubDate>Mon, 01 Jun 2015 01:37:00 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[AG]]></category>
		<category><![CDATA[Availability Groups]]></category>
		<category><![CDATA[clustering]]></category>
		<category><![CDATA[dynamic quorum]]></category>
		<category><![CDATA[quorum]]></category>
		<category><![CDATA[Windows Server 2012]]></category>
		<category><![CDATA[Windows Server Failover Clustering]]></category>
		<category><![CDATA[WSFC]]></category>
		<guid isPermaLink="false">http://www.edwinmsarmiento.com/?p=1614</guid>

				<description><![CDATA[This is a question that I regularly ask those attending my high availability and disaster recovery presentations: is your SQL Server Always On Availability Group really highly available? Now, don&#8217;t get me wrong. I love the Always On Availability Groups feature in SQL Server (except for the price tag of an Enterprise Edition license.) But there&#8217;s [&#8230;]]]></description>
					<content:encoded><![CDATA[<a href="https://www.edwinmsarmiento.com/so-you-think-your-sql-server-availability-group-is-really-highly-available/"><img width="760" height="405" src="https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-760x405.jpg" class="featured-image wp-post-image" alt="" srcset="https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-760x405.jpg 760w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-300x160.jpg 300w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-518x276.jpg 518w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-82x44.jpg 82w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-600x320.jpg 600w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC.jpg 973w" sizes="(max-width: 760px) 100vw, 760px" /></a><p>This is a question that I regularly ask those attending my high availability and disaster recovery presentations: <span style="color: #ff0000;"><strong>is your SQL Server Always On Availability Group really highly available?</strong></span></p>
<p>Now, don&#8217;t get me wrong. I love the Always On Availability Groups feature in SQL Server (except for the price tag of an Enterprise Edition license.) But there&#8217;s a back story why I ask this question. Back in 2013, one of my customers asked me to build an Always On Availability Group infrastructure for their SharePoint 2013 farm. Back then, there was a lot of talk and promotion in the SharePoint community about using the new *cough* <strong><em>Always On</em> </strong>*cough* feature in SQL Server 2012. Almost everyone I met at conferences who were planning on upgrading their SharePoint 2010 farms to SharePoint 2013 were looking at implementing Always On Availability Groups.</p>
<p>Fast forward to go-live and a happy customer. Their farm is running on SharePoint 2013 with SQL Server 2012 Always On Availability Groups on a 2-node Windows Server 2012 cluster. They used a file share witness for the extra vote on their cluster since they were only using standalone instances for the Always On Availability Group replicas. The file share witness went offline for whatever reason. But since the cluster nodes are still available, the Always On Availability Group remains online together with the SharePoint databases in it. Until somebody rebooted the secondary replica due to installation of security patches. That caused the SharePoint farm to go offline because the Always On Availability Group went offline. One of my colleagues back then was telling me that we are getting blamed for what happened to their SharePoint farm. I told them, &#8220;<span style="color: #3366ff;"><strong>that behavior is by design.</strong></span>&#8221;</p>
<p>It&#8217;s easy to fall into the belief that something works until it doesn&#8217;t. And, then we blame someone &#8211; either the vendor or the one who implemented the solution &#8211; when it doesn&#8217;t. That&#8217;s why we need to understand the underlying infrastructure and it&#8217;s behavior.</p>
<p>Since SQL Server Always On Availability Groups (AGs) (as well as failover clustered instances (FCIs)) depend so much on the underlying Windows Server Failover Cluster (WSFC) for health detection, automatic failover, etc., we need to understand how WSFC works and how it actually keeps the applications running on top of it online.</p>
<h2>Why Quorum Matters</h2>
<p>As per this <a href="https://technet.microsoft.com/en-us/library/jj612870.aspx" target="_blank" rel="noopener">TechNet article</a>, the quorum for a cluster is determined by the number of voting elements that must be part of active cluster membership for that cluster to start properly or continue running. This means that the number of voting members in a WSFC determine whether or not the cluster stays online together with the applications running on top of it. You&#8217;ll commonly see a 2-node WSFC &#8211; both for AG and FCI &#8211; because of simplicity and ease of management. A disk witness (commonly known in the past as a disk quorum) is typically used for an FCI while a file share witness for AGs with standalone instances as replicas.</p>
<p>Every node in the cluster, by default, will have a vote. In order to keep the cluster up and running, the total number of votes have to reach a majority. The calculation for majority of votes is as follows.</p>
<p style="text-align: center;"><div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;"><span style="color: #3366ff;"><strong>Majority = (Total Number of Votes from Voting Members / 2) + 1</strong></span></div></p>
<p>I mentioned voting members because there are a dozen or more combinations of configuration that you can implement where the voting members may or may not have a vote, depending on your requirement. This could mean having a node that does not have a vote if you&#8217;re on earlier versions of Windows Server. But, first, let&#8217;s start with the common 2-node cluster and how quorum behaves on different versions of Windows Server.</p>
<p>In a 2-node cluster, the majority of votes will be <strong>one (1.) </strong>And because both nodes in a cluster will have a vote, by default, we don&#8217;t really have a majority since 50% is sitting right in the middle. This is the reason why an additional vote in the form of a disk or file share witness is introduced. We need a &#8220;<em>tie-breaker</em>&#8221; in order to have majority of votes. Now that we have three (3) votes &#8211; two from the cluster nodes and one from the witness &#8211; the majority of votes will be <strong>two (2)</strong> &#8211; three divided by two is 1.5, plus one is 2.5 (I&#8217;ve never really gotten the hang of doing math using words in a sentence.) We need to round down the results of the calculation of votes since we cannot really have half-a-vote. 66.67% is definitely higher than 50%, making it a majority. You can use this same logic to calculate the majority of votes for any number of nodes in your WSFC to keep it online and available.</p>
<h2>So, Is My Always On Availability Group Really Highly Available?</h2>
<p>Since our goal is to keep the WSFC online, we have to make sure that majority (if not all) of the voting members remain online and available. Just because a voting member is online doesn&#8217;t mean it is available from the WSFC&#8217;s point of view. It could mean that the network switch that connects one of the nodes to the WSFC become unavailable, causing it to be disconnected and not communicate with the other nodes. The node is online but it isn&#8217;t available as far as the WSFC is concerned.</p>
<p>So, with Windows Server 2012 (same as with Windows Server 2008/R2,) when I lost the file share witness, I still have two out of three votes (majority of votes) that kept the WSFC online. When somebody rebooted the secondary replica because of the installed security patches, the WSFC only had one out of three votes which is less than majority of votes. Doing so took the WSFC offline which also took the Always On Availability Group offline. Below is a screenshot of an SQL Server 2014 AG configuration that runs on Windows Server 2012 where the network connectivity between the nodes in the WSFC became unavailable.</p>
<p><a href="https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC.jpg"><img fetchpriority="high" decoding="async" class=" size-full wp-image-1617 aligncenter" src="https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC.jpg" alt="AG_WSFC" width="973" height="519" srcset="https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC.jpg 973w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-300x160.jpg 300w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-760x405.jpg 760w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-518x276.jpg 518w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-82x44.jpg 82w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/06/AG_WSFC-600x320.jpg 600w" sizes="(max-width: 973px) 100vw, 973px" /></a></p>
<p>Note that while the SQL Server instance is still online because it&#8217;s a standalone instance, the AG and the databases in it are offline and inaccessible. This means you can still connect to the SQL Server instance, run some queries against DMVs or the system databases but the AG databases are offline. And because the AG contained the SharePoint databases, the SharePoint farm went offline.</p>
<h2>Introducing Dynamic Quorum</h2>
<p>The customer panicked and complained when that happened. For one, they expected the AG to stay online regardless. Unfortunately, they were not monitoring the file share witness and, while it remained offline, somebody rebooted the secondary replica. This would not have happened if the file share witness remained online while the secondary replica was rebooted.</p>
<p>The good thing is that they were on Windows Server 2012. This version of Windows Server introduced the concept of <a href="https://technet.microsoft.com/en-us/library/jj612870.aspx#BKMK_dynamic" target="_blank" rel="noopener">dynamic quorum</a> and is enabled, by default.  The WSFC manages the vote assignments to the nodes depending on their state. If the node is taken offline &#8211; rebooted, powered down, disconnected from the network, etc. &#8211; it&#8217;s vote is also removed from the cluster. It&#8217;s the reason why the AG went offline when the cluster node was rebooted. The beauty of this is that, when the node came back online, the cluster went back online (together with the AG) by virtue of the vote being added back to the WSFC. This was worse in earlier versions of Windows Server in that, if the WSFC went offline, the only way to bring it back online was to <a href="http://www.mssqltips.com/sqlservertip/3310/force-start-a-windows-server-failover-cluster-without-a-quorum-to-bring-a-sql-server-failover-clustered-instance-online/" target="_blank" rel="noopener">force start without quorum</a>. Unfortunately, even when the WSFC came back online eventually, the SharePoint farm still was taken offline and was down for almost half an hour because it took a while to reboot the server.</p>
<h2>And Dynamic Witness</h2>
<p>Windows Server 2012 R2 introduced the dynamic witness feature. From the name itself, the WSFC dynamically adjusts the voting capability of the witness resource based on the number of votes required to meet quorum. This works in tandem with the dynamic quorum feature in Windows Server 2012 to enable the WSFC to maintain availability when any of the voting members become unavailable which also eliminates the additional administrative overhead of having to keep an odd number of votes.</p>
<h2>Know Where You Stand</h2>
<p>With AGs dependency on WSFC, there&#8217;s a lot that we DBAs need to be aware of that go outside the scope of their traditional job description. We need to know about Active Directory, DNS, networking, WSFC and AGs just to keep our databases highly available. So, in order to really know if your AGs are highly available,</p>
<ol>
<li><strong>Monitor your cluster</strong>. This means the nodes, the witness and everything in it. You need to be alerted when the number of voting members fall below total but still higher than majority. That way you can decide early on how to deal with it.</li>
<li><strong>Know what version of Windows Server you&#8217;re running.</strong> Different versions of Windows Server behave differently when it comes to the quorum. I&#8217;ve described how Windows Server 2012 behaves. Windows Server 2012 R2 introduced the concept of <a href="https://technet.microsoft.com/en-ca/library/dn265972.aspx#BKMK_Witness" target="_blank" rel="noopener">dynamic witness</a> where the witness vote is dynamically adjusted based on the number of voting nodes in the WSFC. I&#8217;ll save the details of dynamic witness in a future blog post but knowing what version of Windows Server you&#8217;re running will give you an understanding of what to expect.</li>
<li><strong>Identify steps should any of the voting members in your WSFC fail</strong>. If any of the voting members in the WSFC become unavailable, know what steps you need to take. If the file share or disk witness went offline, maybe an alternative file share can be configured temporarily. This can be automated via a PowerShell script.</li>
<li><strong>Document your configuration and recovery steps.</strong> Once you&#8217;ve identified how you can address issues when they happen, include them in your documentation. This will help your junior DBAs or operations engineers to resolves issues in case you decide to go on vacation.</li>
</ol>
<p>There really is no guarantee that your AGs will always be highly available all of the time. That&#8217;s why it&#8217;s important to define your recovery objectives and service level agreements. But knowing where you stand and how you can resolve issues when they occur can help you meet your availability goals.</p>
<h4>Additional Resources</h4>
<ul>
<li><a href="http://blogs.msdn.com/b/clustering/archive/2011/05/27/10169261.aspx" target="_blank" rel="noopener">Understanding Quorum in a Failover Cluster</a></li>
<li><a href="https://technet.microsoft.com/en-ca/library/dn265972.aspx" target="_blank" rel="noopener">What&#8217;s New in Failover Clustering in Windows Server</a></li>
<li><a href="https://msdn.microsoft.com/en-us/gg509118" target="_blank" rel="noopener">Getting Started with AlwaysOn Always On Availability Groups (SQL Server)</a></li>
</ul>
<hr />
<h2>Feeling helpless and confused when dealing with Windows Server Failover Clustering  (WSFC) for your SQL Server databases?</h2>
<p>You&#8217;re not alone. I&#8217;ve heard the same thing from thousands of SQL Server administrators throughout my entire career. These are just a few of them.</p>
<p><span style="color: #0000ff;"><em>&#8220;How do I properly size the server, storage, network and all the AD settings which we do not have any control over?&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;I don&#8217;t quite understand how the Windows portion of the cluster operates and interacts with what SQL controls.&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;I&#8217;m unfamiliar with multi-site clustering.&#8221;</em></span></p>
<p><span style="color: #0000ff;">&#8220;<em>Our servers are setup and configured by our parent company, so we don&#8217;t really get much experience with setting up Failover Clusters.</em>&#8220;</span></p>
<p>If you feel the same way, then, this course is for you. It&#8217;s a simple and easy-to-understand way for you to learn and master how Windows Server Failover Clusters can keep your SQL Server databases highly available. Be confident in designing, building and managing SQL Server databases running on Windows Server Failover Clusters.</p>
<p>But don&#8217;t take my word for it. Here&#8217;s what my students have to say about the course.</p>
<p><span style="color: #0000ff;"><em>&#8220;The techniques presented were very valuable, and used them the following week when I was paged on an issue.&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;Thanks again for giving me confidence and teaching all this stuff about failover clusters.&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;I’m so gladdddddd that I took this course!!&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;Now I got better knowledge to setup the Windows FC ENVIRONMENT (DC) for SQL Server FCI and AlwaysON.&#8221;</em></span></p>
<div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;"><span style="color: #800000;"><strong>NOTE:</strong></span> Registration for my online course <a href="https://learnsqlserverhadr.com/" target="_blank" rel="noopener"><span style="color: #800000;"><strong>Windows Server Failover Clustering (WSFC) for the Smart SQL Server DBA</strong></span></a> will re-open in <span style="color: #0000ff;"><strong>January 2018</strong></span>. But be sure you do not miss out. This will be the last time that the course will be offered. After this, you will no longer be able to register for the course.</div>
<hr />
<div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;"></p>
<p><!-- Begin MailChimp Signup Form --></p>
<style type="text/css">
	#mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }<br />	/* Add your own MailChimp form style overrides in your site stylesheet or in this style block.<br />	   We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */<br /></style>
<p>&nbsp;</p>
<div id="mc_embed_signup">
<form id="mc-embedded-subscribe-form" class="validate" action="//EdwinMSarmiento.us4.list-manage.com/subscribe/post?u=08cdb91518ee67ce09d618509&amp;id=46cff8469f" method="post" name="mc-embedded-subscribe-form" novalidate="" target="_blank">
<div id="mc_embed_signup_scroll">
<h2>Get notified about the next batch of enrollment so you don&#8217;t miss out.</h2>
<div class="indicates-required"><span class="asterisk">*</span> indicates required</div>
<div class="mc-field-group"><label for="mce-EMAIL">Email Address <span class="asterisk">*</span><br />
</label><br />
<input id="mce-EMAIL" class="required email" name="EMAIL" type="email" value="" /></div>
<div class="mc-field-group"><label for="mce-FNAME">First Name </label><br />
<input id="mce-FNAME" class="" name="FNAME" type="text" value="" /></div>
<div id="mce-responses" class="clear"></div>
<p><!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups--></p>
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input tabindex="-1" name="b_08cdb91518ee67ce09d618509_46cff8469f" type="text" value="" /></div>
<div class="clear"><input id="mc-embedded-subscribe" class="button" name="subscribe" type="submit" value="Keep me updated!" /></div>
</div>
</form>
</div>
<p><script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script><br />
<!--End mc_embed_signup--><br />
</div>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/so-you-think-your-sql-server-availability-group-is-really-highly-available/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">1614</post-id>	</item>
		<item>
		<title>Knowing and Understanding Your Disaster Recovery Strategy</title>
		<link>https://www.edwinmsarmiento.com/knowing-and-understanding-your-disaster-recovery-strategy/</link>
		<comments>https://www.edwinmsarmiento.com/knowing-and-understanding-your-disaster-recovery-strategy/#respond</comments>
		<pubDate>Mon, 25 May 2015 01:33:42 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[database corruption]]></category>
		<category><![CDATA[disaster recovery]]></category>
		<category><![CDATA[Event ID 5586]]></category>
		<category><![CDATA[SharePoint Foundation]]></category>
		<guid isPermaLink="false">http://www.edwinmsarmiento.com/?p=1582</guid>

				<description><![CDATA[This last weekend, I had the opportunity to speak at SharePoint Saturday Montreal &#8211; being one of the few English speakers for the event &#8211; on the topic of SQL Server high availability and disaster recovery options for SharePoint. After my presentation, one of my SharePoint MVP friends approached me about a database corruption issue that happened on [&#8230;]]]></description>
					<content:encoded><![CDATA[<a href="https://www.edwinmsarmiento.com/knowing-and-understanding-your-disaster-recovery-strategy/"><img width="760" height="538" src="https://www.edwinmsarmiento.com/wp-content/uploads/2015/05/SharePointDBCorruption-760x538.jpg" class="featured-image wp-post-image" alt="" srcset="https://www.edwinmsarmiento.com/wp-content/uploads/2015/05/SharePointDBCorruption-760x538.jpg 760w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/05/SharePointDBCorruption-300x212.jpg 300w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/05/SharePointDBCorruption-518x367.jpg 518w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/05/SharePointDBCorruption-82x58.jpg 82w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/05/SharePointDBCorruption-600x425.jpg 600w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/05/SharePointDBCorruption.jpg 977w" sizes="(max-width: 760px) 100vw, 760px" /></a><p>This last weekend, I had the opportunity to speak at <a href="http://www.spsevents.org/city/Montreal/Montreal2015" target="_blank">SharePoint Saturday Montreal </a>&#8211; being one of the few English speakers for the event &#8211; on the topic of SQL Server high availability and disaster recovery options for SharePoint. After my presentation, one of my SharePoint MVP friends approached me about a database corruption issue that happened on their SharePoint farm. Now, being a SQL Server geek, I certainly would love to get my hands dirty and start looking at the error messages that DBCC CHECKDB reported. Unfortunately, since they do not have a dedicated SQL Server DBA, the only error message that they have is the one logged on the Windows Event Log as reported by SharePoint &#8211; <span style="color: #ff0000;"><strong>Event ID 5586</strong></span>  from <a href="https://support.office.com/en-us/article/What-is-SharePoint-97B915E6-651B-43B2-827D-FB25777F446F" target="_blank"><strong><span style="color: #ff0000;">SharePoint Foundation</span></strong></a>. Unfortunately, there aren&#8217;t a lot of information from the Windows Event Log that tells any SharePoint (nor SQL Server) administrator that this is a database corruption issue. I asked if there were any Error Numbers 823, 824 or 825 reported and, sure enough, there was.</p>
<h3><strong>If it was only the database&#8230;</strong></h3>
<p>As a SQL Server administrator who has encountered any form of database corruption, our first instinct is to run <a href="https://msdn.microsoft.com/en-us/library/ms176064.aspx" target="_blank"><strong>DBCC CHECKDB,</strong></a> identify the level of corruption and how to possibly fix it. I&#8217;ve highlighted in a <a href="https://www.edwinmsarmiento.com/how-to-identify-potential-data-loss-when-dbcc-checkdb-reports-corruption/" target="_blank">previous blog post</a> that the output of DBCC CHECKDB can tell us what the corruption is and what possible options are available to resolve it. Armed with a <strong>good, working backup</strong> to use for repairing the corrupted database, we can safely restore the pages (if you&#8217;re on Enterprise Edition) or rows that were affected by the corruption and save the day. This could easily make any SQL Server DBA&#8217;s day a great one.</p>
<p>But, let&#8217;s pause for a minute and think, &#8220;<span style="color: #ff0000;"><em>what is this database used for?</em></span>&#8221;</p>
<h3>What is the database used for?</h3>
<p>If the database is used by an internal, custom built application, you can simply ask the development team about how the data is stored and what the impacts are in terms of the corruption. Of course, we&#8217;re also assuming that this is just <strong>ONE database</strong>, not many. But what if there were many databases used by the application? What if it was a third-party application? What is covered by the support contract? Do we have that in writing? What is the service-level agreement (SLA) for this application? These are just some of the questions that you need to ask yourself before a real disaster strikes. Here are some of the ways that you can find out what your disaster recovery strategy will be like so you can prepare way ahead of time should it happen.</p>
<ol>
<li><strong>Know what application uses your database</strong>. Knowing the application that uses your databases can help you get more information about your possible options. As a SQL Server DBA, we are sometimes blindsided by the fact that our approach only revolves around SQL Server &#8211; restoring from backups, repairing corruption, provisioning high availability and disaster recovery solutions, etc. We need to know the application to prepare our plan of action.</li>
<li><strong>Know what other databases are involved</strong>. Enterprise applications use either one or more databases to implement their functionality. SharePoint is a classic example that I use when explaining this concept &#8211; it uses a farm configuration database, an administration site content database, a bunch of content databases used by different site collections, several service application databases, etc. (a more detailed list of the different SharePoint databases are available in <a href="https://technet.microsoft.com/en-ca/library/cc678868.aspx" target="_blank">this TechNet article</a>.) This is because the transactional consistency of the application no longer depends on just one database. Even if you managed to repair a corrupted database in an application that uses multiple databases, there is no guarantee that the application is transactionally consistent.</li>
<li>If a third-party application is used, <strong>know what the application vendor considers as SUPPORTED. </strong>I mentioned <a href="http://support.microsoft.com/kb/841057" target="_blank">Microsoft KB 841057</a> in my <a href="https://www.edwinmsarmiento.com/how-to-identify-potential-data-loss-when-dbcc-checkdb-reports-corruption/" target="_blank">previous blog post</a> and how the <strong>REPAIR_ALLOW_DATA_LOSS</strong> option in DBCC CHECKDB is considered to be an unsupported database change. When my friend told me that one of the IT staff ran DBCC CHECKDB using the REPAIR_ALLOW_DATA_LOSS option, my immediate response was, &#8220;<strong><em>he should not have done that</em></strong>.&#8221; By doing so, it rendered the application &#8211; in this case, SharePoint &#8211; unsupported. Furthermore, because the impacts of the REPAIR_ALLOW_DATA_LOSS was not considered, the SharePoint content database became even more corrupted.Now, another option that we SQL Server DBAs would probably do is to restore the SharePoint configuration database. This approach is not officially supported as per <a href="https://support.microsoft.com/en-us/kb/948725" target="_blank">Microsoft KB 948725</a>. This means that regardless of whether or not your SharePoint database backups are valid and working, restoring them on the existing farm is not supported. Now, this is just one of many examples. Even SAP has it&#8217;s own supported way of dealing with corrupted databases. SAP Notes # <a href="http://service.sap.com/sap/support/notes/1597910">1597910</a> – <strong>Handling of database corruptions on SQL Server</strong> &#8211; discusses what is supported and what isn&#8217;t in terms of dealing with database corruption. This <a href="http://scn.sap.com/community/sqlserver/blog/2015/05/25/analyzing-database-corruptions" target="_blank">blog post from Luis Darui </a>(SAP Support Engineer) on this particular topic talks about how not to use REPAIR_ALLOW_DATA_LOSS without guidance from SAP.</li>
<li><strong>Plan your disaster recovery strategy based on collected information</strong>. At this point, there really is no other option to recover the SharePoint databases other than restore all of the database backups taken at a specific point in time on a <strong>DIFFERENT</strong> SQL Server instance to keep the farm transactionally consistent. Or, if at all possible, rebuild the whole farm using the <span style="color: #3366ff;"><strong>documented process</strong></span> to keep the farm configuration consistent and restore the content databases to it. This will definitely take the whole farm offline while restoring the backups and lose all of the data after the backups were taken. This is why it is important to know what the defined and agreed upon recovery objectives (RPO/RTO) and SLAs are in order to properly design a disaster recovery solution. A SQL Server Availability Group configuration that uses a different storage subsystem could have been implemented to address the database corruption issue. Once the disaster recovery strategy is implemented and documented, it is important to test it out on a regular basis to make sure that recovery objectives and SLAs are met.</li>
</ol>
<p>In my presentations, I always joke around the fact that we don&#8217;t really need a high availability and a disaster recovery solution &#8211; until we do. It&#8217;s like the health insurance policy that we don&#8217;t really need &#8211; until we do. But more than just the database for the SQL Server DBA, it is important to know and understand the overall disaster recovery strategy from the ground up, involving individuals from different teams, the different components that make up the application architecture and how to execute the strategy when the real disaster strikes. It&#8217;s also the main reason why I recorded the video below to emphasize that while we SQL Server DBAs need to be focused on the database, we need to have an understanding of the overall application architecture that our databases are being used for.</p>
<p style="text-align: center;"><iframe title="YouTube video player" width="100%" height="353" src="//www.youtube.com/embed/42iRtkwBAn4?rel=0" frameborder="0" allowfullscreen></iframe><div style="margin-bottom: 10px; border: 1px #999999 solid; background-color: #eaeaea; padding: 6px 6px 6px 6px;font-family:arial,helvetica,sans-serif;font-size:10px;text-align:center;">If you can&rsquo;t see this video in your RSS reader or email, then <a href="https://www.edwinmsarmiento.com/knowing-and-understanding-your-disaster-recovery-strategy/" title="Knowing and Understanding Your Disaster Recovery Strategy">click here</a>.</div></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/knowing-and-understanding-your-disaster-recovery-strategy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">1582</post-id>	</item>
		<item>
		<title>Database Configuration for Maximum SharePoint Performance (Video, Slide and PowerShell Script)</title>
		<link>https://www.edwinmsarmiento.com/database-configuration-for-maximum-sharepoint-performance-video-powershell-script/</link>
		<comments>https://www.edwinmsarmiento.com/database-configuration-for-maximum-sharepoint-performance-video-powershell-script/#respond</comments>
		<pubDate>Mon, 23 Dec 2013 15:41:18 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[content database]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[PowerShell]]></category>
		<guid isPermaLink="false">http://bassplayerdoc.wordpress.com/?p=876</guid>

				<description><![CDATA[This post is way overdue. Since I&#8217;ve been getting a lot of requests about this specific presentation regarding SharePoint databases, I decided to do two things. First, I recorded this presentation for all my attendees to use as a reference. Now, you might be thinking, &#8220;If you&#8217;ve already recorded your presentation, wouldn&#8217;t that affect attendance [&#8230;]]]></description>
					<content:encoded><![CDATA[<p>This post is way overdue. Since I&#8217;ve been getting a lot of requests about this specific presentation regarding SharePoint databases, I decided to do two things. First, I recorded this presentation for all my attendees to use as a reference. Now, you might be thinking, &#8220;<em>If you&#8217;ve already recorded your presentation, wouldn&#8217;t that affect attendance in your events?</em>&#8221; Yes and No. Yes, because those who have seen the video will no longer attend my presentation. For me, this is a great opportunity to help those individuals to plan ahead and maximize their time while attending events. As IT professionals, we&#8217;re busy, stuck in our day-to-day work and don&#8217;t even have time to look into some of these best practices that need to be applied in our environment. Often times, we are forced into the let&#8217;s-do-things-quick-and-fix-it-later corner because of the constant demand for our time. If the drop in attendance in my presentation/events would mean helping those individuals maximize their time, then, I&#8217;m all for that. This also includes those who really wanted to attend my presentations but do not have the means to do so (those in different time zones, different countries, no budget, etc.) And the flip side? No, it wouldn&#8217;t affect attendance in my events. Everyone who has seen me deliver a presentation can tell you a thing or two about why they&#8217;ve decided to attend my presentations even though they&#8217;ve already seen me (or the same presentation) at a previous event. I really work hard to prepare my presentations &#8211; the proper use of pictures, colors, fonts, and stories all are done with intent &#8211; even if it&#8217;s the same presentation delivered at a different event. This is my way of saying, &#8220;<em>thank you for taking time off your hectic and tight schedule to attend my presentation.</em>&#8221; In addition to that, I wanted them to have a resource that they can use as a reference when they go back to work. I want them to become valuable and continue to grow as an IT professional. After all, that&#8217;s my primary mission statement.</p>
<p>So, here it is, a video recording of my most requested topic at SharePoint conferences and events &#8211; <strong><a href="http://www.youtube.com/watch?v=ATUmUC6dqac">Database Configuration for Maximum SharePoint 2010/2013 Performance</a></strong></p>
<iframe title="YouTube video player" width="100%" height="353" src="//www.youtube.com/embed/ATUmUC6dqac?rel=0" frameborder="0" allowfullscreen></iframe><div style="margin-bottom: 10px; border: 1px #999999 solid; background-color: #eaeaea; padding: 6px 6px 6px 6px;font-family:arial,helvetica,sans-serif;font-size:10px;text-align:center;">If you can&rsquo;t see this video in your RSS reader or email, then <a href="https://www.edwinmsarmiento.com/database-configuration-for-maximum-sharepoint-performance-video-powershell-script/" title="Database Configuration for Maximum SharePoint Performance (Video, Slide and PowerShell Script)">click here</a>.</div>
<p>And, you&#8217;ve probably seen the corresponding slide deck.</p>
<p><a href="https://www.edwinmsarmiento.com/database-configuration-for-maximum-sharepoint-performance-video-powershell-script/"><img decoding="async" width="170" height="128" src="https://www.edwinmsarmiento.com/wp-content/uploads/2013/12/slideshare-15254175.jpg" class="attachment-rss_daily size-rss_daily wp-post-image" alt="" border="0" style="max-width:100%;height:auto" srcset="https://www.edwinmsarmiento.com/wp-content/uploads/2013/12/slideshare-15254175.jpg 170w, https://www.edwinmsarmiento.com/wp-content/uploads/2013/12/slideshare-15254175-82x62.jpg 82w, https://www.edwinmsarmiento.com/wp-content/uploads/2013/12/slideshare-15254175-131x98.jpg 131w" sizes="(max-width: 170px) 100vw, 170px" /></a><div style="margin-bottom: 10px; border: 1px #999999 solid; background-color: #eaeaea; padding: 6px 6px 6px 6px; font-size:10px;line-height:12px;font-family:arial,helvetica,sans-serif; text-align: center;">If you can&rsquo;t see this slideshow in your RSS reader or email, then <a href="https://www.edwinmsarmiento.com/database-configuration-for-maximum-sharepoint-performance-video-powershell-script/" title="Database Configuration for Maximum SharePoint Performance (Video, Slide and PowerShell Script)">click here</a>.</div><br />
But this is just the first of the two things I mentioned. Here&#8217;s the second one. I&#8217;ve written a PowerShell script to check the SQL Server instance that you use for your SharePoint databases. This is the PowerShell script that I use when delivering my presentation on <strong>Windows PowerShell for the SharePoint Administrators</strong>. It&#8217;s also the same PowerShell script that I use when I work with customers who request for my services to review and evaluate their SharePoint databases. The script checks for best practices configuration recommended for SharePoint databases &#8211; stuff like MAXDOP =1, disabled autoupdate and autocreate statistics, etc. As SQL Server DBAs, we hate some of these configuration. However, these are all documented and supported. Which means they have to be applied to your SQL Server instances and databases used by SharePoint. In addition, I have also included checks that we SQL Server DBAs consider best practices &#8211; separation of MDF and LDF files, regular DBCC CHECKDB execution, backup compression enabled, etc. You can download the <strong><a href="https://1drv.ms/u/s!Ai_yzH6eiIftgwDUM6T7tdMDz7sc" target="_blank">PowerShell script from here</a></strong>. Keep in mind that this is not the best way to write PowerShell scripts. I didn&#8217;t apply best practices here so that would probably be in my next project.</p>
<p>Feel free to use this script as you wish. It has only been tested on default instances of SQL Server 2008 and higher (named instances have not been considered yet) running on Windows Server 2008 and higher. High availability checks like failover clustering, database mirroring and Availability Groups have not been included yet on this version. Comment on the script for bugs and fixes that you want included, keeping in mind that this is specifically for SharePoint databases. Don&#8217;t expect any indexing improvements nor identifying the TOP I/O consumers because there is no way for us to modify those queries without breaking your SharePoint support contract (and I am in no way a lawyer to even argue about the contents of the EULA.)</p>
<p>Enjoy.</p>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/database-configuration-for-maximum-sharepoint-performance-video-powershell-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">876</post-id>	</item>
		<item>
		<title>“Thou Shalt Configure MAXDOP For SharePoint 2013″ Is No Longer Needed</title>
		<link>https://www.edwinmsarmiento.com/thou-shalt-configure-maxdop-for-sharepoint-2013%e2%80%b3-is-no-longer-needed/</link>
		<comments>https://www.edwinmsarmiento.com/thou-shalt-configure-maxdop-for-sharepoint-2013%e2%80%b3-is-no-longer-needed/#comments</comments>
		<pubDate>Mon, 15 Jul 2013 21:00:47 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server Administration]]></category>
		<category><![CDATA[SQL Server Authentication]]></category>
		<category><![CDATA[MAXDOP]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[SharePoint best practices]]></category>
		<guid isPermaLink="false">http://bassplayerdoc.wordpress.com/?p=790</guid>

				<description><![CDATA[Last year I started to get involved in the SharePoint community, particularly the SharePoint Saturday events. As a SQL Server DBA, I thought that SharePoint administrators need to have a fair understanding of the underlying database because it is the backbone of a highly-performing SharePoint farm. That gave me the idea of doing a presentation [&#8230;]]]></description>
					<content:encoded><![CDATA[<p>Last year I started to get involved in the SharePoint community, particularly the <a href="http://spsevents.org/Pages/home.aspx" target="_blank">SharePoint Saturday events</a>. As a SQL Server DBA, I thought that SharePoint administrators need to have a fair understanding of the underlying database because it is the backbone of a highly-performing SharePoint farm. That gave me the idea of doing a presentation on database configuration for maximum SharePoint performance. I first did the presentation at a SharePoint Saturday event in Ottawa and was very well received (I blogged about it <a href="http://bassplayerdoc.wordpress.com/2012/11/20/database-configurations-to-improve-sharepoint-performance/" target="_blank">here</a>). Because of that, I got invited to deliver the same presentation for another SharePoint Saturday event. This time, it&#8217;s in Montreal. I made the slides available on <a href="http://www.slideshare.net/bassplayerdoc/database-configuration-for-maximum-sharepoint-2010-performance" target="_blank">SlideShare</a> for reference.<br />
<a href="http://www.slideshare.net/bassplayerdoc/database-configuration-for-maximum-sharepoint-2010-performance" target="_blank"><img decoding="async" class="aligncenter" alt="" src="http://bassplayerdoc.files.wordpress.com/2013/07/dbconfig_sp.jpg" width="470" height="352" /></a></p>
<p>One of the things I mentioned in the presentation is the need for a dedicated SQL Server instance just for the SharePoint farm. There are two main reasons why that is the case. First, SharePoint requires a specific collation for the content databases. <a href="http://support.microsoft.com/kb/2008668" target="_blank">Microsoft KB 2008668 </a> mentions the collation required for the content databases and the recommended one for the instance (while the KB article mentions SharePoint 2007, it still applies to <a href="http://technet.microsoft.com/en-us/library/cc262869.aspx#beforeyoubegin" target="_blank">SharePoint 2010</a> and <a href="http://technet.microsoft.com/en-us/library/cc262781.aspx" target="_blank">2013</a>.) If your databases require a collation other than those, the collation difference will cause a lot of issues. Hence, the recommendation for a dedicated SQL Server instance.</p>
<p>Another reason for having a dedicated SQL Server instance for the SharePoint farm is the instance-wide <strong>maximum degree of paralellism</strong> configuration. This is clearly documented in this <a href="http://technet.microsoft.com/en-us/library/hh292622.aspx" target="_blank">Microsoft TechNet article</a>. Now, if you&#8217;re a SQL Server DBA, you might be laughing at this because it is not a best practice that we apply to our SQL Server instances. We usually analyze the workload and decide whether to keep the default setting of zero or tweak it to a number that would address the workload. However, SharePoint requires a maximum degree of parallelism of <strong>1</strong>. Yes, that wasn&#8217;t a typo. This is one of the settings that I check whenever performing a best practices configuration check for a SQL Server instance running SharePoint databases. In the past, SharePoint will just install and create content databases even when the instance-wide maximum degree of parallelism value is not equal to 1. With SharePoint 2013, this is no longer the case. In fact, in the earlier builds of SharePoint 2013, the installation media will inform you that the maximum degree of parallelism is not set to 1 and will halt the installation with the error message below.</p>
<p><em><span style="color:red;">New-SPConfigurationDatabase : This SQL Server instance does not have the required &#8220;max degree of parallelism&#8221; setting of 1. Database provisioning operations will continue to fail if &#8220;max degree of parallelism&#8221; is not set 1 or the current account does not have permissions to change the setting. See documentation for details on manually changing the setting</span></em></p>
<p>As I was preparing a new SharePoint 2013 farm for my test environment, I decided to play around with it. I intentionally switched my SQL Server instance&#8217;s maximum degree of parallelism from 1 to 0 just so I could hit the error. For the installation, I used the SharePoint 2013 build <strong>15.0.4420.1017</strong> released back in 24-Oct-2012. For starters, I used the SharePoint configuration wizard to create the farm and made sure that my maximum degree of parallelism configuration is set to 0. To my surprise, the installation went well. I decided to check the maximum degree of parallelism configuration after the installation and was shocked to see that it was changed to a value of 1. Not satisfied with what I found out, I recreated the SharePoint 2013 farm and decided to run SQL Profiler to capture the SQL statements being sent to the SQL Server instance while the SharePoint farm is initially created. This is what I found.</p>
<pre class="brush: sql; title: ; notranslate">
--DELETE_SQL_AZURE_START
IF (SELECT value FROM sys.configurations WHERE name = 'max degree of parallelism') &amp;lt;&amp;gt; 1
BEGIN
 exec sp_configure 'show advanced options', 1;
 RECONFIGURE WITH OVERRIDE;
 exec sp_configure 'max degree of parallelism', 1;
 RECONFIGURE WITH OVERRIDE;
END
--DELETE_SQL_AZURE_END
IF EXISTS (SELECT TOP 1 1 FROM sys.types WHERE name='tSystemID')
 DROP TYPE &#x5B;dbo].&#x5B;tSystemID]
</pre>
<p>Part of the SharePoint 2013 farm build process is to check whether or not the max degree of parallelism configuration value is equal to 1. This is a good thing. This means that if this configuration setting was ignored during the installation of your SQL Server instance, SharePoint 2013 will reconfigure it for you. But I didn&#8217;t stop there. I decided to switch it back from 1 to 0 before creating a new site collection. The site collection will create a corresponding content database, if one doesn&#8217;t already exist. I fired up SQL Profiler again to capture the SQL statements getting executed against the SQL Server instance. The same statements are being executed prior to creating the content database for the site collection. So, even if somebody accidentally changed the configuration setting from 1 to something else, SharePoint will automatically change it to 1 whenever a new content database is created.</p>
<p>While this is a good change in SharePoint 2013, I strongly recommend regularly checking your SQL Server instances for configuration changes that do not follow best practices, particularly those that are well documented. Even better is configuring your monitoring tool to notify you when this configuration setting is changed. A proactive approach to managing SQL Server instances will make sure that you minimize issues that you might come across with, whether they be performance-, reliability-, or security-related.</p>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/thou-shalt-configure-maxdop-for-sharepoint-2013%e2%80%b3-is-no-longer-needed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">790</post-id>	</item>
		<item>
		<title>Database Configuration Settings To Improve SharePoint Performance</title>
		<link>https://www.edwinmsarmiento.com/database-configurations-to-improve-sharepoint-performance/</link>
		<comments>https://www.edwinmsarmiento.com/database-configurations-to-improve-sharepoint-performance/#comments</comments>
		<pubDate>Tue, 20 Nov 2012 23:28:09 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[content database]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[PowerShell]]></category>
		<guid isPermaLink="false">http://bassplayerdoc.wordpress.com/?p=689</guid>

				<description><![CDATA[Next month, I will be doing a presentation for the very first SharePoint Saturday event here in Ottawa. Since I have been doing a lot of SharePoint architecture and implementation projects, I submitted a session on improving SharePoint performance by looking at the underlying database system. Majority of the concepts in the presentation apply to [&#8230;]]]></description>
					<content:encoded><![CDATA[<p>Next month, I will be doing a presentation for the very first <a href="http://sharepointsaturday.org/ottawa/default.aspx" target="_blank">SharePoint Saturday</a> event here in Ottawa. Since I have been doing a lot of SharePoint architecture and implementation projects, I submitted a session on improving SharePoint performance by looking at the underlying database system. Majority of the concepts in the presentation apply to any SQL Server instance, not just those running SharePoint databases. There are, however, a few configuration settings that make us SQL Server DBAs cringe but make sense for a system that is dedicated for Sharepoint.</p>
<p>If you are free on 1-Dec-2012, join us for a whole day of FREE training on SharePoint from industry experts, Microsoft engineers and MVPs. <strong><a href="http://sharepointsaturdayottawa.eventbrite.com/?ebtv=C" target="_blank">Register here</a></strong> to reserve a slot.</p>
<a href="https://www.edwinmsarmiento.com/database-configurations-to-improve-sharepoint-performance/"><img loading="lazy" decoding="async" width="170" height="128" src="https://www.edwinmsarmiento.com/wp-content/uploads/2012/11/slideshare-15254175.jpg" class="attachment-rss_daily size-rss_daily wp-post-image" alt="" border="0" style="max-width:100%;height:auto" srcset="https://www.edwinmsarmiento.com/wp-content/uploads/2012/11/slideshare-15254175.jpg 170w, https://www.edwinmsarmiento.com/wp-content/uploads/2012/11/slideshare-15254175-82x62.jpg 82w, https://www.edwinmsarmiento.com/wp-content/uploads/2012/11/slideshare-15254175-131x98.jpg 131w" sizes="(max-width: 170px) 100vw, 170px" /></a><div style="margin-bottom: 10px; border: 1px #999999 solid; background-color: #eaeaea; padding: 6px 6px 6px 6px; font-size:10px;line-height:12px;font-family:arial,helvetica,sans-serif; text-align: center;">If you can&rsquo;t see this slideshow in your RSS reader or email, then <a href="https://www.edwinmsarmiento.com/database-configurations-to-improve-sharepoint-performance/" title="Database Configuration Settings To Improve SharePoint Performance">click here</a>.</div>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/database-configurations-to-improve-sharepoint-performance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">689</post-id>	</item>
		<item>
		<title>Configuring Alternate Access Mapping in SharePoint 2010 using Windows PowerShell</title>
		<link>https://www.edwinmsarmiento.com/configuring-alternate-access-mapping-in-sharepoint-2010-using-windows-powershell/</link>
		<comments>https://www.edwinmsarmiento.com/configuring-alternate-access-mapping-in-sharepoint-2010-using-windows-powershell/#respond</comments>
		<pubDate>Tue, 19 Apr 2011 05:36:00 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[Alternate Access Mappings]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint]]></category>
		<guid isPermaLink="false">http://bassplayerdoc.wordpress.com/2011/04/19/configuring-alternate-access-mapping-in-sharepoint-2010-using-windows-powershell</guid>

				<description><![CDATA[The PowerShell equivalent of configuring alternate access mappings tip on MSSharePointTips.com has been published. Check out the article.]]></description>
					<content:encoded><![CDATA[<p><span style="font-family:Arial, Helvetica, sans-serif;">The PowerShell equivalent of configuring alternate access mappings tip on MSSharePointTips.com has been published. Check out the <a href="http://mssharepointtips.com/tip.asp?id=1113">article</a>. </span></p>
<div class="blogger-post-footer"><img loading="lazy" decoding="async" src="https://blogger.googleusercontent.com/tracker/92377218009570869-1713257501205470048?l=bassplayerdoc.blogspot.com" alt="" width="1" height="1" /></div>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/configuring-alternate-access-mapping-in-sharepoint-2010-using-windows-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">230</post-id>	</item>
		<item>
		<title>Configuring Alternate Access Mapping in SharePoint 2010</title>
		<link>https://www.edwinmsarmiento.com/configuring-alternate-access-mapping-in-sharepoint-2010/</link>
		<comments>https://www.edwinmsarmiento.com/configuring-alternate-access-mapping-in-sharepoint-2010/#respond</comments>
		<pubDate>Thu, 17 Mar 2011 16:16:00 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[Alternate Access Mappings]]></category>
		<category><![CDATA[SharePoint]]></category>
		<guid isPermaLink="false">http://bassplayerdoc.wordpress.com/2011/03/17/configuring-alternate-access-mapping-in-sharepoint-2010</guid>

				<description><![CDATA[It took me quite a while to get back to writing articles for both MSSQLTips and MSSharePointTips. Now, I&#8217;m back and the first article to be published this year is all about configuring alternate access mappings on SharePoint 2010. Check out the article here. There&#8217;s a corresponding PowerShell command to do the same task so watch out [&#8230;]]]></description>
					<content:encoded><![CDATA[<p><span style="font-family:Arial, Helvetica, sans-serif;">It took me quite a while to get back to writing articles for both MSSQLTips and MSSharePointTips. Now, I&#8217;m back and the first article to be published this year is all about configuring alternate access mappings on SharePoint 2010. Check out the article <a href="http://mssharepointtips.com/tip.asp?id=1102">here</a>. There&#8217;s a corresponding PowerShell command to do the same task so watch out for that article as well</span></p>
<div class="blogger-post-footer"><img loading="lazy" decoding="async" src="" alt="" width="1" height="1" /></div>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/configuring-alternate-access-mapping-in-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">226</post-id>	</item>
	</channel>
</rss>