I’m not much of a betting man, but if I had to bet that I would participate in this month’s T-SQL Tuesday #51, without knowing who was the host, I probably would have lost. Now, I hear pretty frequently from Mr. Brimhall, but I had to find out through the twitter verse, that none other than he, Jason Brimhall (b|t), was the dealer, er uh, host of this month’s blog adventure. He always has an ace up his sleeve, and I’d be pretty careful about getting into a game of poker with Mr. Vegas. I mean, do you think they call him SQLRnnR for his marathon man jogging?
Talk about folding, or cutting and running with your losses, I’d watch very carefully who’s counting the cards! Sure, you gotta know when to hold’em, and know when to fold’em, but I’m not about to be hustled by a shady MCM pretending to be a novice! Which brings us to SQL, and in the world of know-it-alls, I’ve been around the block, so one must know to avoid the sucker’s bet. After all, when you put the database in the hands of a non-DBA, life’s a crap shoot!
So, in my recent field of experience, I was called upon to
swoop in on a moment’s notice to do an upgrade to a SQL Server 2012 Cluster. In
the spirit of “what happens in Vegas, stays in Vegas”, I will not reveal any
client or vendor names, and of course not to be sued :-)
It was literally like Thursday evening, “BTW, we need someone to do a 2008r2 to 2012 Cluster upgrade this Friday evening.” No problem, you say? Done this in my sleep, right? Well, this was an active-active cluster on SQL Server 2000r2 cluster with two instances, but that’s not too much of a big deal. Details, PLEASE! Let’s get a quick conference going and we’ll be set. But, I have a lot of questions, and a checklist. Client really needs this done ASAP! We’ll pay you $$$ an hour. Place your bets! So, Client X, I need the server/instance names and IP address, etc. and the info and specs on the NEW cluster hardware we’re upgrading to. What!? No new hardware? An in-place upgrade? Windows 2003? What about the new features and changes in 2012?
I strongly urge you to reconsider and highly recommend against an in-place upgrade. So, you want us to find someone else to do it? Sucker! Uh, no, I can handle it, but I need them to know the risk involved, and come up with a backup plan if this fails. Well, failure is not an option! Great motto, but someone forgot to remove the jokers from the deck! And so, against all the odds, I, well, hedged my bets.
And we were off to the races. What?
Wait a minute, I can’t drive this thing?
Share the screen man. Just tell
me what to do and I’ll click. So, now I
am assuming risk while NOT in the driver’s seat. This is not a cluster upgrade, this is a cluster f!@#*
Put all the resources on A, and will start upgrading B. Uh, the disk is not being recognized on B, let’s just go ahead and start the first instance. By now, I knew the house of cards were crumbling. But, I was committed. Luck be a lady tonight!! Validation man, cluster validation! .NET framework version -001? Ok, let’s download and update that first. Get those disks in order too! 3 Red, as in red failure messages. Let’s try upgrading component by component. Russian roulette is not the same without a gun! ( - Lady Gaga Poker Face J) OK, tools upgraded! Pair of Kings!
Let’s do the first instance, and then the second. Hours later, woohoo! Jackpot! First instance upgraded successfully! Yeah, success! Luck was shining down on me. Second instance, here we go. Let the chips fall where they may! This DBA is on fire. Little did I know we’d be burned. Alright, it’s 3am in the morning – I’ll have a gin and tonic, and can you tell them to pump up the oxygen? Roll of the dice. Craps! Fail-Fail-Fail. Seems my luck has turned. But what about the mortgage and the bills? Heck, daddy needs a new pair of shoes! Come on lucky 7, as in 7 hours later.
By now, the client is getting ornery. They were in it to win it, but now they wanted to know when this would be finished. As the window of opportunity was closing, ok I mean their self-imposed maintenance window, they suddenly wanted to roll-back everything. EVERYTHING! I mean wipe the slate clean, and reinstall, and then re-build the instances, back to 2008 R2. What a waste of time!
I told them, at this point the only thing that makes sense, since the first instance has come online and upgraded successfully, we can re-install the second instance from scratch (as in the horse I bet on was scratched in the ninth race!), and re-attach the database(s) on a new second instance, migrate/recreate and map the logins, and bring it up to 2012 compatibility level.
After much deliberation, and without showing their cards, they decided to bet on my decision and proceed. Fortunately, it was a few not-too-large or complex databases, with only a few key logins that needed to be preserved. No packages here either, thank goodness.
I’m glad they opted to go ahead with the second instance rebuild, instead of a royal flush, and in flushing hours of work down the toilet. I could have said to them “I told you so” But, then I wouldn’t have gotten paid. Isn’t life all full of risk, but an experienced DBA mitigating risk is a smart bet. I could have folded and walked away, but saw it through to a happy end. While I’m not a Vegas man (been there a couple of times), I did grow up around the race track and been to Atlantic City many times. Why you think they call me Bobby-tables ;-)
So, as in life, love, SQL, and casino gambling, my advice is: bet with your head, not over it! Hey, Jason, thanks for hosting this month’s T-SQL Tuesday #51. Lucky son-of-a-gun!
What is T-SQL Tuesday?
T-SQL Tuesday is a monthly blog party hosted by a different blogger each month. This blog party was started by Adam Machanic (blog|twitter). You can take part by posting your own participating post that fits the topic of the month and follows the requirements below. Additionally, if you are interested in hosting a future T-SQL Tuesday, contact Adam Machanic on his blog.
How to Participate
- Your post must be published between 00:00 GMT Tuesday, February 11, 2014, and 00:00 GMT Wednesday February 12, 2014.
- Your post must contain the T-SQL Tuesday logo from above and the image should link back to this blog post.
- Trackbacks should work. But, please do add a link to your post in the comments section below so everyone can see your work.
- Tweet about your post using the hash tag #TSQL2sDay.