<?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>srgolla</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/srgolla/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/srgolla/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 04:06:55 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Converting a SQL Trace to an Extended Event session</title>
      <link>https://docs.microsoft.com/archive/blogs/srgolla/converting-a-sql-trace-to-an-extended-event-session</link>
      <pubDate>Wed, 13 Feb 2013 19:26:03 GMT</pubDate>
      <dc:creator><![CDATA[Krishna Golla]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/srgolla/2013/02/13/converting-a-sql-trace-to-an-extended-event-session/</guid>
      <description><![CDATA[So&nbsp;you are comfortable with SQL Trace events and suddenly you heard that it is on the...]]></description>
      <content:encoded><![CDATA[<p>So&nbsp;you are comfortable with SQL Trace events and suddenly you heard that it is on the deprecated list for SQL 2012.</p>
<p>Are you wondering if there is an easy way to convert a SQL&nbsp;trace file to an extended event file ?</p>
<p>&nbsp;</p>
<p>Here is an easy way to convert a SQL Trace into an Extended Events file.</p>
<p>&nbsp;</p>
<p>-- 1)</p>
<p>---Enable CLR</p>
<p><span style="color: #800000; font-family: Consolas; font-size: x-small;"><span style="color: #800000; font-family: Consolas; font-size: x-small;"><span style="color: #800000; font-family: Consolas; font-size: x-small;">sp_configure</span></span></span><span style="color: #ff0000; font-family: Consolas; font-size: x-small;"><span style="color: #ff0000; font-family: Consolas; font-size: x-small;"><span style="color: #ff0000; font-family: Consolas; font-size: x-small;">'clr enabled'</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">,</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> 1</span></span></p>
<p>go</p>
<p>&nbsp;</p>
<p>---2)</p>
<p>--- Create an Assembly using the TracetoXevents.dll file provided &nbsp;in this blog article</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">CREATE </span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">ASSEMBLY </span></span></span><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;">TraceToXESessionConverter</span></span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">FROM </span></span></span><span style="color: #ff0000; font-family: Consolas; font-size: x-small;"><span style="color: #ff0000; font-family: Consolas; font-size: x-small;"><span style="color: #ff0000; font-family: Consolas; font-size: x-small;">'C:\Users\srgolla\Desktop\Scratchpad\TracetoXevents.dll'</span></span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">WITH </span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">PERMISSION_SET</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">=</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">SAFE</span></span></span></p>
<p>GO</p>
<p>&nbsp;</p>
<p>-- 3)</p>
<p>---Create a stored procedure from the above assembly.</p>
<p>/* @traceid is the id of the trace you want to convert to Extended Events from select * from sys.traces</p>
<p>@session_name is the name of the extended events you want in Extended Events*/</p>
<p>&nbsp;</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">CREATE </span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">PROCEDURE </span></span></span><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;">CreateEventSessionFromTrace</span></span></span></p>
<p><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;">@trace_id </span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">int</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">,</span></span></span></p>
<p><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;">@session_name </span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">nvarchar</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">(</span></span></span><span style="color: #ff00ff; font-family: Consolas; font-size: x-small;"><span style="color: #ff00ff; font-family: Consolas; font-size: x-small;"><span style="color: #ff00ff; font-family: Consolas; font-size: x-small;">max</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">)</span></span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">AS</span></span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">EXTERNAL </span></span></span><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;">NAME </span></span></span><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;">TraceToXESessionConverter</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">.</span></span></span><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;">StoredProcedures</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">.</span></span></span><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;">ConvertTraceToExtendedEvent</span></span></span></p>
<p>GO</p>
<p>　</p>
<p>--- 4)</p>
<p>--- Output of this procedure is a text containing the definition of the extended events</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">exec </span></span></span><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;"><span style="color: #008080; font-family: Consolas; font-size: x-small;">CreateEventSessionFromTrace 1</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">,</span></span></span><span style="color: #ff0000; font-family: Consolas; font-size: x-small;"><span style="color: #ff0000; font-family: Consolas; font-size: x-small;"><span style="color: #ff0000; font-family: Consolas; font-size: x-small;">'XE_DefaultTemplateTrace'</span></span></span></p>
<p>go</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="background-color: #ffff00;">You get the output as</span> :</p>
<p>-- Event Session DDL autogenerated using ConvertTraceToExtendedEvent procedure.</p>
<p>-- (c) 2009 Microsoft Corporation.</p>
<p>CREATE EVENT SESSION XE_DefaultTemplateTrace</p>
<p>ON SERVER</p>
<p>ADD EVENT sqlserver.existing_connection</p>
<p>(ACTION (sqlserver.client_app_name, sqlserver.client_pid, sqlserver.nt_username, sqlserver.server_principal_name, sqlserver.session_id)</p>
<p>WHERE sqlserver.client_app_name NOT LIKE '%SQL Server Profiler - 644151b0-726e-41d8-bdda-d18cfbb10cb4%'</p>
<p>)</p>
<p>,</p>
<p>ADD EVENT sqlserver.login</p>
<p>(ACTION (sqlserver.client_app_name, sqlserver.client_pid, sqlserver.nt_username, sqlserver.server_principal_name, sqlserver.session_id)</p>
<p>WHERE sqlserver.client_app_name NOT LIKE '%SQL Server Profiler - 644151b0-726e-41d8-bdda-d18cfbb10cb4%'</p>
<p>)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong></strong>&nbsp;</p>
<p><strong>References:</strong></p>
<p>Mike Wachal's "Using Extended Events" blog article</p>
<p><a href="https://blogs.msdn.com/b/extended_events/archive/2010/12/10/migrating-from-sql-trace-to-extended-events.aspx">https://blogs.msdn.com/b/extended_events/archive/2010/12/10/migrating-from-sql-trace-to-extended-events.aspx</a></p>
<p>Thanks to Mike for providing the class file&nbsp;in this blog</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/39/35/63/TracetoXevents.dll" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-39-35-63/TracetoXevents.dll">TracetoXevents.dll</a></p>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server 2012: Always On FAQs</title>
      <link>https://docs.microsoft.com/archive/blogs/srgolla/sql-server-2012-always-on-faqs</link>
      <pubDate>Mon, 17 Sep 2012 14:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Krishna Golla]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/srgolla/2012/09/17/sql-server-2012-always-on-faqs/</guid>
      <description><![CDATA[As Always On is a new feature and many DBAs and Infrastructure teams have several questions...]]></description>
      <content:encoded><![CDATA[<p>As Always On is a new feature and many DBAs and Infrastructure teams have several questions regrading this solution, I thought of writing a blog post with one line answers for some of the most common FAQs on Always On solution. I will be adding more questions as we go. I have collected this information from MSDN articles, internal discussions etc.</p>
<p>&nbsp;<br /><span style="background-color: #ff9900;"><strong>Supportability:</strong></span><br />&nbsp;<br />1.&nbsp;Can we have AG created across multiple domains?&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; No<br />2.&nbsp;Can we have AG created against multiple clusters in the same domain? <br />&nbsp;&nbsp;&nbsp; No<br />3.&nbsp;Can we have 2 SQL Instances (Replicas) running on the same node, being part of the same AG? <br />&nbsp;&nbsp;&nbsp; No<br />4.&nbsp;Can we have AG created on 3rd party cluster solutions?<br />&nbsp;&nbsp;&nbsp;&nbsp;No<br />5.&nbsp;Is there a particular quorum model to create the cluster for&nbsp; AG?&nbsp; <br />&nbsp;&nbsp;&nbsp; No, Use the best quorum to keep your cluster online. <a href="https://msdn.microsoft.com/en-us/library/hh270280.aspx">https://msdn.microsoft.com/en-us/library/hh270280.aspx</a>.</p>
<p>6.&nbsp;Can we create an AG with local machines and VM machines in Windows Azure?<br />&nbsp;&nbsp;&nbsp;&nbsp;No, It is currently not supported on Windows Azure VMs(slated for future releases)<br />7.&nbsp;Can we replicate system databases in AGs? <br />&nbsp;&nbsp;&nbsp; No<br />8.&nbsp;Can we have AGs created across VMs on same physical host?<br />&nbsp;&nbsp;&nbsp; Yes you can<br />9.&nbsp;Do we support Cross database transactions in an AG?<br />&nbsp;&nbsp;&nbsp; No, we do not<br />10.&nbsp;Can we have Availability Groups for SQL 2012 32 bit running Windows 64 bit platforms?<br />&nbsp;&nbsp;&nbsp; No,&nbsp; it is not supported<br />11.&nbsp;Do we have any Windows hotfixes to be installed on Server 2008 to better support Always On?<br />&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdn.microsoft.com/en-us/library/ff878487.aspx#WinHotfixes">https://msdn.microsoft.com/en-us/library/ff878487.aspx#WinHotfixes</a> <br />&nbsp;<br />&nbsp;<br /><span style="background-color: #ff9900;"><strong>Setup\Installs:</strong></span></p>
<p>1. Do we require some kind of shared storage to create an AG?<br />&nbsp;&nbsp;&nbsp; &nbsp;Shared Storage is optional for AG. <br />2.&nbsp;Can we use same service accounts for all replicas?&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Yes if you want Kerberos Authentication to the listener<br />3.&nbsp;Do we need to use the same disk structure across all the availability replicas?<br />&nbsp;&nbsp;&nbsp; Not needed but recommended because of Add file operations.<br />&nbsp;<br />&nbsp;<br /><span style="background-color: #ff9900;"><strong>Failover Scenarios:</strong></span></p>
<p>1. What happens when your primary replica is offline? Which replica does your AG failover to? <br />&nbsp;&nbsp;&nbsp;&nbsp; AG fails over to the replica which has been configured for Automatic&nbsp; failover partner. If there are no automatic failover partners AG doesn&rsquo;t failover automatically<br />2.&nbsp;What happens when the original primary replica comes back again?<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; When the original primary comes back online, it will assume the role of a secondary and starts syncing pages with the current Primary.<br />3.&nbsp;What happens when you do a forced failover because primary is not available and the old primary comes back online after an hour in Async AG replicas? Do we have to re sync databases?<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No, you need not resync db's, the secondary(old primary) will sync the pages for transactions which were inflight with the current primary and then starts synchronizing . so no more resync<br />4.&nbsp;In a scenario, where your automatic failover secondary replica fails, will it automatically configure another sync replica to become Automatic.<br />&nbsp;&nbsp;&nbsp;&nbsp; No, It will not you have to manually failover to the sync replica. However you can convert a sync replica to automatic anytime.<br />5.&nbsp;Can we control which secondary replica it will failover if it is not configured for Automatic failover?<br />&nbsp;&nbsp;&nbsp; No, we do not . <a href="https://sqlcat.com/sqlcat/b/msdnmirror/archive/2012/03/30/do-not-use-windows-failover-cluster-manager-to-perform-availability-group-failover.aspx">https://sqlcat.com/sqlcat/b/msdnmirror/archive/2012/03/30/do-not-use-windows-failover-cluster-manager-to-perform-availability-group-failover.aspx</a></p>
<p><span style="background-color: #ff9900;"><strong>Integration with other Technologies:</strong></span><br />&nbsp;<br />1.&nbsp;Can we combine AG and DB Mirroring?<br />&nbsp;&nbsp;&nbsp; No, They do not interoperate. <a href="https://msdn.microsoft.com/en-us/library/hh710077.aspx">https://msdn.microsoft.com/en-us/library/hh710077.aspx</a><br />2.&nbsp;Can we combine AG and Replication?<br />&nbsp;&nbsp;&nbsp; Yes but Distributor is not supported<br />3.&nbsp;Can we combine AG and Log Shipping?<br />&nbsp;&nbsp;&nbsp; Yes it shouldn&rsquo;t stop <br />4.&nbsp;Can we configure AG for Sharepoint Server?<br />&nbsp;&nbsp;&nbsp;&nbsp; Yes, <a href="https://technet.microsoft.com/en-us/library/hh913923.aspx">https://technet.microsoft.com/en-us/library/hh913923.aspx</a><br />5.&nbsp;Can we create a DB snapshot on a secondary replica?<br />&nbsp;&nbsp;&nbsp;&nbsp;Yes<br />6.&nbsp;Can we use SSRS and AG together to query data from secondary replicas?<br />&nbsp;&nbsp;&nbsp; Yes, <a href="https://msdn.microsoft.com/en-us/library/hh882437.aspx">https://msdn.microsoft.com/en-us/library/hh882437.aspx</a><br />&nbsp;<br />&nbsp;<br /><span style="background-color: #ff9900;"><strong>Connectivity\Listener:</strong></span></p>
<p><br />1.&nbsp;Can you configure connection to AG listener as Kerberos? <br />&nbsp;&nbsp;&nbsp; Yes&nbsp; See above<br />2.&nbsp;How many network names\listener names can be associated to an AG?<br />&nbsp;&nbsp;&nbsp; 1 network name, more than 1 will be ignored even if present<br />3.&nbsp;Will SQL browser detect, if AG listener name is listening on a different port other than 1433<br />&nbsp;&nbsp;&nbsp; SQL Browser is not aware of the listener and cannot provide clients the information on which port the listener is running, you need to hard code the port number from the client side.<br />&nbsp;<br /><span style="background-color: #ff9900;"><strong>DNS\AD\Kerberos:</strong></span><br />1.&nbsp;Can we create an SPN for the AG listerner?<br />&nbsp;&nbsp;&nbsp; Yes, Use same service accounts across all of them<br />2.&nbsp;Can we create an SPN if the listener is listening on a different port number?<br />&nbsp;&nbsp;&nbsp; Yes, as long as the service accounts are same across all replicas<br />3.&nbsp;Can we create a Cname\Alias for the AG listener?<br />&nbsp;&nbsp;&nbsp; Yes and also you can manually create an SPN for it to force using Kerberos<br />&nbsp;<br /><span style="background-color: #ff9900;"><strong>Active Secondaries\ Manageability:</strong></span><br />1.&nbsp;What happens when 2 different secondary replicas backup the transaction log at the same time?<br />&nbsp;&nbsp;&nbsp; Only 1 replica can backup the log at a time, the other replica will be blocked waiting for backup lock resource<br />2.&nbsp;What happens when 2 different&nbsp; replicas run CHECKDB at the same time?<br />&nbsp;&nbsp;&nbsp;&nbsp; No issues<br />3.&nbsp;Is all my backup information located in a centralized location when we are using AG to do backup across all replicas?<br />&nbsp;&nbsp;&nbsp; No, it decentralized to each msdb on every replica<br />4.&nbsp;Do we need to have same file structures on all the replicas<br />&nbsp;&nbsp;&nbsp; Yes, it is recommended to have the same storage structure as it can impact a Add file operation.&nbsp; <a href="https://msdn.microsoft.com/en-us/library/hh510190.aspx">https://msdn.microsoft.com/en-us/library/hh510190.aspx</a><br />5.&nbsp;Can we configure our own policies in the Always on Dashboard? <br />&nbsp;&nbsp;&nbsp; Yes we can configure <br />6.&nbsp;What is a rolling upgrade?<br />&nbsp;&nbsp;&nbsp; Rolling upgrade is a process where we upgrade the secondary replicas first, failover and upgrade the primary replicas. Reduces Downtime</p>
<p>7. Can we backup logs on any secondary replica in the AG architecture?<br />&nbsp;&nbsp; &nbsp;Yes, we can backup logs on any secondary replica as long as the secondary replica is in Synchronizing or Synchronized states. We can also configure backup priority for these replicas.<br />&nbsp;<br />&nbsp;<br />&nbsp;<br /><span style="background-color: #ff9900;"><strong>Read Only Routing:</strong></span><br />&nbsp;<br />1.&nbsp;Will Read Only Routing use Kerberos? <br />&nbsp;&nbsp;&nbsp; Yes, as long as you have the same service accounts across and there is an SPN created for the secondary replica <br />2.&nbsp;What is the response when you connect to a AG listener to a db configured for ReadOnly Routing? <br />&nbsp;&nbsp;&nbsp; TDS token containing the secondary replica connection information.<br />3.&nbsp;What is the connection string item which distinguishes an application that it is intended for read only operations? <br />&nbsp;&nbsp;&nbsp; ApplicationIntent=ReadOnly;<br />4.&nbsp;Does ReadOnly routing do load balancing?<br />&nbsp;&nbsp;&nbsp; No, It doesn&rsquo;t. it only does routing . You need to configure your own solution for load balancing.<br />&nbsp;&nbsp;&nbsp; If there is more than one read only replica in the routing list, when the first replica in the routing list is offline, the connection will be routed to the next replica in the routing list.<br />&nbsp;<br />&nbsp;<br /><span style="background-color: #ff9900;"><strong>Performance:</strong></span><br />&nbsp;<br />1.&nbsp;How does AG improve failover times ?<br />&nbsp;&nbsp;&nbsp; As there is no database recovery during failovers, however if there is a long REDO queue there will be delay in online time following a failover.<br />2.&nbsp;Can we create indexes on the secondary replicas?<br />&nbsp;&nbsp;&nbsp;&nbsp; No<br />3.&nbsp;Can we create statistics on the secondary replicas?<br />&nbsp;&nbsp;&nbsp;&nbsp; No, However you can take advantage of the temporary statistics which are created on the secondary replica stored in the tempdb database.<br />4.&nbsp;What are the Impacts of Snapshot Isolation levels on secondary replicas?<br />&nbsp;&nbsp;&nbsp;&nbsp; All isolation levels are defaulted to snapshot isolation level, it impacts tempdb and also the local db as it will add a 14 byte pointer to every row on the primary and secondary<br />5.&nbsp;How many worker threads will be taken for every AG database?<br />&nbsp;&nbsp;&nbsp; Uses a request queue and worker thread pool. Minimum of 2, Now we implement a pool design<br />6.&nbsp;How many REDO threads can we have for an AG db?<br />&nbsp;&nbsp;&nbsp; One<br />7.&nbsp;Do secondary replicas talk to each other in case the primary is offline?<br />&nbsp;&nbsp;&nbsp; No, All the secondary replicas communicate with the Primary replica only. Incase the primary replica is offline and there is no automatic failover, all the secondary replicas go to RESOLVING state.<br />8.&nbsp;How do we avoid Split Brain mechanisms in Always On?<br />&nbsp;&nbsp;&nbsp; Quorum model in the cluster and lease expiration mechanism<br />9.&nbsp;How do we know which secondary replica has the least latency for a AG database?<br />&nbsp;&nbsp;&nbsp;&nbsp; Run sys.dm_hadr_database_ replica_states on all the secondaries and check for end_of_log_lsn for each secondary. The one with the highest has the least latency.<br />&nbsp;<br />&nbsp;<br />&nbsp;<br /><span style="background-color: #ff9900;"><strong>AG + FCI:</strong></span><br />&nbsp;<br />1.&nbsp;What is a race condition? How are we changing it in design<br />&nbsp;&nbsp;&nbsp; Race condition means where&nbsp; windows cluster failover and AG failover race against each other which can lead to unpredictable results. Hence in Always on FCI, we are disabling Automatic failover for AG<br />2.&nbsp;Do we have Automatic failover for AGs when they are clustered SQL Instance?&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; No, there is no automatic failover when your replicas are clustered SQL Instances.<br />&nbsp;<br /><span style="background-color: #ff9900;"><strong>Multi Site\Multi Subnet:</strong></span><br />&nbsp;<br />1.&nbsp;How do we configure AG to detect multisite subnets? <br />&nbsp;&nbsp;&nbsp; It automatically detects multiple subnets. <br />2.&nbsp;Can we use AG as inter data center DR solution?<br />&nbsp;&nbsp;&nbsp; Yes, however you need to make sure the network latencies <br />3.&nbsp;How do we configure SQL FCI instance across multiple data centers using AG as DR mechanism<br />&nbsp;&nbsp;&nbsp; See SQL CAT whitepapers explaining these solutions<br />4.&nbsp;Can we deploy AG in more than 2 subnets? <br />&nbsp;&nbsp;&nbsp; Yes<br />5.&nbsp;Is it possible to add a replica from a different subnet after the AG is created?<br />&nbsp;&nbsp;&nbsp; Yes we can, you need to manually add the IP address resource from the new subnet as a dependency to the AG listener name<br />6.&nbsp;What is the connection string which makes connections to all the registered IP address in parallel reducing the client connectivity time to the AG listener?<br />&nbsp;&nbsp;&nbsp; Multisubnetfailover='TRUE'<br />7.&nbsp;Is there a distance limitation for datacenters which can configure Always Ags as the DR solution?<br />&nbsp;&nbsp;&nbsp; No, there is no distance limitation. However network latencies between subnets shouldn&rsquo;t exceed 4000ms</p>
<p>8. What are the other considerations to keep in mind while configuring multisubnet failover solutions?<br />&nbsp;&nbsp;&nbsp; CrossSubnetDelay and DNS latency are very important while setting up these solutions. Please refer to <a href="https://technet.microsoft.com/en-us/library/dd197562(WS.10).aspx">https://technet.microsoft.com/en-us/library/dd197562(WS.10).aspx</a>&nbsp;for more information</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server Statistics: Explained</title>
      <link>https://docs.microsoft.com/archive/blogs/srgolla/sql-server-statistics-explained</link>
      <pubDate>Tue, 04 Sep 2012 14:14:00 GMT</pubDate>
      <dc:creator><![CDATA[Krishna Golla]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/srgolla/2012/09/04/sql-server-statistics-explained/</guid>
      <description><![CDATA[Several DBA&rsquo;s asked me these questions about SQL Server statistics at different customer...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Several DBA&rsquo;s asked me these questions about SQL Server statistics at different customer places.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">a)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Should we disable Auto update stats for the database and run maintenance plans instead? </span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">b)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">What sampling rate does Auto Stats use? Can we control it?</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">c)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Should we update statistics after rebuilding indexes during maintenance plans?</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><strong><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Here is an explanation for all these questions.</span></span></strong></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">There are 3 types of statistics in a SQL Server database.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">1)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Statistics created due to index creation. These statistics have the index name</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">2)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Statistics created by Optimizer(Column statistics). Starts with _<i>WA</i>_*</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">3)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">User defined statistics which are created with CREATE STATISTICS command by the DBA</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Facts about statistics:</span></span></b><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<ul>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Index statistics are always updated with fullscan when we rebuild the index (Only exception is in SQL 2012 partitioned index when the number of partitions &gt;1000 it uses default sampling)</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Column Statistics are not updated because of index rebuilds, they are only updated by either DB Auto update stats option or if we manually update statistics using UPDATE STATISTICS command.</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">If we do not specify the sampling rate while running the UPDATE STATISTICS command it will take the default sampling rate. See below how the default sampling rate algorithm works.</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">If you specify Update statistics command with just the table name it will update statistics for all the statistics including the index statistics on the table. So you may lose the full scan advantage which you get for index statistics if you update statistics with sampling rate after rebuilding indexes (Be very careful with this step during your maintenance windows)</span></span></li>
</ul>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><strong><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Auto Update stats Algorithm:</span></span></strong><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">So the Auto Update stats will fire for every 500 + 20% change in table rows. Of course, we have an improved algorithm in SQL 2012 which is SQRT(1000 * Table rows) which is much better.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">When it fires it will use the&nbsp; default sampling rate and here is the algorithm how it calculates the sampling rate.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">1)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">If the table &lt; 8MB then it updates the statistics with a fullscan.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">2)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">If the table &gt; 8MB, it follows an algorithm. It reduces the sampling rate as the number of rows in the table are increased to make sure we are not scanning too much data. This is not a fixed value but is under the control of optimizer. It is not a linear algorithm either.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Example: if we have 1,000,000 rows it would use a sampling rate of 30% but when the number of rows increase to 8,000,000 it would reduce the sampling rate to 10%. These sampling rates are not under the DBAs control but optimizer decides it.</span></span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><b>Question</b>: So, what if we disable Autostats on the database and decide to update statistics manually by the DBA using a scheduled job?</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><b>Answer</b>: It depends, on what the sampling rate was&nbsp; used by the optimizer versus what we specify manually. The larger the sampling rate the better the results.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here is how you can calculate the sampling rate used by Autostats algorithm, Run DBCC SHOW_STATISTICS(Tablename, statistic name), This will come up with Num of rows and Sampled rows. So you do a math,&nbsp; Sampling Rate = (sampled rows/Actual Rows)*100</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">In case you are running on SQL 2008 R2 SP2 or SQL 2012 SP1, there is a new DMV called as sys.dm_db_stats_properties where you can get the statistics sampling rate for all tables in the db.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">You can check this for every table and see which method has the largest sampling rate and select it. If you think manually updating statistics is yielding higher sampling rate, then you can run Sp_autostats &lsquo;OFF&rsquo; for that statistic and use your job to update it manually. In this way either the statistics are updated with Auto stats or updated manually yielding better execution plans for the optimizer.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Perils of updating statistics manually:</span></span></b></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">1)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Adds overhead for the DBA to write custom scripts for individual statistics</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">2)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">If the job fails, we don&rsquo;t have updated statistics until the next run.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">3)</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">If SQL Agent fails, then your update statistics job cannot run.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><b>Recommendation:</b> We would recommend to leave the Auto Stats option for the database to ON, and if there is a particular case where your seeing bad query plans on certain tables, just disable Autostats for that table and enable the manual statistics job for that table.</span></span></p>
<p><strong>References:</strong></p>
<p>Internal employees</p>
<p><a href="https://msdn.microsoft.com/en-us/library/dd535534.aspx">https://msdn.microsoft.com/en-us/library/dd535534.aspx</a></p>
<p><a href="https://www.sqlskills.com/blogs/erin/post/New-Statistics-DMF-in-SQL-Server-2008R2-SP2.aspx">https://www.sqlskills.com/blogs/erin/post/New-Statistics-DMF-in-SQL-Server-2008R2-SP2.aspx</a></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"></span>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server Scheduling Flowchart</title>
      <link>https://docs.microsoft.com/archive/blogs/srgolla/sql-server-scheduling-flowchart</link>
      <pubDate>Wed, 18 Jul 2012 16:23:00 GMT</pubDate>
      <dc:creator><![CDATA[Krishna Golla]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/srgolla/2012/07/18/sql-server-scheduling-flowchart/</guid>
      <description><![CDATA[&nbsp;
This is a basic flowchart explaining SQL Server Scheduling at a very high...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/6443.SQL%20Server%20Scheduling.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/6443.SQL-Server-Scheduling.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/6443.SQL%20Server%20Scheduling.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/6443.SQL-Server-Scheduling.png" /></a></p>
<p>&nbsp;</p>
<p>This is a basic flowchart explaining SQL Server Scheduling at a very high level.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>References:</strong></p>
<p><span id="btAsinTitle">Book: Professional SQL Server 2008 Internals and Troubleshooting </span></p>
<p><span>Book: Microsoft&reg; SQL Server&reg; 2008 Internals</span></p>
<p><span>Articles on <a href="https://www.sqlskills.com">www.sqlskills.com</a></span><span></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Failure sending mail: Retrieving the COM class factory for component with CLSID {CD000001-8B95-11D1-82DB-00C04FB1625D} failed due to the following error: 8007007e. Mail will not be resent.</title>
      <link>https://docs.microsoft.com/archive/blogs/srgolla/failure-sending-mail-retrieving-the-com-class-factory-for-component-with-clsid-cd000001-8b95-11d1-82db-00c04fb1625d-failed-due-to-the-following-error-8007007e-mail-will-not-be-resent</link>
      <pubDate>Tue, 26 Jun 2012 08:01:00 GMT</pubDate>
      <dc:creator><![CDATA[Krishna Golla]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/srgolla/2012/06/26/failure-sending-mail-retrieving-the-com-class-factory-for-component-with-clsid-cd000001-8b95-11d1-82db-00c04fb1625d-failed-due-to-the-following-error-8007007e-mail-will-not-be-resent/</guid>
      <description><![CDATA[Have you been seeing this error on your SSRS Subscriptions page.
Failure sending mail: Retrieving...]]></description>
      <content:encoded><![CDATA[<p>Have you been seeing this error on your SSRS Subscriptions page.</p>
<p><span style="color: #ff0000;">Failure sending mail: Retrieving the COM class factory for component with CLSID {CD000001-8B95-11D1-82DB-00C04FB1625D} failed due to the following error: 8007007e. Mail will not be resent.</span></p>
<p>&nbsp;</p>
<p>This generally occurs when you have missing DLL files which are required to send an email.</p>
<p>So how to troubleshoot this error?</p>
<p>1) We need to start of by identifying which DLL is causing this issue. So to start that get the CLSID value from the above &nbsp;error message itself.</p>
<p>2) Then try to find this key value in this registry path. <span style="background-color: #ff6600;">HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID</span></p>
<p>3) This will show you the exact DLL it is referring to. In my case it was &nbsp;<span style="background-color: #ff6600;">CDOSYS.DLL</span></p>
<p>4) The next thing we need to do is to download a tool called Dependency Walker. <a href="https://www.dependencywalker.com/">https://www.dependencywalker.com/</a> .Download load the latest version as per your system architecture.</p>
<p>5) Extract the zip file and Run depends.exe . Click on File Menu\Open. &nbsp;Browse to the folder location which contains this DLL. It is C:\Windows\System32 and select the CDOSYS.DLL file</p>
<p>6) Once you select the file, it will load all the dependent DLLs and point out&nbsp;any missing DLLs. This is the place where you can see which DLL files are missing and causing this error. It gives a clear message with the Error symbol</p>
<p>7) Once you have identified the missing DLL files, You can copy these file from another machine running the same OS version. In my case&nbsp;the missing DLL files were&nbsp;<span style="background-color: #ffff00;">INETCOMM.DLL</span> and <span style="background-color: #ffff00;">MSOERT2.DLL</span></p>
<p>8) Once i have copied these missing DLL files into the system32 folder, I was able to send emails from SSRS Email Subscriptions.</p>
<p>&nbsp;</p>
<p><strong>Background:</strong></p>
<p>SQL Server 2005 is running on a Windows 2003 SP2 Server</p>
<p>In Windows 2003, SSRS uses CDOSYS.DLL to send emails.</p>
<p>CDOSYS inturn uses INETCOMM.DLL and MSOERT2.DLL to send emails.</p>
<p>As these files are missing, We were getting the above error. These files are installed by the Outlook Express component. So as somebody uninstalled Outlook Express from the server. We were getting this error.</p>
<p>&nbsp;</p>
<p><strong>Note</strong>:- You need not register these DLLs after copying them from other machines as they are not COM DLLs.</p>]]></content:encoded>
    </item>
    <item>
      <title>SQL 2008 Cluster Install Errors :KB953748</title>
      <link>https://docs.microsoft.com/archive/blogs/srgolla/sql-2008-cluster-install-errors-kb953748</link>
      <pubDate>Thu, 09 Feb 2012 11:36:17 GMT</pubDate>
      <dc:creator><![CDATA[Krishna Golla]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/srgolla/2012/02/09/sql-2008-cluster-install-errors-kb953748/</guid>
      <description><![CDATA[In case you are getting cluster validation errors while installing SQL 2008 on Windows Cluster and...]]></description>
      <content:encoded><![CDATA[<p>In case you are getting cluster validation errors while installing SQL 2008 on Windows Cluster and you see the following message</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/7823.Error%20Message.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/7823.Error-Message.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/7823.Error%20Message.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/7823.Error-Message.png" width="513" height="387" /></a></p>
<p>&nbsp;</p>
<p>Please follow these directions to troubleshoot the problem:</p>
<p>1) Download Procmon from sysinternals <a href="https://technet.microsoft.com/en-us/sysinternals/bb896645">https://technet.microsoft.com/en-us/sysinternals/bb896645</a></p>
<p>2) Setup filt<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/2671.Process%20Monitor.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/2671.Process-Monitor.jpg"></a>ers in Procmon to include processname as "setup100.exe"</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/1563.Process%20Monitor.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/1563.Process-Monitor.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/1563.Process%20Monitor.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/350x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/1563.Process-Monitor.jpg" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/7536.Process%20Monitor.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/7536.Process-Monitor.jpg"></a></p>
<p>&nbsp;3) Now,Go to the installation screen and Click on "Re Run" Validation</p>
<p>4) You see that the installation failed with the same message. That's fine.</p>
<p>5) Now, go to your procmon window and search for the word "Validation Data for Node Set".</p>
<p>6) Copy filename of the XML file present in that record which you got. (Big GUID value)</p>
<p>6) Compare this filename with the &nbsp;filename present in <span style="color: #1f497d; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><a href="file://\\servername\admin$\cluster\reports\">\\servername\admin$\cluster\reports\</a></span><span style="color: #000000; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">&nbsp;or sometimes <span style="color: #1f497d; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">C:\Windows\cluster\reports</span></span></p>
<p><span style="color: #000000; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">7) If the filenames are different, Modify the filename in the reports folder with the filename you got from procmon. Take a backup of the original file as a precaution before the rename process.</span></p>
<p>8) Peform this on all the nodes of the cluster where you want to install SQL.</p>
<p>9) Now click on Re Run Validation button on the Installation screen and you should be good to go ahead with the install.</p>
<p><strong></strong>&nbsp;</p>
<p><strong>Conclusion</strong>: Your setup is looking for a different validation file than the one which is actually present.Hence, We are modifying the validation filename so that the setup can continue to run.</p>
<p>&nbsp;Happy Installation!</p>
<p>&nbsp;</p>
<p>Thank you</p>
<p>Krishna Golla</p>]]></content:encoded>
    </item>
    <item>
      <title>Unable to open the MSSQL install folders - Transfer Ownership Issue</title>
      <link>https://docs.microsoft.com/archive/blogs/srgolla/unable-to-open-the-mssql-install-folders-transfer-ownership-issue</link>
      <pubDate>Wed, 24 Aug 2011 16:16:45 GMT</pubDate>
      <dc:creator><![CDATA[Krishna Golla]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/srgolla/2011/08/24/unable-to-open-the-mssql-install-folders-transfer-ownership-issue/</guid>
      <description><![CDATA[Today, While trying to simulate an SRDF copy scenario to one of my customer. I was trying to copy...]]></description>
      <content:encoded><![CDATA[<p>Today, While trying to simulate an SRDF copy scenario to one of my customer. I was trying to copy the system and the user database files to another machine.</p>
<p>I was trying to copy all the files from the location "<span style="font-family: 'Segoe UI'; direction: ltr; word-wrap: break-word; color: #000000; font-size: 10pt;">C:\Program files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data"&nbsp;it is a &nbsp;SQL 2008 R2 standalone instance&nbsp;on a Windows 2008 R2 machine.</span></p>
<p><span style="font-family: 'Segoe UI'; direction: ltr; word-wrap: break-word; color: #000000; font-size: 10pt;"></span></p>
<p>I was getting an<span style="color: #ff0000;"> "Access is Denied"</span> message. and it was not letting me to go inside the MSSQL folder.</p>
<p>Initially, I was wondering whether my account didnt have enough access,</p>
<p>1) so&nbsp;checked to make sure that it was under the Administrators group and it was there.</p>
<p><span style="font-family: 'Segoe UI'; direction: ltr; word-wrap: break-word; color: #000000; font-size: 10pt;"></span></p>
<p>2) Then I used runas command to Run as an Administrator but was still not able to open the MSSQL folder.</p>
<p>3) SQL Server was up and running and it was able to see all the databases. So,&nbsp;I tried to run as the SQL Service account to see the folder. But still no luck. It failed with the exact same message.</p>
<p>Hmmm I was wondering what's going on , why am I unable to browse the folders and how&nbsp;SQL is able to see those files.</p>
<p>After some reserach I found that the&nbsp;MSSQL folder was missing Owner permissions.</p>
<p>When I checked for the Current Owner (Folder Properties -&gt;Security tab-&gt;click on any user or group name-&gt;Advanced -&gt;Owner tab) . It was showing as <span style="color: #ff0000;">"Unable to display the current Owner"</span></p>
<p>Then, I went ahead and clicked on the Edit button at the bottom to add a Owner to the folder.</p>
<p>Which had the "Change Owner to" area&nbsp;where I picked the right owner and finally checked the box at the bottom to "Replace Owner on Subcontainers and Objects"</p>
<p>Then&nbsp; I was able to browse all those folders and copy the files and was able to resume my original work.&nbsp;</p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/8535.sqlexprerts2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/8535.sqlexprerts2.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/47/33/8535.sqlexprerts2.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-47-33/8535.sqlexprerts2.jpg" /></a></p>
<p>It was a very small setting but gave a hard time.</p>
<p>Krishna Golla</p>
<p><a href="https://unlockforus.blogspot.com/2007/10/unlockforme-denied-opening-folder-in.html">https://unlockforus.blogspot.com/2007/10/unlockforme-denied-opening-folder-in.html</a></p>]]></content:encoded>
    </item>
    <item>
      <title>My first blog entry</title>
      <link>https://docs.microsoft.com/archive/blogs/srgolla/my-first-blog-entry</link>
      <pubDate>Fri, 19 Aug 2011 10:36:00 GMT</pubDate>
      <dc:creator><![CDATA[Krishna Golla]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/srgolla/2011/08/19/my-first-blog-entry/</guid>
      <description><![CDATA[Hi Everyone,
I am Sri Krishna Raghavender Golla. I work for Microsoft as SQL Premier Field...]]></description>
      <content:encoded><![CDATA[<p>Hi Everyone,</p>
<p>I am Sri Krishna Raghavender Golla. I work for Microsoft as SQL Premier Field Engineer. I will post all&nbsp;my experiences with the SQL Server product and&nbsp;I want to share all&nbsp;my experiences and my learnings&nbsp;to the&nbsp;SQL community.</p>
<p>Please provide me some feedback if there is anything that needs to be improved on my blog</p>
<p>Thank you.</p>
<p>Krishna Golla</p>]]></content:encoded>
    </item>
  </channel>
</rss>