<?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>SQLRockstar &#124; Thomas LaRock &#187; Operations Manager 2007</title>
	<atom:link href="http://thomaslarock.com/category/operations-manager-2007/feed/" rel="self" type="application/rss+xml" />
	<link>http://thomaslarock.com</link>
	<description></description>
	<lastBuildDate>Wed, 23 May 2012 14:15:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Find Database Sizes With Operations Manager</title>
		<link>http://thomaslarock.com/2010/01/find-database-sizes-with-operations-manager/</link>
		<comments>http://thomaslarock.com/2010/01/find-database-sizes-with-operations-manager/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 12:23:50 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Operations Manager 2007]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=3517</guid>
		<description><![CDATA[I was asked last week if  knew a query that would return the size of the databases that have been discovered by Operations Manager. I went about digging through some old queries I put together and found the information that was requested.
Inside the OperationsManager database look for a view named MTV_Database. All discovered databases will [...]<p><p></p>
<a href="http://thomaslarock.com/2010/01/find-database-sizes-with-operations-manager/">Find Database Sizes With Operations Manager</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I was asked last week if  knew a query that would return the size of the databases that have been discovered by Operations Manager. I went about digging through some old queries I put together and found the information that was requested.</p>
<p>Inside the OperationsManager database look for a view named MTV_Database. All discovered databases will be there. There should be a column for DatabaseSize, but the column will have a GUID at the end of the name.</p>
<p>Now, I forget where I found it, but a while back I came across one of the view definitions that helped me to return a lot of other information, such as SQL version. The view that has SQL version is named MTV_DBEngine, but in order to join the MTV_Database to the MTV_DBEngine I needed to add in a handful of relationship tables and filter on the BaseManagedTypeID. I was going mad trying to make everything work until I found that specific view definition and I don&#8217;t recall which one it is, but what I do have is the end result which I can share (your GUIDs will be different, I imagine):</p>
<p>SELECT *<br />
FROM [OperationsManager].[dbo].MT_Database T1<br />
LEFT JOIN [OperationsManager].[dbo].MT_Database_2 T2<br />
ON T1.BaseManagedEntityId = T2.BaseManagedEntityId<br />
LEFT JOIN [OperationsManager].[dbo].MT_Database_1 T3<br />
ON T1.BaseManagedEntityId = T3.BaseManagedEntityId<br />
LEFT JOIN [OperationsManager].[dbo].MT_Database_0 T4<br />
ON T1.BaseManagedEntityId = T4.BaseManagedEntityId<br />
LEFT JOIN [OperationsManager].[dbo].[Relationship] RT5<br />
ON (RT5.RelationshipTypeId = &#8217;328C1DCD-4AA5-9964-F3B6-0E607AE58416&#8242;<br />
AND RT5.TargetEntityId = T1.BaseManagedEntityId)<br />
LEFT JOIN [OperationsManager].[dbo].MTV_DBEngine T5<br />
ON RT5.SourceEntityId = T5.BaseManagedEntityId<br />
LEFT JOIN [OperationsManager].[dbo].[Relationship] RT6<br />
ON (RT6.RelationshipTypeId = &#8217;6284518A-90CC-FADD-E56B-26669E2A0A8F&#8217;<br />
AND RT6.TargetEntityId = T5.BaseManagedEntityId)<br />
LEFT JOIN [OperationsManager].[dbo].MTV_Computer T6<br />
ON RT6.SourceEntityId = T6.BaseManagedEntityId<br />
JOIN [OperationsManager].[dbo].BaseManagedEntity BME<br />
ON BME.BaseManagedEntityId = T1.BaseManagedEntityId<br />
WHERE BME.IsDeleted = 0<br />
AND BME.BaseManagedTypeId = &#8217;10C1C7F7-BA0F-5F9B-C74A-79A891170934&#8242;</p>
<p>I think what you want to do is first find the BaseManagedTypeId for the ‘Microsoft.SQLServer.Database’ entity (that is the one in my where clause). Not sure how I got those relationship GUIDs, I must have hunted for them manually at some point.</p>
<p>At any rate, the simplest answer is to query the MTV_Database view for the database size. Or you can modify some of the database state views to include the information, but I always like to know the T-SQL that is being done behind the scenes. It just makes me feel better knowing everything that is happening under the hood.</p>
<p>When you want to get more details about the instances, like version information, then you have to really dive into the relationships. The OpsMgr console can provide you with the information, but not always in the format you want, which means you may need to build your own T-SQL to get all the right details.</p>
<p><p></p>
<a href="http://thomaslarock.com/2010/01/find-database-sizes-with-operations-manager/">Find Database Sizes With Operations Manager</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-3517"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2010/01/find-database-sizes-with-operations-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Time Is It?</title>
		<link>http://thomaslarock.com/2009/08/what-time-is-it/</link>
		<comments>http://thomaslarock.com/2009/08/what-time-is-it/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 03:06:34 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Operations Manager 2007]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=2645</guid>
		<description><![CDATA[Joe the DBA sent me the usually morning email, detailing the failed custom collections in Operations Manager. I had asked for Joe to do this routinely so that we could monitor our monitoring system, as any good DBA with OCD would do. With our recent push for server consolidation I have been spending more time [...]<p><p></p>
<a href="http://thomaslarock.com/2009/08/what-time-is-it/">What Time Is It?</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Joe the DBA sent me the usually morning email, detailing the failed custom collections in Operations Manager. I had asked for Joe to do this routinely so that we could monitor our monitoring system, as any good DBA with OCD would do. With our recent push for server consolidation I have been spending more time on Operations Manager as I plan to use it for any and all necessary metrics in our project.</p>
<p>&#8220;Tokyo failed again,&#8221; Joe said over my cube wall. Sure enough, there it was, in the midst of a handful of failures one stood out. It was the SQL box that resides in Tokyo, Japan. I started to dig through the VB script, hoping I could reproduce the error, to no avail. The process is quite simple. Every morning at 2:20AM we have a script that selects all the syslogins on the server, inserts them into our central repository, then for each syslogin row the code takes the login name and then executes sp_helplogins and pushes the result also to our central repository.</p>
<p>Or not. It would seem that Tokyo was not pushing the second result set. Ever, in fact. The logins were coming through, but nothing else.</p>
<p>&#8220;Weird,&#8221; I thought to myself, and put down my bacon sandwich to focus on the matter.</p>
<p>I rooted around and found that, as expected, the process ran last night. I saw the entries for August 29th, at 2:20 AM, as expected. Only I did not see any entries for August 29th for the second set of records. I did, however, see entries for August 28th at 1:20PM.</p>
<p>&#8220;I must have inserted those records myself when I was trying to debug,&#8221; I muttered and took another look at the data. Then another. Then I looked at my phone. Then my Blackberry. Then my computer&#8217;s time. Then I did a SELECT getdate() on the Tokyo server. It came back with August 29th, 2:45 AM.</p>
<p>Or roughly thirteen hours<strong><em> into the future</em></strong>.</p>
<p><a href="http://www.upscale.utoronto.ca/GeneralInterest/Harrison/SpecRel/SpecRel.html"><img class="alignleft size-full wp-image-2648" style="border: 5px solid white;" title="spacetime" src="http://thomaslarock.com/wp-content/uploads/2009/08/spacetime1.gif?9d7bd4" alt="spacetime" /></a></p>
<p>Somehow, I was getting data from the future inserted into our central repository. Well, not somehow, because Tokyo is literally and figuratively on <em>the other side of the planet</em>. The Operations Manager agent was working perfectly, the script was running at the right time, only since it was already tomorrow it was running during our afternoon. My code was doing a getdate() when selecting the syslogins and picking up Tokyo time, but when it was inserting the results of the sp_helplogins back to the central repository it was also using a getdate() and would then insert the local time (in this case, EDT).</p>
<p>I had clearly opened up a rift in the fabric of space time, but the effect was only temporary.</p>
<p>But what to do to solve the issue? Do I change the code to always insert according to local time? Perhaps. But we also have a purge process that runs in EDT, so we would want the time to be in EDT, otherwise we may purge something incorrectly. And what about our ad-hoc scripts or reports? We use datediff() frequently, so shouldn&#8217;t we agree upon a standard?</p>
<p>With three servers (Operations Manager, our central repository, and Tokyo) we have the potential for three different timezones. How do you keep it straight? Who wins?</p>
<p>I have no idea right now on what the solution should be, but I am leaning towards having two columns in the tables. One column for the local time on the server, the other for when the data gets inserted. Of course, we know the local time on the server, because that is when the Operations Manager agent will start the script, and that would keep everything consistent. Well, if you think having data from the future as being consistent, then sure.</p>
<p>When designing a system that spans multiple timezones you simply must consider what is meant by &#8220;time&#8221;.</p>
<p><p></p>
<a href="http://thomaslarock.com/2009/08/what-time-is-it/">What Time Is It?</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-2645"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2009/08/what-time-is-it/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Another tip at MSSQLTips</title>
		<link>http://thomaslarock.com/2009/07/another-tip-at-mssqltips/</link>
		<comments>http://thomaslarock.com/2009/07/another-tip-at-mssqltips/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 12:48:21 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[MSSQLTips]]></category>
		<category><![CDATA[Operations Manager 2007]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>

		<guid isPermaLink="false">http://sqlbatman.com/?p=893</guid>
		<description><![CDATA[I had a tip published over at MSSQLTips yesterday and wanted to drop a quick post to brag tell people about it. The tip is very straightforward, it uses xp_fileexist to verify if your database dumps are still on disk or not.
Keep in mind that xp_fileexist is one of those undocumented stored procedures, which is [...]<p><p></p>
<a href="http://thomaslarock.com/2009/07/another-tip-at-mssqltips/">Another tip at MSSQLTips</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I had a tip <a href="http://www.mssqltips.com/tip.asp?tip=1800">published over at MSSQLTips</a> yesterday and wanted to drop a quick post to <span style="text-decoration: line-through;">brag</span> tell people about it. The tip is very straightforward, it uses xp_fileexist to verify if your database dumps are still on disk or not.</p>
<p>Keep in mind that xp_fileexist is one of those undocumented stored procedures, which is my way of telling you that if you decide to build something using my script it could suddenly stop working one day. Of course, all my scripts are like that but since this one is using an undocumented stored procedure I have the luxury of a scapegoat. Which is nice. Not &#8220;total-consciousness-on-my-deathbed&#8221; nice, but nice nonetheless.</p>
<p>The whole idea came about because there are a handful of times when files may get moved or deleted accidentally. With this script you can quickly verify a possible issue <em>before</em> you go looking for the file because you need to do a restore. Given the choice between needing to recover a file from tape because you <em>might</em> need to do a restore versus needing it NOW because you MUST do a restore, I will take the former. This script can help, you could put it into a SQL Agent job, or perhaps a local policy, or even Operations Manager. Your choice, really.</p>
<p>I am actually thinking I will take this script and build it into a monitor inside of Operations Manager, giving me the ability to quickly see if there is an issue at periodic times throughout the day.</p>
<p><p></p>
<a href="http://thomaslarock.com/2009/07/another-tip-at-mssqltips/">Another tip at MSSQLTips</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-893"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2009/07/another-tip-at-mssqltips/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Operations Manager 2007 Introduction Video</title>
		<link>http://thomaslarock.com/2009/07/operations-manager-2007-introduction-video/</link>
		<comments>http://thomaslarock.com/2009/07/operations-manager-2007-introduction-video/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 02:12:04 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Operations Manager 2007]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=2342</guid>
		<description><![CDATA[On more than one occasion I have seen or heard a DBA ask a common question about Operations Manager 2007: &#8220;How do I know it is working?&#8221; Last week I spent time with Brent Ozar to put together a video on how to navigate your way around OpsMgr. Brent was a perfect choice to have [...]<p><p></p>
<a href="http://thomaslarock.com/2009/07/operations-manager-2007-introduction-video/">Operations Manager 2007 Introduction Video</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>On more than one occasion I have seen or heard a DBA ask a common question about Operations Manager 2007: &#8220;How do I know it is working?&#8221; Last week I spent time with Brent Ozar to put together a video on how to navigate your way around OpsMgr. Brent was a perfect choice to have the discussion with because he admittedly knows very little about OpsMgr and asked a lot of the same questions I hear from any other beginner. I did my best to demonstrate how to navigate the OpsMgr GUI but I am sure I did not touch everything. So, if you have any specific questions, let me know and I will see if I can put together additional podcasts to answer your questions. And if you are interested in participating in a podcast with me, let me know that as well.</p>

<p><p></p>
<a href="http://thomaslarock.com/2009/07/operations-manager-2007-introduction-video/">Operations Manager 2007 Introduction Video</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-2342"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2009/07/operations-manager-2007-introduction-video/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>AutoGrow Apparently Means &quot;I Don&#8217;t Care&quot;</title>
		<link>http://thomaslarock.com/2009/05/autogrow-apparently-means-i-dont-care/</link>
		<comments>http://thomaslarock.com/2009/05/autogrow-apparently-means-i-dont-care/#comments</comments>
		<pubDate>Wed, 27 May 2009 17:13:48 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Operations Manager 2007]]></category>
		<category><![CDATA[SQLServerPedia Wiki]]></category>
		<category><![CDATA[SQL 2008]]></category>
		<category><![CDATA[Things That Make Me Want To Chew Tinfoil]]></category>

		<guid isPermaLink="false">http://thomaslarock.com/?p=1995</guid>
		<description><![CDATA[Well, at least that is the impression I have from Operations Manager. Let me explain why.
It all started around the time we were making some adjustments to one of our servers that was not performing as well as our end users would have liked. The short end of that story is that we ended up [...]<p><p></p>
<a href="http://thomaslarock.com/2009/05/autogrow-apparently-means-i-dont-care/">AutoGrow Apparently Means &quot;I Don&#8217;t Care&quot;</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Well, at least that is the impression I have from Operations Manager. Let me explain why.</p>
<p>It all started around the time we were making some adjustments to one of our servers that was not performing as well as our end users would have liked. The short end of that story is that we ended up making some changes to our tempdb. We split the tempdb into separate data files, one per physical processor. So far, so good. We also went one step further and we set the size of tempdb to be fixed, turning off the Autogrow option.</p>
[Why? Well, we believe that there is a chance, should your database become full, <a href="http://blogs.technet.com/mat_stephen/archive/2005/02/02/365370.aspx" target="_blank">that autogrow will only increase the first file and not all files at once</a>. If that happens, then you will start to fill only that first file, which essentially means you have lost the benefits of striping across all files and using multiple processors. So, you can avoid this by either disabling autogrow or by rigorous monitoring of your filesize and free space and manually growing your files. Of course, being tempdb, this really doesn't matter if we assign all space on the disk to the database files not to mention the fact that tempdb gets rebuilt the next time the service is recycled.]
<p>I bounced this question around Twitter recently, asking people if they consider fixing the size of their database and disable Autogrow. The majority of results are that you should size your database as best as possible upon initial creation, but let the data files grow automatically if necessary just to be safe.</p>
<p>Putting that debate aside for now, let me focus my ire back on OpsMgr.</p>
<p>So, one of the monitors you get out of the box with OpsMgr is the &#8216;DB Space Free (%)&#8217; monitor, which is a wonderful idea because if the percentage of free space dips below a certain threshold you would want to be notified. I mean, who wouldn&#8217;t want to know if there was only five percent of free space left in their database? Sure, if it was a 10Tb database then that five percent would be 500Gb (which is a lot of flippin&#8217; space if you ask me), but still, the idea is sound. And we have never seen any alerts for this monitor, despite occasionally filling up a data drive every now and then, so our shop must be humming along quite nicely.</p>
<p>And we were. Until there was an incident. And by &#8216;incident&#8217; I mean that a member of my team (let&#8217;s call him Joe the DBA) decided that when it comes to striping files it is not necessarily the best thing to ever let them autogrow. And he has a valid point to consider (see above), so he created the multiple data files for the tempdb and turned off autogrow.</p>
<p>And that&#8217;s when OpsMgr started beeping at me. Well, not beeping, but it sent me a nasty email saying that the tempdb was running out of space. Actually, it said that there was 0% free space left. The database state view was critical, which means I had a red circle staring at me next to the tempdb for that server instance. Naturally I went and checked on the space and found that out of 24Gb of space allocated to tempdb about 23.999Gb were free.</p>
<p>Dumbfounded, I reset the health of the monitor. It went to green, then five minutes later back to red. Another quick check of the database shows that nothing has changed, it is still very much empty, and not full. So, what is going on? I decided to dive into the details and picked apart the SQL 2005 Monitoring management pack. I found the section of code that was collecting the information for the free space and stepped through in order to find the problem.</p>
<p>After a few iterations of the code I found a curious section:</p>
<p>if ((currentDB.Name == &#8220;tempdb&#8221;) || (currentDB.Name == &#8220;master&#8221;) || (currentDB.Name == &#8220;msdb&#8221;))<br />
{<br />
propertyBag.AddValue(&#8220;DBSize&#8221;, dbSize);<br />
propertyBag.AddValue(&#8220;DBFree&#8221;, 0);<br />
propertyBag.AddValue(&#8220;DBPercentFree&#8221;, 0);</p>
<p>Um&#8230;ok&#8230;so, if the database is master, msdb, or tempdb, the code sets the &#8220;DBPercentFree&#8221; variable to zero, regardless of what the actual amount would be. And why no love for model?</p>
<p>So, now I knew where the calculation was coming from. For some reason OpsMgr has decided to simply set the free space to be zero, but why am I not getting alerts for master and msdb? Well, I stumbled across this little tidbit of information, something I had known before but forgotten:</p>
<p><strong><em>Databases that have autogrow set will never generate an alert regardless of the reported free space.</em></strong></p>
<p>Wow.</p>
<p>Let me see if I can understand what you are doing.</p>
<p>If I have a database set to autogrow then you won&#8217;t bother to tell me if it is filling up? I mean, not even if I want to know if it is 50% full? You just won&#8217;t even entertain the notion that I could possibly want to know that my database is getting full, simply because I enabled the data files to autogrow? Really? That makes sense to someone? Because to me, an actual production DBA, it doesn&#8217;t. In fact, it is silly to think that because I have a database set to autogrow that I would not care to get an alert. I haven&#8217;t seen anything this stupid since I found out <a href="http://thomaslarock.com/2008/10/biztalk-database-dumps/" target="_blank">BizTalk doesn&#8217;t bother to clean up the database backups</a> they force you to enable through their jobs.</p>
<p>Now, on top of that, you have decided that if I did disable autogrow on a database, say, oh I don&#8217;t know, how about tempdb, if I did disable autogrow on tempdb that I should be spammed with alerts. Because that is what you have done. I guess I hit the sweet spot with tempdb and this monitor, seems like a perfect storm of issues.</p>
<p>So, to recap:</p>
<ol>
<li>Operations Manager will not monitor the free space available in a database that is set to autogrow.</li>
<li>If you want to know your free space available, you need to disable autogrow.</li>
<li>Disabling autogrow on tempdb will always generate an alert, regardless of the actual free space available.</li>
</ol>
<p>Brilliant. Unfortunately, not very helpful. My current workaround is to disable the monitor for the tempdb database, which makes no sense since it is a fixed size and is EXACTLY the type of database I should be able to monitor with Operations Manager, but can&#8217;t.</p>
<p>Or I can go back and tell Joe the DBA to set the tempdb to autogrow. And then get another lesson in why allowing striped files to autogrow essentially has the potential to erase the benefits of striping.</p>
<p>Can&#8217;t we all just get along?</p>
<p><p></p>
<a href="http://thomaslarock.com/2009/05/autogrow-apparently-means-i-dont-care/">AutoGrow Apparently Means &quot;I Don&#8217;t Care&quot;</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-1995"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2009/05/autogrow-apparently-means-i-dont-care/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Uptime? You betcha.</title>
		<link>http://thomaslarock.com/2008/12/uptime-you-betcha/</link>
		<comments>http://thomaslarock.com/2008/12/uptime-you-betcha/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 17:43:25 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Operations Manager 2007]]></category>

		<guid isPermaLink="false">http://sqlbatman.com/?p=758</guid>
		<description><![CDATA[Just thought I would share some info from Operations Manager that shows the amount of uptime on our servers here since 1/1/2008. Why? Well, since I am the official DBA of Uptime, a distinction that many have questioned, it felt right to provide some numbers.
I am sure many others will be able to provide better [...]<p><p></p>
<a href="http://thomaslarock.com/2008/12/uptime-you-betcha/">Uptime? You betcha.</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Just thought I would share some info from Operations Manager that shows the amount of uptime on our servers here since 1/1/2008. Why? Well, since I am the official DBA of Uptime, a distinction that many have questioned, it felt right to provide some numbers.</p>
<p>I am sure many others will be able to provide better numbers than what I have. The numbers are based upon sixty-five (65) production servers here. I set up a custom group in Operations Manager for our production servers and ran the canned &#8216;Availability&#8217; report against this group. The report worked well, it took a minute or two for it to run. One thing lacking is that there was no overall percentage of uptime, so I had to export the raw data to Excel and do some manual calculations.</p>
<p>I ran the report for the time period starting on 1/1/2008 until about 10:50 AM EST today, which was an opportunity of roughly 8,568 total minutes. Now, one caveat here&#8230;Operations Manager will compose this report based upon the state that is defined in the Management Packs. So, if I place a box into &#8216;Maintenance Mode&#8217;, I can avoid having it be considered as unplanned downtime. However, if we have a maintenance window on Sunday, and we do work on the box as part of a planned window, but do not put the box into maintenance mode, then it gets marked as unplanned downtime. Make sense?</p>
<p>Well, most of the time we do not bother with maintenance mode, so I am comfortable that this report shows a very close representation of our production servers. Well, except that some of the downtime on the server could mean the OpsMgr agent wasn&#8217;t running, so there would be no way to capture the data on that box without the agent running. So, if the agent is down, but the box is up, the report shows that as &#8216;monitoring unavailable&#8217;. Now my head hurts.</p>
<p>Okay, here is what you want to know. We had 99.999397% uptime for the current year. That uptime is a simple calculation of the number of hours the OpsMgr agents were up and running and detected the MSSQL service was running, divided by the total number of hours possible. So, it is possible that the service was up and running but users could not connect, which you would (rightfully) want to consider as a problem. But hey, no report is perfect, right?</p>
<p>I will keep trying to sift through these OpsMgr reports because I know that many people are interested in them and truthfully I have not been paying much attention to them because they seem to be somewhat nebulous in their details. But before I dig any further, let me make certain I tell my boss about my uptime, and hope he does not ask too many questions.</p>
<p><p></p>
<a href="http://thomaslarock.com/2008/12/uptime-you-betcha/">Uptime? You betcha.</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-758"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2008/12/uptime-you-betcha/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Health Service Flushing</title>
		<link>http://thomaslarock.com/2008/12/health-service-flushing/</link>
		<comments>http://thomaslarock.com/2008/12/health-service-flushing/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 17:04:07 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[Operations Manager 2007]]></category>

		<guid isPermaLink="false">http://sqlbatman.com/?p=720</guid>
		<description><![CDATA[If you are judging this post by the title, you are probably going to be surprised it is about Operations Manager 2007, and not about personal hygiene. But I came across something very useful in the OpsMgr GUI the other day and I thought I should share with those that may care.
Often times I find [...]<p><p></p>
<a href="http://thomaslarock.com/2008/12/health-service-flushing/">Health Service Flushing</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>If you are judging this post by the title, you are probably going to be surprised it is about Operations Manager 2007, and not about personal hygiene. But I came across something very useful in the OpsMgr GUI the other day and I thought I should share with those that may care.</p>
<p>Often times I find myself looking to either recalculate the health state of a particular monitor. And more often than not I find myself pressing a lot of buttons in an effort to get things reset. It finally dawned on me the other day that there must be an easier way to reset the status, and I came across a way to get the job done using the GUI.</p>
<p>&nbsp;</p>
<p>First, go to the monitoring tab, and select the &#8216;Discovered Inventory&#8217; view.</p>
<p>&nbsp;</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2008/12/opsmgr_disc_inv1.png?9d7bd4" rel="prettyPhoto[720]"><img class="size-medium wp-image-735 alignright" title="opsmgr_disc_inv" src="http://thomaslarock.com/wp-content/uploads/2008/12/opsmgr_disc_inv1.png?9d7bd4" alt="" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Then, go to the menu item named &#8216;Actions&#8217;, and select &#8216;State Actions&#8217;, then &#8216;Change Target Type&#8217;.</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2008/12/opsmgr_disc_inv_actions1.png?9d7bd4" rel="prettyPhoto[720]"><img class="size-medium wp-image-736 alignright" title="opsmgr_disc_inv_actions" src="http://thomaslarock.com/wp-content/uploads/2008/12/opsmgr_disc_inv_actions1.png?9d7bd4" alt="" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>You should see the &#8216;Select a Target Type&#8217; screen, and from there select the &#8216;Health Service&#8217;.</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2008/12/opsmgr_disc_inv_target1.png?9d7bd4" rel="prettyPhoto[720]"><img class="size-medium wp-image-738 alignright" title="opsmgr_disc_inv_target" src="http://thomaslarock.com/wp-content/uploads/2008/12/opsmgr_disc_inv_target1.png?9d7bd4" alt="" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Next, select the server in the Discovered Inventory state view, and go to the &#8216;Actions&#8217; menu again. This time, select &#8216;Health Service Tasks&#8217;, then &#8216;Flush Health Service State and Cache&#8217;.</p>
<p>&nbsp;</p>
<p><a href="http://thomaslarock.com/wp-content/uploads/2008/12/opsmgr_disc_inv_tasks1.png?9d7bd4" rel="prettyPhoto[720]"><img class="size-medium wp-image-740 alignright" title="opsmgr_disc_inv_tasks" src="http://thomaslarock.com/wp-content/uploads/2008/12/opsmgr_disc_inv_tasks1.png?9d7bd4" alt="" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>One caveat here. This task will reset the health state of ALL rules, monitors, etc. for the selected server. So, if you were looking to just reset one or two particualr monitors, this is not the tool for you. However, if you are looking to clean out everything, then this is the easiest way to get the job done. After the task has been started you can check on the status by simply going to the &#8216;Task Status&#8217; state view in the Monitoring tab, it is located just below the &#8216;Discovered Inventory&#8217; we selected at the start.</p>
<p>Hope this helps.</p>
<p><p></p>
<a href="http://thomaslarock.com/2008/12/health-service-flushing/">Health Service Flushing</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-720"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2008/12/health-service-flushing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Operations Manager Authoring</title>
		<link>http://thomaslarock.com/2008/11/operations-manager-authoring/</link>
		<comments>http://thomaslarock.com/2008/11/operations-manager-authoring/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 22:35:07 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[Operations Manager 2007]]></category>

		<guid isPermaLink="false">http://sqlbatman.com/?p=617</guid>
		<description><![CDATA[I got excited the other day. Very excited. &#8220;Big Idea&#8221; excited. That&#8217;s right, I had a Big Idea, and in that moment of Kramer-esque Zen I could clearly see what I was destined to build with Operations Manager. Alas, in order to build it, I would need to make customizations that I was not sure [...]<p><p></p>
<a href="http://thomaslarock.com/2008/11/operations-manager-authoring/">Operations Manager Authoring</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I got excited the other day. Very excited. &#8220;Big Idea&#8221; excited. That&#8217;s right, I had a Big Idea, and in that moment of Kramer-esque Zen I could clearly see what I was destined to build with Operations Manager. Alas, in order to build it, I would need to make customizations that I was not sure were possible. So, I hit up the Operations Manager SQL newsgroup and asked:</p>
<p>How do I create a custom discovery?</p>
<p>See, Operations Manager, while it is built on the idea that you can monitor anything, also has a similar concept, and that is you can discover anything. It makes no sense for you to be able to monitor something that cannot be discovered, does it? So, I wanted to discover something that I was not able to &#8220;see&#8221; anywhere.</p>
<p>I received a kind response in a short amount of time and was directed to the Operations Manager Authoring console. Authoring console? Wonderful! This should solve everything! Or make my life miserable for two days. Really, at that moment, I figured it could go either way. Shame that it went the way of the latter option. And here I am, blogging about it, in the hope that someone reading this will be able to point me in the right direction.</p>
<p>Honestly, the Authoring console looks great, it really does. The problem with it is that you seemingly have to start from scratch and build up your Management Pack (MP). Now, contrast that with the custom MP&#8217;s you build in the Operations console. When building there you essentially are extending some of the sealed MP&#8217;s, right? Well, that is what I really want. I want to export the MP I have already spent a year building, open that in the Authoring console, and extend it further by doing things the Operations console does not allow. Say, custom object discoveries.</p>
<p>Yeah, I know, it was a pipe dream. When I tried to export and open with the Authoring console I was greeted with a nasty error, telling me that a referenced MP could not be found. Well, not a problem, I suppose, except that I cannot get the *.MP file that it is looking for, because I cannot export a sealed MP. Usability fail.</p>
<p>Okay, let the hack job begin.</p>
<p>I decide that I could look to build another monitor using property bags and piggy back off the other monitors I have been building. It should work, but it is not my preferred choice. What about custom attributes? Well, If i try to create a custom attribute to the SQL DB Engine, it wants to look for a registry key or use a WMI query. Anyone know how to use WMI to get at database objects such as a list of stored procedures or tables? If you do, kindly shoot me an email. Thanks.</p>
<p>So, I have a couple of options but dammit, I want to do this correctly! I should be able to simply extend the current SQL MP&#8217;s to include the discovery of objects such as tables and save that to the current custom MP I have been building. The way things look right now, it is as if I will need to rebuild my MP from scratch, which is not something I am looking forward to. Mostly because I have no idea how to get started. I found relatively few examples on how to get started authoring MP&#8217;s. What I need is a guide that walks through customizing something that already exists, such as MS SQL Server. Sure, I could try to build that myself, starting from a base entity class and working my way up (or is it down?), but I do not believe that is the correct approach. Surely there is someone else out there that has started authoring their own SQL MP using the Authoring console.</p>
<p>Right?</p>
<p>Anyone?</p>
<p>Is the caller there?</p>
<p>I feel&#8230;so&#8230;alone. Which is very weird, since I usually feel so connected.</p>
<p>&lt;heavy sigh&gt;</p>
<p><p></p>
<a href="http://thomaslarock.com/2008/11/operations-manager-authoring/">Operations Manager Authoring</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-617"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2008/11/operations-manager-authoring/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Database Dump Monitoring</title>
		<link>http://thomaslarock.com/2008/11/database-dump-monitoring/</link>
		<comments>http://thomaslarock.com/2008/11/database-dump-monitoring/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 16:02:33 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[Operations Manager 2007]]></category>

		<guid isPermaLink="false">http://sqlbatman.com/?p=591</guid>
		<description><![CDATA[About a month ago I came across a wonderful idea. I thought about how I could use Operations Manager to monitor my databases to ensure they have had a backup done within a predefined amount of time. I know lots of DBAs out there that have similar checks in place, most of which involve reports [...]<p><p></p>
<a href="http://thomaslarock.com/2008/11/database-dump-monitoring/">Database Dump Monitoring</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>About a month ago I came across a wonderful idea. I thought about how I could use Operations Manager to monitor my databases to ensure they have had a backup done within a predefined amount of time. I know lots of DBAs out there that have similar checks in place, most of which involve reports that may or may not be tied to jobs within SQL Agent. And while many of the solutions are adequate, I like solutions that offer pretty lights.</p>
<p>So, I dived into Operations Manager to see what I could see. I found the right target (database engine), and then put together some t-sql that would return the following three columns for each database: database name, days since full dump, days since differential. The code simply goes against the sysdatabases and msdb.backupset tables. I actually have two different versions of the monitor in place, one for sql 2000 and another for sql 2005. And I have plans to deploy to sql 2008, once we start rolling those boxes out.</p>
<p>The end result is that we have real time alerts that send an email notification as soon as a database is found to have a missing backup. I think that is better than waiting until the next day, but I am spoiled because we have a wonderful support team that works during our night shift. We also have the Database State view inside of Operations Manager that will give me a visual interpretation regarding the health of my enterprise.</p>
<p>I gave a demo of this monitor at PASS last week, and it seemed to be well received. I am looking to write up an article about this monitor as well, for those that enjoy looking at the gory details.</p>
<p><p></p>
<a href="http://thomaslarock.com/2008/11/database-dump-monitoring/">Database Dump Monitoring</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-591"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2008/11/database-dump-monitoring/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PASS Update</title>
		<link>http://thomaslarock.com/2008/11/pass-update/</link>
		<comments>http://thomaslarock.com/2008/11/pass-update/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 23:46:22 +0000</pubDate>
		<dc:creator>sqlrockstar</dc:creator>
				<category><![CDATA[Operations Manager 2007]]></category>
		<category><![CDATA[PASS]]></category>
		<category><![CDATA[Professional Development]]></category>

		<guid isPermaLink="false">http://sqlbatman.com/?p=560</guid>
		<description><![CDATA[Sorry I have been so quiet lately, but it was hard finding time to write about everything that is happening to me this week. I took some notes and plan on writing individual blog entries. Most of them should be done before the end of next week, so expect a handful (or more) of entries [...]<p><p></p>
<a href="http://thomaslarock.com/2008/11/pass-update/">PASS Update</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Sorry I have been so quiet lately, but it was hard finding time to write about everything that is happening to me this week. I took some notes and plan on writing individual blog entries. Most of them should be done before the end of next week, so expect a handful (or more) of entries coming your way soon.</p>
<p>No word on the election results. They showed the video today, but I was not able to see then on the big screen because i was part of a breakfast panel in an adjoining room and we ran late on time.</p>
<p>I promise to tweet the result as soon as I know, win or lose.</p>
<p>My talk went well. And by &#8220;well&#8221;, I mean I did not vomit or fall off the stage. The best part was answering questions. Perhaps next year I should just offer my services for an hour and show people how to get something done, and then save it to a custom management pack that I could hand them on a USB stick.</p>
<p><p></p>
<a href="http://thomaslarock.com/2008/11/pass-update/">PASS Update</a> is a post from: <a href="http://thomaslarock.com">SQLRockstar | Thomas LaRock</a>
<p></p>
</p>
<div class="shr-publisher-560"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://thomaslarock.com/2008/11/pass-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic
Database Caching 7/53 queries in 0.051 seconds using disk: basic
Object Caching 1875/1970 objects using disk: basic

Served from: thomaslarock.com @ 2012-05-23 09:35:53 -->
