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

<channel>
	<title>The Multifunctioning DBA &#187; Mirror Fail over</title>
	<atom:link href="http://itknowledgeexchange.techtarget.com/dba/tag/mirror-fail-over/feed/" rel="self" type="application/rss+xml" />
	<link>http://itknowledgeexchange.techtarget.com/dba</link>
	<description></description>
	<lastBuildDate>Wed, 06 Feb 2013 01:01:48 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Fail over Mirror database with Powershell</title>
		<link>http://itknowledgeexchange.techtarget.com/dba/fail-over-mirror-database-with-powershell/</link>
		<comments>http://itknowledgeexchange.techtarget.com/dba/fail-over-mirror-database-with-powershell/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 20:23:40 +0000</pubDate>
		<dc:creator>Colin Smith</dc:creator>
				<category><![CDATA[DR]]></category>
		<category><![CDATA[Mirror]]></category>
		<category><![CDATA[Mirror Fail over]]></category>
		<category><![CDATA[Powershell]]></category>

		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/dba/fail-over-mirror-database-with-powershell/</guid>
		<description><![CDATA[Today I was asked if I could help out by writing a simple script that would fail over a mirrored database from one server to the other and back if and when needed. I thought sure I can. I mean to do the failover with T-SQL is really simple but I can automate it. So [...]]]></description>
				<content:encoded><![CDATA[<p>Today I was asked if I could help out by writing a simple script that would fail over a mirrored database from one server to the other and back if and when needed. I thought sure I can. I mean to do the failover with T-SQL is really simple but I can automate it. So here is the T-SQL to fail over.</p>
<p><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: maroon">ALTER DATABASE Your_DBNAME SET PARTNER FAILOVER</span></p>
<p>Well that is very simple but to automate it will take a bit more work. No problem though. Break out the powershell and away we go.</p>
<p><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--><!--[if gte mso 10]&gt;--><br />
 /* Style Definitions */<br />
 table.MsoNormalTable<br />
	{mso-style-name:&#8221;Table Normal&#8221;;<br />
	mso-tstyle-rowband-size:0;<br />
	mso-tstyle-colband-size:0;<br />
	mso-style-noshow:yes;<br />
	mso-style-priority:99;<br />
	mso-style-qformat:yes;<br />
	mso-style-parent:&#8221;";<br />
	mso-padding-alt:0in 5.4pt 0in 5.4pt;<br />
	mso-para-margin:0in;<br />
	mso-para-margin-bottom:.0001pt;<br />
	mso-pagination:widow-orphan;<br />
	font-size:11.0pt;<br />
	font-family:&#8221;Calibri&#8221;,&#8221;sans-serif&#8221;;<br />
	mso-ascii-font-family:Calibri;<br />
	mso-ascii-theme-font:minor-latin;<br />
	mso-fareast-font-family:&#8221;Times New Roman&#8221;;<br />
	mso-fareast-theme-font:minor-fareast;<br />
	mso-hansi-font-family:Calibri;<br />
	mso-hansi-theme-font:minor-latin;<br />
	mso-bidi-font-family:&#8221;Times New Roman&#8221;;<br />
	mso-bidi-theme-font:minor-bidi;}</p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: green">## Step one: Load SMO Assembly</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">[</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: saddlebrown">System.Reflection.Assembly</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">]::</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: saddlebrown">LoadWithPartialName</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">(</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: maroon">&#8216;Microsoft.SqlServer.SMO&#8217;</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> ) </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: blue">|</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: cadetblue">out-null</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: green">#Step Two: Define Variables</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$failover</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> 0</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$instances</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: maroon">&#8220;workdog&#8221;</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">, </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: maroon">&#8220;workdog\test&#8221;</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: green">##Step Three: find current database that is the principal</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: blue">foreach</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> (</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$instance</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: blue">in</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$instances</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">)</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">{</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$s</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: cadetblue">New-Object</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> (</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: maroon">&#8216;Microsoft.SqlServer.Management.Smo.Server&#8217;</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> ) </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$instance</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$databases</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$s</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">.</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: saddlebrown">Databases</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: green">#$databases | select name, mirroringstatus, status</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: blue">foreach</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">(</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$db</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: blue">in</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$databases</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">)</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">{</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$name</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$db</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">.</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: saddlebrown">name</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$mirrorstatus</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$db</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">.</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: saddlebrown">MirroringStatus</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$mirrorstatus</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$mirrorstatus</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">.</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: saddlebrown">ToString</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">()</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$status</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$db</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">.</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: saddlebrown">Status</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: blue">if</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">((</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$mirrorstatus</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">-ne</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: maroon">&#8220;None&#8221;</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">) </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">-and</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> (</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$Status</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">-eq</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: maroon">&#8220;Normal&#8221;</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">) </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">-and</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> (</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$failover</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">-eq</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> 0))</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black">{</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: blue">echo</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: maroon">&#8220;$name is on $instance&#8221;</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$query</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: maroon">&#8220;ALTER DATABASE $name SET PARTNER FAILOVER&#8221;</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$failover</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: red">=</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> 1</span></p>
<p class="MsoNormal"><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: cadetblue">Invoke-Sqlcmd</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: cadetblue">-serverinstance</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$instance</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: cadetblue">-Database</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: blue">master</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: cadetblue">-Query</span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: black"> </span><span style="font-size: 10pt;font-family: &quot;Courier New&quot;color: purple">$query</span></p>
<p class="MsoNormal">
<p class="MsoNormal">So basically what I am doing is setting up SMO connections to my instances and looping thru all the databases. If I find a database that is mirrored and the primary then I know what instance to run the SQL Query against and I do. I also set $failover = 1 so that the script knows that if it iterates thru and finds that the second instance now has the primary do not run the failover again.</p>
<p class="MsoNormal">
<p class="MsoNormal">Hope this helps</p>
<!-- wpms-network-global-inserts -->]]></content:encoded>
			<wfw:commentRss>http://itknowledgeexchange.techtarget.com/dba/fail-over-mirror-database-with-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
