<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title> Mat Stephen's SQL Server WebLog : High Availability and Disaster Recovery</title><link>http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx</link><description>Tags: High Availability and Disaster Recovery</description><dc:language>en-GB</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>SQL 2005: Making sense of the new Optimistic Concurrency Controls and the readers that block writers</title><link>http://blogs.technet.com/mat_stephen/archive/2005/09/06/Concurrency-.aspx</link><pubDate>Tue, 06 Sep 2005 20:11:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:410349</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/410349.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=410349</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;For a long time now Oracle enthusiasts have bashed SQL Server for not having Optimistic Concurrency Controls.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They would demonstrate a SQL Server reader blocking a writer and possibly a writer blocking a reader.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Thus, having appeared to demonstrate that SQL can&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t handle these two operations concurrently, they would therefore conclude that SQL can&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t scale - certainly not to enterprise level workloads; workloads that involve lots of people writing to a database at the same time as lots of people wanting to read from it.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;This, of course, is a rather dirty trick; you only have to look at http://www.microsoft.com/sql/evaluation/compare/benchmarks.mspx to see SQL Server 2000 performance against various typical 3rd party LOB application workloads that involve reading and writing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;So how did/do they perform these mischievous tricks - here&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;s how:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Open connection 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;USE AdventureWorks&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;BEGIN TRANSACTION&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;UPDATE Production.Product&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SET StandardCost = 5.0,&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ListPrice = 11.50&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;WHERE Name LIKE &lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;%sock%&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Open connection 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;USE AdventureWorks&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SELECT&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Name,&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;StandardCost,&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ListPrice&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FROM Production.Product&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;WHERE Name LIKE &lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;%Sock%&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;You will now see that connection 2 will not return anything - instead it just sits there doing nothing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here the writer on connection 1 blocks the reader on connection 2.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This blocking will continue until connection 1 either commits or rollbacks the transaction it started with BEGIN TRANSACTION.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Well it would be very easy, at this stage, to get into a religious slanging match - and you know I don&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t do religion very easily.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Luckily, with SQL 2005, I don&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t even have to think about get religious about this situation, because SQL Server 2005 now supports the necessary isolation levels to stop this happening.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;At this point I&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;m reminded of an old joke told by Tommy Cooper:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Bloke goes to see a Doctor, he lifts his arm in the air and says, "Doctor, every time I do this it hurts."&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And the Doctor says, "Well don&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t do it then."&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;I&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;m reminded of this joke because if you begin a transaction, update a value and then you find it causes other people problems - I would suggest you don&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t do it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Why begin a transaction, do some work and then walk off without committing it?&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Okay - so you might have a &lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;really big update&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt; that takes ages to run and it can&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t be batched up into smaller transactions and you need to run some very long running reports that have to have a transactionally consistant view of the data.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Indeed; you might also be very unlucky and get struck by lightening!&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;In SQL 2000 there are various ways to obviate the encumbrance of this &lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;really big update&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt; and nasty report – but I don&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t want to go down that road, like I said I want to avoid a religious debate.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Now, in SQL 2005, we have exactly the same capability as Oracle to make such an operation very easy for the developer.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Like Oracle, this capability employs the concept of &lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;versioning&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;, which means each connection in the above scenario will work with its own version of the data, thus avoiding contention.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;However as with Oracle, versioning takes up both processing and i/o at the server, resources that are potentially very expensive and not to be wasted if you don&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t have to.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Does Oracle do any benchmarks with this feature turned on? &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;I don&lt;st1:PersonName w:st="on"&gt;'&lt;/st1:PersonName&gt;t think so, and nor would SQL for that matter.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;I will argue that versioning is frequently used as a way to make developers jobs easier and not because it’s actually necessary.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;By that I also mean it makes it easier for developers to write sloppy code - and by that you can happily infer I believe it makes it easier to employ cheaper developers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;So how do we go about &lt;S&gt;employing these cheaper developers&lt;/S&gt;, sorry, reducing contention on the database?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To do this we now have two new isolation levels:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;1. SNAPSHOT ISOLATION (Transaction-level Snapshot)&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;Administrators must set the new ALLOW_SNAPSHOT_ISOLATION&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;database option to allow Snapshot Isolation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;In order to start a transaction that uses Snapshot Isolation a developer must SET TRANSACTION ISOLATION LEVEL SNAPSHOT&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;RESULT: Every statement within a Snapshot Isolation Transaction sees the same version of data comprised only of committed changes which occurred before the start &lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;of the transaction.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Other statements inside other transactions do not see the changes made inside this Snapshot Isolation Transaction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;2. READ COMMITTED WITH SNAPSHOT ISOLATION (Statement-level Snapshot)&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;Administrators must set the new READ_COMMITTED_SNAPSHOT database option to allow Read Committed Snapshot Isolation&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;No further application level changes are required to have statements use Read-Committed Isolation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;RESULT: Each statement sees a version of the data that was committed just before the statement began, instead of when the resource is read.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp; &lt;/SPAN&gt;This is merely a new implementation of read committed that is non-locking and non-blocking; the data is accurate only as at the start of the statement. &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=410349" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Business+Intelligence/default.aspx">Business Intelligence</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/T-SQL/default.aspx">T-SQL</category></item><item><title>Follow up on Database snapshot performance question from SQL Server™ 2005 High Availability TechNet evening 21/6/05</title><link>http://blogs.technet.com/mat_stephen/archive/2005/06/22/406719.aspx</link><pubDate>Wed, 22 Jun 2005 22:31:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:406719</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/406719.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=406719</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Follow up on Database snapshot performance question from SQL Server™ 2005 High Availability TechNet evening 21/6/05&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Question; how does a snapshot database perform compared to the original database when it comes to querying – can it make use of the indexes on the original database?&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Thanks to my colleague in the States, Lewis Bruck, I can confirm that all pages in the database (including index pages) are available to the snapshot database.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Query performance on the snapshot compared to the original database depends on a number of factors: the snapshot is read-only, so fewer locks are obtained, but copied data can introduce disk fragmentation requiring more read costs.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=406719" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Post+Event+Follow+Up/default.aspx">Post Event Follow Up</category></item><item><title>Follow up on Witnesses question from SQL Server™ 2005 High Availability TechNet evening 21/6/05</title><link>http://blogs.technet.com/mat_stephen/archive/2005/06/22/406683.aspx</link><pubDate>Wed, 22 Jun 2005 15:29:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:406683</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/406683.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=406683</wfw:commentRss><description>&lt;P&gt;Database Mirroring:&lt;/P&gt;
&lt;P&gt;How many witness can you have in quorum? - One&lt;/P&gt;
&lt;P&gt;How many witnesses can you have on one box? - Many&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=406683" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Post+Event+Follow+Up/default.aspx">Post Event Follow Up</category></item><item><title>Two SQL 2005 TechNet Evenings I'll be delivering in Reading, UK</title><link>http://blogs.technet.com/mat_stephen/archive/2005/06/07/406012.aspx</link><pubDate>Tue, 07 Jun 2005 13:15:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:406012</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/406012.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=406012</wfw:commentRss><description>&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;For those of you in the area, I'll be presenting these two TechNet evenings in Reading UK - it would be good to see you there!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;14 th June&lt;/STRONG&gt; Session Abstract: Microsoft SQL Server 2005 is the next version of the successful SQL Server product family. This new edition offers a number of enhancements to provide a product for today’s environment. This session looks at the key areas that concern IT professionals. We look at various security enhancements, including the authentication changes and the granularity of permissions that the product allows. We look at availability and the changes to improve service availability and replication of data. We also cover the improvements in the manageability of the product. &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Booking URL: &lt;A href="https://msevents-eu.microsoft.com/cui/EventDetail.aspx?culture=en-GB&amp;amp;eventid=118753366"&gt;https://msevents-eu.microsoft.com/cui/EventDetail.aspx?culture=en-GB&amp;amp;eventid=118753366&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;21st June&lt;/STRONG&gt; Session Abstract: There are a number of barriers to availability, and only some of these are addressable by DBMS technology. This session looks at some of the features of SQL Server 2005, the next release of the SQL Server product, that can help address some of these barriers. We look at three specific areas: database server failure or disaster, user or application error, and data access concurrency limitations, and also discuss database mirroring and clustering. &lt;/P&gt;
&lt;P&gt;Booking URL: &lt;A href="https://msevents-eu.microsoft.com/cui/EventDetail.aspx?culture=en-GB&amp;amp;eventid=118753378"&gt;https://msevents-eu.microsoft.com/cui/EventDetail.aspx?culture=en-GB&amp;amp;eventid=118753378&lt;/A&gt;&lt;BR&gt;&lt;A href="https://msevents-eu.microsoft.com/cui/EventDetail.aspx?culture=en-GB&amp;amp;eventid=118753378"&gt;&lt;B&gt;&lt;U&gt;&lt;FONT color=#0000ff&gt;&lt;/B&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=406012" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category></item><item><title>Processing XML Showplans Using SQLCLR in SQL Server 2005 - Make Use of the New XML Showplans</title><link>http://blogs.technet.com/mat_stephen/archive/2005/05/23/405284.aspx</link><pubDate>Mon, 23 May 2005 18:23:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:405284</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/405284.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=405284</wfw:commentRss><description>&lt;P&gt;SQL 2005 now provides Showplan (Query plan) output in XML - why? To make it easier for a&amp;nbsp;dba/developer to write TSQL, or other code,&amp;nbsp;that can&amp;nbsp;determine the cost of a query and thus dynamically determine if the query should be prevented from running based on the load it will&amp;nbsp;create on the server.&lt;/P&gt;
&lt;P&gt;To make it easy to capitalise on this new feature this article &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/xmlshowplans.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/xmlshowplans.asp&lt;/A&gt;&amp;nbsp;provides all the supporting code for two example solutions.&amp;nbsp; The difference between the two methods is due to the fact that XQuery queries can not be used&amp;nbsp;for in-process data access - so one solution uses purely XPath and the other with a mix of both XPath and XQuery.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=405284" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category></item><item><title>TechNet Roadshow Example code for Microsoft SQL Server 2005 Table partitioning</title><link>http://blogs.technet.com/mat_stephen/archive/2005/04/18/403834.aspx</link><pubDate>Mon, 18 Apr 2005 17:49:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:403834</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/403834.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=403834</wfw:commentRss><description>&lt;P&gt;For those who want to give this a try, this is the code I've been using on the 2K5 H1 roadshow for my SQL 2k5 Table Partitioning demo.&lt;/P&gt;
&lt;P&gt;USE AdventureWorks&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;ALTER DATABASE AdventureWorks ADD FILEGROUP FG1&lt;BR&gt;ALTER DATABASE AdventureWorks ADD FILEGROUP FG2&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;ALTER DATABASE AdventureWorks &lt;BR&gt;ADD FILE &lt;BR&gt;( NAME = dat1,&lt;BR&gt;&amp;nbsp; FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\dat1.ndf',&lt;BR&gt;&amp;nbsp; SIZE = 1MB,&lt;BR&gt;&amp;nbsp; MAXSIZE = 100MB,&lt;BR&gt;&amp;nbsp; FILEGROWTH = 1MB)&lt;BR&gt;TO FILEGROUP FG1&lt;/P&gt;
&lt;P&gt;ALTER DATABASE AdventureWorks &lt;BR&gt;ADD FILE &lt;BR&gt;( NAME = dat2,&lt;BR&gt;&amp;nbsp; FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\dat2.ndf',&lt;BR&gt;&amp;nbsp; SIZE = 1MB,&lt;BR&gt;&amp;nbsp; MAXSIZE = 100MB,&lt;BR&gt;&amp;nbsp; FILEGROWTH = 1MB)&lt;BR&gt;TO FILEGROUP FG2&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;--Step 1&lt;BR&gt;USE AdventureWorks&lt;BR&gt;GO&lt;BR&gt;--Create the partition function&lt;BR&gt;CREATE PARTITION FUNCTION StorePF (int)&lt;BR&gt;AS RANGE RIGHT FOR VALUES (350)&lt;/P&gt;
&lt;P&gt;--Step 2&lt;BR&gt;--Create the partition scheme&lt;BR&gt;CREATE PARTITION SCHEME StorePS AS &lt;BR&gt;PARTITION StorePF TO (FG1, FG2)&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;--Step 3&lt;BR&gt;--Create the partitioned table&lt;BR&gt;CREATE TABLE Sales.PartitionedStore(&lt;BR&gt;&amp;nbsp;StoreID int NOT NULL PRIMARY KEY,&lt;BR&gt;&amp;nbsp;Name nvarchar(50)) &lt;BR&gt;ON StorePS (StoreID)&lt;/P&gt;
&lt;P&gt;--Add data into the partitioned table&lt;BR&gt;--from the existing Store table&lt;BR&gt;INSERT INTO Sales.PartitionedStore SELECT CustomerID, Name FROM Sales.store&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;--Step 4&lt;BR&gt;--Retrieve your partition information&lt;BR&gt;--Displays each row in the table and the partition it is stored on.&lt;BR&gt;SELECT StoreID, Name, $partition.StorePF(StoreID)&lt;BR&gt;FROM Sales.PartitionedStore&lt;/P&gt;
&lt;P&gt;--Step 5&lt;BR&gt;--You can also display partition information for a row.&lt;BR&gt;--In this case for the row with storeID of 349.&lt;BR&gt;SELECT $partition.StorePF (349)&lt;/P&gt;
&lt;P&gt;--In this case for the row with storeID of 350.&lt;BR&gt;SELECT $partition.StorePF (350)&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=403834" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Business+Intelligence/default.aspx">Business Intelligence</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category></item><item><title>The Final Word in Microsoft SQL Server 2000 Backup, Restore and recovery</title><link>http://blogs.technet.com/mat_stephen/archive/2005/03/30/403115.aspx</link><pubDate>Wed, 30 Mar 2005 16:28:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:403115</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/403115.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=403115</wfw:commentRss><description>&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;I am pleased to be able to point you to the last word in SQL Server 2000 Backup and Restore methods.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;At last all the answers in one place!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;SQL Server 2000 Backup and Restore&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;Published: March 1, 2005&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;Author: Pankaj Agarwal&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;Published: February, 2005&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;Summary: This paper discusses the types of backups that are available in SQL Server 2000 and how backup functionality can be used in a disaster recovery plan. It includes general recommendations on how to improve backup and restore throughput and several case scenarios.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;&lt;A href="http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sqlbackuprest.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sqlbackuprest.mspx&lt;/A&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=403115" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category></item><item><title>Microsoft SQL Server Performance Top Tip: Degrees of Parallelism and a Degree of Uncertainty</title><link>http://blogs.technet.com/mat_stephen/archive/2005/02/08/369120.aspx</link><pubDate>Tue, 08 Feb 2005 17:50:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:369120</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/369120.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=369120</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Max degree of parallelism is an advanced configuration option in SQL Server about which many question have been asked and much written.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In this blog entry I hope to offer some insight and certainty as to what this option does and how it should be used.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Firstly, I must dispel any idea you might have, that this setting has anything to do with how many processors SQL Server can use when trying to service more than one connection (or user) – it hasn’t.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If SQL Server has access to four idle processors and it has four processes to run, it will use all four processors – regardless of the max degree of Parallelism.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;So what does this option do?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This option sets the maximum number of processors SQL Server can use for one query.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If SQL Server has to bring back a lot of data (lots of rows) for a query it sometimes makes sense to break the query down into a number of smaller queries, each query returning a subset of the total rows.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This way SQL Server can make use of more than processor and hence on multi processor boxes it can potentially return a lot of rows more quickly, for a given query, than it can on a single processor box.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;There are a number of criteria that have to be met before SQL Server will invoke ‘Intra Query Parallelism’ (breaking the query down into more than one stream), there’s no point in detailing them here you can find them in BOL under ‘Degree of parallelism’.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Suffice to say the decision is based on the available memory on the box and most importantly the availability of the processors.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;So why do we need to think about this option – well because leaving it on the default (letting SQL Server decide) can sometimes give you undesirable effects.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These effects are:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0cm" type=1&gt;
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;Queries may go slower with parallelism. 
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;Query time for a particular query may become non-deterministic and this can annoy users.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The time may vary because: 
&lt;OL style="MARGIN-TOP: 0cm" type=a&gt;
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt"&gt;The query may sometimes go parallel and sometimes it may not. 
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt"&gt;The query may get blocked by a parallel query in front of it hogging the processors.&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Before we go on, I don’t think there’s any real benefit in diving into the internals of parallelism, if you’re interested you can look at ‘Parallel Query Processing’ in Books on Line for more detailed information.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I think there are only two important things to know about the internals of parallelism:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level3 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN style="mso-list: Ignore"&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;Parallel queries may spawn many more threads than specified in the Max degree of parallelism option.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;DOP 4 could allow for 12+ threads, four for the query and the extra threads being used for sorts, threads, aggregates and gathering etc.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level3 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN style="mso-list: Ignore"&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;Parallel queries can cause spids to wait with a waittype of CXPACKET or 0X0200&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;So armed you can now identify spids waiting parallel operations as they will have a waittype of CXPACKET in sysprocesses.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To help you here you can use the stored procs in my blog &lt;A href="http://blogs.msdn.com/mat_stephen/archive/2005/01/25/359848.aspx"&gt;CREATE proc track_waitstats &amp;amp; CREATE proc get_waitstats - useful code for diagnosing SQL 2000 performance &lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;So ‘&lt;B style="mso-bidi-font-weight: normal"&gt;Queries may go slower with parallelism&lt;/B&gt;’ how come?&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0cm" type=1&gt;
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt"&gt;If the system has a very poor data throughput on the disk subsystem(s) then query decomposition is unlikely to go faster. 
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt"&gt;Possible skew of data, or possible lock in a data range for a cpu, meaning one parallel process is behind, etc. 
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt"&gt;If there is a missing an index for a predicate that results in a table scan.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A parallel query operation may hide the fact that the query would run much faster as a serial plan with an appropriate index.&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Consequently it is recommend you test without parallelism (DOP=1) so these issues can be identified.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;The other effects of parallelism mentioned above should be self explanatory and should lead you to the idea that intra query parallelism is not really appropriate for OLTP applications.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These are apps where varying query time can annoy users and where a server servicing a number of concurrent users is unlikely to choose a parallel plan because of the cpu workload profile.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;So if you are going to employ parallelism it is most likely going to be in a data warehouse, decision support or reporting scenario, where there are a low number of high workload queries on a big fat box with plenty of memory.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;So you have decided to employ parallelism – what should you set DOP to.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Well one guideline that crops up internally is that if you have 8 processors then DOP = 4 is likely to be the optimal setting.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However there is no mast and no flag pinned to it here – testing is the only way to be sure.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Further to this I have not seen any other figures, but having said all that, my advice would be to never set this figure to anything more than half the number of processors I have.&amp;nbsp; If I have less than 6 processors I would set DOP to 1 - which doesn't allow any parallelism to take place.&amp;nbsp; I might make an exception if I had a database that was only going to support a single user process (some sort of data warehousing or reporting task) – here the exception would be to set DOP to 0 (default) which lets SQL decide. &lt;BR&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Before I finish my ramble – beware that parallel index creation will depend on the figure you set for DOP.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This means you may want to change it at times to suit what you’re doing and of course you can use the MAXDOP query hint to override the configuration option for those out of hours jobs.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Finally your query may go slower using parallelism due to a bug – make sure you have the latest service pack.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=369120" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Performance+Top+Tips/default.aspx">Performance Top Tips</category></item><item><title>I'm trying to find some detail on Patch management / deployment on a 4 SQL Server node cluster?</title><link>http://blogs.technet.com/mat_stephen/archive/2005/02/01/364638.aspx</link><pubDate>Wed, 02 Feb 2005 00:28:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:364638</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/364638.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=364638</wfw:commentRss><description>&lt;p&gt;Stephen Daborn asked this question on my &lt;A href="http://blogs.msdn.com/mat_stephen/archive/2004/12/15/311093.aspx"&gt;High Availability blog entry&lt;/a&gt; and I didn't get back before the post closed - sorry Stephen - been doing a lot of snow boarding recently.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;Anyway its a good question and it deserves an answer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;The best thing to do is to read the readme that comes with any service pack, hotfix, patch or whatever.&amp;nbsp; For instance if you look in the readme for service pack 3a @ &lt;a href="http://support.microsoft.com/default.aspx?scid=/support/servicepacks/SQL/2000/SP3ReadMe.asp#_installing_on_a_failover_cluster"&gt;http://support.microsoft.com/default.aspx?scid=/support/servicepacks/SQL/2000/SP3ReadMe.asp#_installing_on_a_failover_cluster&lt;/a&gt;&amp;nbsp;you'll see all the steps you need.&amp;nbsp; For additional information on installing SP3a on a failover cluster, see Knowledge Base article &lt;a href="http://go.microsoft.com/fwlink/?linkid=12110" target="_blank"&gt;811168&lt;/a&gt;&amp;nbsp;- this is also referenced in the readme.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;Always read the readme as the instructions may change between patches.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;It should be possible to keep the&amp;nbsp;downtime to a minimum -&amp;nbsp;most of the time you should find this&amp;nbsp;no more than the time taken to failover to a patched node and not the time it takes to actually install the patch.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=364638" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Free+SQL+Server+Tools_2C00_+Utilities+and+Addins/default.aspx">Free SQL Server Tools, Utilities and Addins</category></item><item><title>Oracle RAC, Grid, IBM, and Microsoft: A Corporate Altercation or Religious Divergence</title><link>http://blogs.technet.com/mat_stephen/archive/2005/01/10/349865.aspx</link><pubDate>Mon, 10 Jan 2005 15:50:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:349865</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/349865.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=349865</wfw:commentRss><description>&lt;P&gt;People often ask me, “When Microsoft is going to get into the type of clustering as defined by Oracle’s RAC (Real Application Clusters)?”&amp;nbsp; Generally, I find these are people who believe the technical concepts behind RAC are the way of the future, so naturally conclude that Microsoft will want to follow.&lt;/P&gt;
&lt;P&gt;I have a simple answer to the question, “Microsoft doesn’t intend to implement such a technology”.&amp;nbsp; Naturally this is followed by a pause that demands I say why, so I oblige with the simplest explanation I can muster.&amp;nbsp; “Microsoft believes RAC’s promise of scalability is flawed, flawed by bottle necks in the interconnects between cluster nodes.”&lt;/P&gt;
&lt;P&gt;Beyond this I don’t go any further, because I don’t think I need to and because I fear I might step wide of the DOJ’s antitrust consent decree that Microsoft had to sign up to.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Taking the later point; compliance with the DOJ’s antitrust consent decree requires Microsoft does not abuse its monopoly position.&amp;nbsp; This means, as a Microsoft employee, I am not allowed to say anything about our competitors that might be deemed combative or demeaning.&amp;nbsp; For instance, I learn I can no longer refer to a company that runs Oracle as an ‘Oracle shop’.&amp;nbsp; So, knowing that I can demonstrate a combative steak, I feel very reluctant about commenting on our competitors products, for fear of contravening the decree.&lt;/P&gt;
&lt;P&gt;Taking the former point, I don’t need to tell you what I think about RAC because there’s so much out there that’s already been said.&amp;nbsp; All I need to do is point to it.&amp;nbsp; In the first instance, I’m going to point you to a document from IBM that describes what IBM thinks about RAC.&amp;nbsp; Notice how ‘gloves off’ this document is; solid combative stuff from a company, I can only imagine, is not inhibited by court rulings – lucky them!&lt;/P&gt;
&lt;P&gt;IBM’s document: A Technical Discussion of High Availability and Crash Recovery:&lt;BR&gt;&lt;A href="http://www-306.ibm.com/software/data/highlights/rac.pdf"&gt;http://www-306.ibm.com/software/data/highlights/rac.pdf&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;In the second instance, I’m going to point you to a document from Microsoft that describes what Microsoft cautiously thinks about RAC.&lt;/P&gt;
&lt;P&gt;Microsoft’s document: The Reality behind Oracle Real Application Clusters (RAC) Marketing Messages:&lt;BR&gt;&lt;A href="http://www.microsoft.com/sql/evaluation/compare/oracle-rac.asp"&gt;http://www.microsoft.com/sql/evaluation/compare/oracle-rac.asp&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Spot the difference in style – amusing isn’t it?&amp;nbsp; &lt;/P&gt;
&lt;P&gt;First and foremost I’m a technologist, I am keen to see a balanced discussion and consequently I am all too happy to provide links to Oracle’s rebuttal to both these articles. &lt;/P&gt;
&lt;P&gt;Oracle’s rebuttal to IBM’s paper: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.oracle.com/technology/deploy/availability/pdf/DB2_HaCrash_Response.pdf"&gt;http://www.oracle.com/technology/deploy/availability/pdf/DB2_HaCrash_Response.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Oracle’s rebuttal to Microsoft’s paper: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.oracle.com/technology/products/database/clustering/pdf/MSSQL_Rebuttal.pdf"&gt;http://www.oracle.com/technology/products/database/clustering/pdf/MSSQL_Rebuttal.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Again in the interests of fair play, I should point out that Microsoft’s paper has been updated since Oracle wrote their rebuttal.&lt;/P&gt;
&lt;P&gt;Go read and form your own opinion.&lt;/P&gt;
&lt;P&gt;PS - Thanks to Chris's comment we have some more debate, in his words:&lt;/P&gt;
&lt;P&gt;"I thought you might like to know that there has been another paper published on this subject around RAC, availability and suchlike .. very detailed and definitely a (and fair) read:"&amp;nbsp; This white paper from SQL Server Architect James Hamilton discusses the problems that Oracle Real Application Cluster (RAC) is designed to solve, and presents alternative technologies and trends that often increase application availability and scalability in a more effective way.&lt;BR&gt;&lt;A href="http://www.microsoft.com/sql/evaluation/compare/oracle_rac2.asp"&gt;http://www.microsoft.com/sql/evaluation/compare/oracle_rac2.asp&lt;/A&gt;"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=349865" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Oracle/default.aspx">Oracle</category></item><item><title>SQL Server Health and History Tool (SQLH2)</title><link>http://blogs.technet.com/mat_stephen/archive/2005/01/07/348346.aspx</link><pubDate>Fri, 07 Jan 2005 19:23:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:348346</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/348346.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=348346</wfw:commentRss><description>&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;This tool has been available for a couple of months but I only found out about it yesterday; I was reading some stuff about SQL Server 2005 and found a reference to say this tool will be supported in SQL 2k5.&amp;nbsp; Realising such downloads have sometimes escaped me I’ve decided to subscribe to Download Notifications &lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a href="http://www.microsoft.com/downloads/render.aspx?displaylang=en&amp;amp;content=notifications"&gt;http://www.microsoft.com/downloads/render.aspx?displaylang=en&amp;amp;content=notifications&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;strong&gt;From the website SQLH2:&lt;/strong&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=eedd10d6-75f7-4763-86de-d2347b8b5f89&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=eedd10d6-75f7-4763-86de-d2347b8b5f89&amp;amp;DisplayLang=en&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;The Microsoft SQL Server Health and History Tool (SQLH2) allows you to collect information from instances of SQL Server, store this information, and run reports against the data in order to determine how SQL Server is being used.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;strong&gt;Overview&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;SQLH2 collects four main types of information:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;1. Feature Usage – What services/features are installed, running and level of workload on the service.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;2. Configuration Settings – Machine, OS and SQL configuration settings, SQL instance and database metadata.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;3. Uptime of the SQL Server service&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;4. Performance Counters (optional) – Used to determine performance trends&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=348346" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Reporting+Services/default.aspx">Reporting Services</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Free+SQL+Server+Tools_2C00_+Utilities+and+Addins/default.aspx">Free SQL Server Tools, Utilities and Addins</category></item><item><title>TechNet Webcast: A Technical Overview of SQL 2005 High Availability Features (Part 2 of 2) - Level: 200</title><link>http://blogs.technet.com/mat_stephen/archive/2004/12/20/327319.aspx</link><pubDate>Mon, 20 Dec 2004 21:15:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:327319</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/327319.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=327319</wfw:commentRss><description>&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="1"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;Friday, January 14, 2005 - 9:30 - 10:30 AM Pacific Time&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;font face="Verdana" size="1"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-STYLE: italic; FONT-FAMILY: Verdana"&gt;Matthew Hester, TechNet Presenter, Microsoft Corporation&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="1"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;There are a number of barriers to availability, and only some of these are addressable by DBMS technology. This session looks at some of the features of SQL Server 2005, the next release of the SQL Server product that can help address some of these barriers. This second part of the series addresses two specific areas: user or application error, and data access concurrency limitations. User or application error and concurrency limitations can cause problems for availability. Join this webcast to learn about the SQL Server 2005 features that can help minimize this type of situation.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;font face="Verdana" color="blue" size="1"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;&lt;a title="http" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032266465&amp;amp;Culture=en-US"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032266465&amp;amp;Culture=en-US&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=327319" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Webcasts/default.aspx">Webcasts</category></item><item><title>TechNet Webcast: A Technical Overview of SQL 2005 High Availability Features (Part 1 of 2) - Level: 200</title><link>http://blogs.technet.com/mat_stephen/archive/2004/12/20/327318.aspx</link><pubDate>Mon, 20 Dec 2004 21:14:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:327318</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/327318.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=327318</wfw:commentRss><description>&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="1"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;Friday, January 07, 2005 - 9:30 - 10:30 AM Pacific Time&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;font face="Verdana" size="1"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-STYLE: italic; FONT-FAMILY: Verdana"&gt;Bryan Von Axelson&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;i&gt;&lt;font face="Verdana" size="1"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-STYLE: italic; FONT-FAMILY: Verdana"&gt;, TechNet Presenter, Microsoft Corporation&lt;/span&gt;&lt;/font&gt;&lt;/i&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="1"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana"&gt;There are a number of barriers to availability, and only some of these are addressable by DBMS technology. This first part of a two-part series looks at some of the features of SQL Server 2005, the next release of the SQL Server product that can help address some of these barriers. This first part concentrates on database server failure or disaster. We will talk about database mirroring, what it is and how to configure it. We will also talk about replication as a method of creating a highly available database solution.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;font face="Verdana" color="blue" size="1"&gt;&lt;span lang="EN" style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;&lt;a title="http" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032266436&amp;amp;Culture=en-US"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032266436&amp;amp;Culture=en-US&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=327318" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category><category domain="http://blogs.technet.com/mat_stephen/archive/tags/Webcasts/default.aspx">Webcasts</category></item><item><title>SQL Server Disaster Recovery (DR) and SANs, Remote Mirrors and Geo-Clusters</title><link>http://blogs.technet.com/mat_stephen/archive/2004/12/17/323724.aspx</link><pubDate>Sat, 18 Dec 2004 04:26:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:323724</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/323724.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=323724</wfw:commentRss><description>&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;After some positive comments arising from my High Availability post I’ve decided to Blog on DR earlier than I had intended. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;I hadn’t intended to blog on DR for a while because it’s a difficult subject and I was hoping it might get easier if I left it to stew a little longer.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;Okay so let’s start by having a clear definition of Disaster Recovery.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;(Disaster Recovery sounds like an oxymoron; if you can recover from a disaster, was it really a disaster in the first place?)&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;A disaster is the loss of a data centre.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This could be a loss of power, flood, fire, earthquake or train/plane crash.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This is to separate DR from High availability (HA).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;High availability refers to the recovery from a probable hardware failure or even more probable human moment of lunacy.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;(It’s a sad fact that non-failover clustered systems have a better up time than failover clustered systems, the biggest influence here being the ignorance of those people with access to the systems.)&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;DR is all about getting backups of your data offsite.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The only real questions you have to ask are: how much data are you prepared to loose in the event of a disaster, how long can you afford to be ‘down’ and how much money do you have to spend? (Similar to the questions you ask when planning your HA). &lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;So simple DR, used by many, is to simply take a backup every so often and take it off site.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Obviously there’s plenty of scope for loosing data and being down for a good while, but hey a disaster’s a disaster isn’t it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Yeh – you all know about this easy stuff, what you all want to know about is the zero data loss, dual data centre strategy, don’t you.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;There are two dual data centre strategies, Remote Mirrored data and Geo-Cluster (Stretch Cluster).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Both of these strategies currently depend on a SAN infrastructure to replicate the data.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The Mirrored data strategy relies on human intervention to invoke the failover while, as the name suggests, a Geo-Cluster automates the failover like a normal failover cluster.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Remote Mirroring:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Independent SQL Server at each site&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;SAN to SAN data copy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo2; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;User databases (including active log) copied in real time&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo2; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;System Catalog not copied. User procedures required to keep them in sync&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;For setup &amp;amp; fail-over&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo2; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Third party &amp;amp; user procedures for automation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo2; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Mount volumes at secondary site host &amp;amp; attach to SQL Server&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;The independent SQL Server at each site can be MSCS clusters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image001.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;For detail refer &lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/hasog05.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/hasog05.mspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Geo-Cluster&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image002.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Third party extensions to MSCS cluster offering&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l1 level2 lfo3; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image002.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Listed in Windows Server Catalog&lt;br /&gt;&lt;a href="http://www.microsoft.com/windows/catalog/server/default.aspx?xslt=categoryproduct&amp;amp;subid=22&amp;amp;pgn=b55095f4-71f3-4b26-98b1-05f3a9506d0d"&gt;http://www.microsoft.com/windows/catalog/server/default.aspx?xslt=categoryproduct&amp;amp;subid=22&amp;amp;pgn=b55095f4-71f3-4b26-98b1-05f3a9506d0d&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image002.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Virtual SQL Server offered to clients&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l1 level2 lfo3; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image002.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;SAN to SAN data copy including system catalog&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l1 level2 lfo3; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image002.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Requires synchronous copy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image002.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;For setup &amp;amp; fail-over&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l1 level2 lfo3; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image002.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Third party &amp;amp; user procedures to augment Microsoft provided procedures &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image002.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;For detail refer &lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/hasog05.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/hasog05.mspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Majority Node Clusters and ‘split brains’&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Big problem with geo-clusters has traditionally been with the concept of the ‘split brain’&lt;b style="mso-bidi-font-weight: normal"&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;Split&lt;/st1:place&gt;&lt;/st1:City&gt; brain occurs when the heart beat between the cluster nodes is broken by a failure in the network (man drives JCB through cable).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If this occurs the failover node will try to come up whilst the primary is still functioning – ooops.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Majority node clusters overcome this problem by maintaining an odd number of servers in the cluster such that if the heart beat network fails the data center with the majority of the nodes assumes responsibility for the database.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Please see&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/clustering/qsvclust.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/clustering/qsvclust.mspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;Kinda sounds simple so far?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Well it all starts to get more complicated when you start to look at how the data is mirrored.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;There several ways to remotely copy (mirror) your data:&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image004.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Synchronous &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 54pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Data pages are written synchronously at either end of &lt;/span&gt;the&lt;span style="mso-ansi-language: EN-US"&gt; &lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;mirrored&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt; set and SQL Server isn’t told of a successful write until the writes are completed at both ends.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This is the only mode to use with Geo-Clusters.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image004.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Semi-synchronous&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 54pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Some kind of weird scenario that doesn’t seem to curry much favour&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image004.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Asynchronous&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 54pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Acknowledgments for writes are given to SQL Server as soon as the data is written at the primary site.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Data is written at the secondary site as and when.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image004.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Software-based Remote Copy &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 54pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Self explanatory – Veritas etc&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image004.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Adaptive, Remote, Peer-to-Peer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 54pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;No inherent D/R capability on its own – lets not go here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image004.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Multi-Hop, Three Data-Center&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 54pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Designed for long distance DR.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;A synchronous copy to nearby storage and then an asynchronous copy to a distant storage.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Means the source system doesn’t have to incur the latency to the distant storage.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;Each method is usually called something different by the big four SAN Vendors (HP, Hitachi, EMC and IBM) and the implementation can vary too, so you can see this is now getting complicated.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;But hang on which methods are supported by Microsoft?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Remote mirroring is supported with the caveat that any data integrity issues related to data replication should be addressed by the customer to the hardware vendor and not to Microsoft.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;SQL Server requires that ‘write ahead logging’ be honoured, there be no torn pages and pages arrive in the correct order.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The mirroring configuration needs to support this, but don’t take my word as a definitive statement of the requirements – you must discuss this with the hardware vendor and make sure they’re prepared to support you. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;I suggest you properly test the configuration by pulling the plug on the primary site.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Key considerations and comparison for Remote Mirroring &amp;amp; Geo-Clustering &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Both&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Dependent on 3rd. party enhancements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Data Integrity requires that 3rd. party enhancements must ensure “Write Sequence Dependency” &amp;amp; protection from “Torn Pages”&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Geo-Clustering &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Offers automatic failure detection &amp;amp; fail-over automation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Requires less work – no extra logins &amp;amp; schema synchronization – single image due to virtual SQL Server&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Offers an additional option for client redirection – use of virtual name &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Requires down time for SQL Server 2000 maintenance&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Remote Mirroring &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Requires user developed procedures for failure detection &amp;amp; fail-over&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Requires more work for logins &amp;amp; schema synchronization – independent SQL Servers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Offers an additional option for data copy – Asynchronous (with less adverse performance impact, but with potential data loss) besides synchronous &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l2 level2 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN" style="FONT-FAMILY: Symbol; mso-ansi-language: EN-US; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;img height="13" alt="" src="file:///C:/DOCUME~1/mattstep/LOCALS~1/Temp/msohtml1/01/clip_image003.gif" width="13" /&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;Offers potential continuous availability during maintenance with planned fail-over. Stretch Clustering along with Log Shipping offers similar functionality&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Latency&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;This has to get a mention as a concern.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Naturally you’ll be looking to do a commit at the remote site and apparently you can expect this to take 3ms or so I’ve heard.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Then you’ve got to add the amount of time it takes to get to the remote sight and back at the speed of light. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;At 3*10^8 ms light would take 6ms seconds to go to a remote site 100km away.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Shouldn’t be too bad, but I gather its SQL flushing the cache that puts the system under stress, merely because of the volume data that suddenly decides to flow down the pipe. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Examples:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;Danfoss in &lt;st1:country-region w:st="on"&gt;&lt;st1:place w:st="on"&gt;Denmark&lt;/st1:place&gt;&lt;/st1:country-region&gt; are using data mirroring between two towns – this case study shows their SAP architecture:&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a href="http://www.microsoft-sap.com/docs/Danfoss.doc"&gt;http://www.microsoft-sap.com/docs/Danfoss.doc&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;Akzo Nobel, great Geo-Cluster example with two unmanned data centres using IBM kit shark storage (ESS).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This cases study is amusing: we found it on the IBM website, I gave them a ring to find out more about it, they took it off their website within 24 hours.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I guess they might have decided it was a better case study for Microsoft than it was for IBM, after I had come sniffing around.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a href="http://www.microsoft-sap.com/docs/AKZO%20Nobel.pdf"&gt;http://www.microsoft-sap.com/docs/AKZO%20Nobel.pdf&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;For more information about EMC SRDF solutions, visit the following EMC Web site: &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a href="http://www.emc.com/products/networking/srdf.jsp"&gt;http://www.emc.com/products/networking/srdf.jsp&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span lang="EN" style="mso-ansi-language: EN-US"&gt;EMC: Symmetrix Remote Data Facility (SRDF) Connectivity Solutions&lt;br /&gt;&lt;a href="https://powerlink.emc.com/HighFreq/P_C852.2_srdf_connectivity_sol.wp_ldv.pdf" target="_parent"&gt;https://powerlink.emc.com/HighFreq/P_C852.2_srdf_connectivity_sol.wp_ldv.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;Hitachi&lt;/st1:place&gt;&lt;/st1:City&gt;: Disaster Recovery Issues and Solutions &lt;a href="http://www.hds.com/products_services/storage_mgmt_software/business_continuity/"&gt;http://www.hds.com/products_services/storage_mgmt_software/business_continuity/&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;HP: StorageWorks Data Replication Manager &lt;a href="http://h18004.www1.hp.com/products/sanworks/drm/index.html"&gt;http://h18004.www1.hp.com/products/sanworks/drm/index.html&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;I’d be very interested in your experiences with this type of technology, if you’d care to share them.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=323724" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category></item><item><title>SQL Server High Availability – I have to talk about this so much I feel like a scratched record.</title><link>http://blogs.technet.com/mat_stephen/archive/2004/12/15/311093.aspx</link><pubDate>Wed, 15 Dec 2004 16:12:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:311093</guid><dc:creator>Mat_Stephen</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/mat_stephen/comments/311093.aspx</comments><wfw:commentRss>http://blogs.technet.com/mat_stephen/commentrss.aspx?PostID=311093</wfw:commentRss><description>&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;Rather than write endless amounts here I’m just going to describe some useful pointers that you can reference.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The first reference is to failover clusters, I mention this one first as it dives head on into that word ‘Cluster’.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This word is a pain as it means different things to different people and if its not properly qualified it just causes confusion.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Unfortunately in Microsoft we often just use the word ‘clustering’ – when we do we &lt;i style="mso-bidi-font-style: normal"&gt;usually&lt;/i&gt; mean failover clustering.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;However, in the Reporting Services documentation (enterprise deployments), I found my first instance of Microsoft referring to Network Load Balanced (NLB) Clusters with the word cluster, and boy has it caused confusion – Reporting Services is not failover cluster aware!&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;So apart from ‘failover’ and ‘NLB’ clusters there are also ‘scale out’ clusters, sometimes called (by Microsoft) ‘federated servers’.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Oracle also has their Real Application Clusters (RAC) which can provide both ‘scale out’ and ‘failover’ capabilities.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;h1 style="MARGIN: 7.2pt 0cm 0pt"&gt;&lt;font face="Arial" size="5"&gt;Ref:- SQL Server 2000 Failover Clustering&lt;/font&gt;&lt;/h1&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: #666666; FONT-FAMILY: Verdana"&gt;Published: June 18, 2002&lt;/span&gt;&lt;span class="datepipe1"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana"&gt;&lt;font color="#cccccc"&gt; | &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: #666666; FONT-FAMILY: Verdana"&gt;Updated: October 14, 2004&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;b&gt;Abstract: &lt;/b&gt;Users demand not only performance and scalability, but availability of the applications they use. Achieving high availability requires a whole solution, part of which includes the SQL Server 2000 Server failover clustering. This white paper will explain what failover clustering is: how it works, considerations to take into account when designing your solution, how to implement and administer your solution, and how to troubleshoot a failover cluster. Also included are some useful worksheets and checklists to assist you during the installation, as well as links to additional information where necessary&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/failclus.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/failclus.mspx&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;The next reference is the most comprehensive discussion on High Availability (HA) I know – unfortunately it’s a little out of date but it is still valuable.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It also deals with stretch clusters (sometimes referred to a geo clusters) but I consider this to fall more into the camp of Disaster Recovery (DR) – I’ll probably blog on DR another day.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;This reference deals with both planning and deploying.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Helpfully it discusses what high availability really means, because this can lead to mine field of arguments like ‘do you really need 5 9s? I find it useful to show customers as it put a number of technologies, like log shipping and NLB clusters into one document.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;h1 style="MARGIN: 7.2pt 0cm 0pt"&gt;&lt;font face="Arial" size="5"&gt;Ref: Microsoft SQL Server 2000 High Availability Series&lt;/font&gt;&lt;/h1&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: #666666; FONT-FAMILY: Verdana"&gt;Updated: November 19, 2002&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;&lt;font size="2"&gt;The Patterns &amp;amp; Practices team has decided to archive this content to streamline content offerings and keep focused on the newest, most relevant content. However, we will continue to make this content available because it is still of interest to some users. We offer this content as-is, without warranty that it is still technically accurate as some of the material may be outdated. Note that the content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.&lt;/font&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/sqlhalp.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/sqlhalp.mspx&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;The following reference is actually a chapter pulled out of the SQL Server High Availability Series referenced above.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I highlight it because it deals with backup and recovery strategies going all the way through to the two most advanced topics of ‘Split-mirror’ and ‘Copy-on-write’ snapshots.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;h1 style="MARGIN: 7.2pt 0cm 0pt"&gt;&lt;font face="Arial" size="5"&gt;Ref:-SQL Server 2000 High Availability Series: Recovering a &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;&lt;st1:PlaceName w:st="on"&gt;Data&lt;/st1:PlaceName&gt; &lt;st1:PlaceType w:st="on"&gt;Center&lt;/st1:PlaceType&gt;&lt;/st1:place&gt; by Using Database Backups&lt;/font&gt;&lt;/h1&gt; &lt;h2 style="MARGIN: 1.2pt 0cm 3pt"&gt;&lt;span style="FONT-WEIGHT: normal"&gt;&lt;em&gt;&lt;font face="Arial"&gt;Recovering a &lt;st1:place w:st="on"&gt;&lt;st1:PlaceName w:st="on"&gt;Data&lt;/st1:PlaceName&gt; &lt;st1:PlaceType w:st="on"&gt;Center&lt;/st1:PlaceType&gt;&lt;/st1:place&gt; with Database Backups&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/h2&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: #666666; FONT-FAMILY: Verdana"&gt;Updated: November 14, 2002&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Despite the best-laid plans, you cannot prevent every disaster that might befall a data center. You must therefore ensure that you can recover the data center from backups after a catastrophic failure, such as a user error or a hardware-induced database corruption. This chapter discusses using database backups to ensure a complete recovery of the data center in the event of a disaster. It focuses on techniques to optimize the Microsoft SQL Server 2000 recovery process and reduce the total recovery time to meet data center availability goals. A basic understanding of SQL Server backup and recovery procedures is assumed. For more information about SQL Server backup and recovery procedures, see "Backing Up and Restoring Databases" on the MSDN Web site at &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/library/en-us/adminsql/ad_bkprst_9zcj.asp"&gt;&lt;font face="Verdana" size="2"&gt;http://msdn.microsoft.com/library/en-us/adminsql/ad_bkprst_9zcj.asp&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/harag03.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/harag03.mspx&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;If you feel the content of this blog misses something out please let me know.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=311093" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/mat_stephen/archive/tags/High+Availability+and+Disaster+Recovery/default.aspx">High Availability and Disaster Recovery</category></item></channel></rss>