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.