Should DBAs specialize or generalize?

I was running a training day for some developers in one of our subsidiaries last week. A couple of the attendees were developers aspiring to be DBAs. It came up in conversation whether or not being a DBA specialist is a good thing or not. What do I mean by specialist?

SQL Server is a massive area. It includes Analysis Services, SSIS, Developer Stack, etc .,  … you may be DBAing other RDBMSs too, Oracle, DB2, MySQL.

Should you specialize? I think you need to be generalist as much as possible, but have some areas of expertise. So I guess I’m sitting on the fence. Personally, my strong areas are High Availability, TSQL, Performance Tuning, and in training – passing on the knowledge. I love running training sessions, I loved presenting at SQL Bits. This translates to special areas of responsibility at work for me, being an SQL Server Champion, being an evangelist, and this benefits my career, in that it gives me stuff to put on my CV (for the Yanks, CV = resumé)

What is my point? Have areas of interest, and try to know the most you can about the other areas. Personally, I am not a ninja coding DBA (programming language-wise), I am not good in SSIS in depth, I have legacy (SQL Server 2000) experience of Analysis Services. But I feel I specialize in the core. I love the DB engine and I make it my business to know it. I’m not an expert TSQL coder, but I know about performance tuning.

What do you think – generalize or specialize?

Advertisements

SQL Server 2008 cluster instance install into a Windows 2003 Server/SQL Server 2005 cluster: Gotchas!

Last weekend I completed my first clustered SQL Server 2008 instance install, as I have blogged previously, this was into an existing Windows 2003 Server – SQL Server 2005 cluster. I got stung by several gotchas.

First is: don’t forget the pesky filestream hotfix for Windows 2003 server. You need this for installing SQL Server 2008 even if you aren’t using filestream – and it doesn’t error on this until right at the end of the setup choices, just before installation. So annoying, so frustrating, and so easy to forget., Add it to your list of prerequisites/preparation steps – and it needs a reboot, just like .Net Framework 3.5 SP1, and the Windows Installer hotfix.. grrr …. I have blogged about this before, and the relevant MSKB Hotfix is 937444.

I encountered one major problem – I got the following error (setup failed on the first node)

The computer account for Cluster resource ‘SQL Network Name (SQLNAME)’ in domain domain.com.net could not be created for the following reason: Unable to create computer account.

The text for the associated error code is: Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased.

The Cluster Service Account may lack the proper access rights to Active Directory. The domain administrator should be contacted to assist with resolving this issue.

Follow the instructions from this article, under the first section marked ‘To verify that the Cluster service account has the Add Workstations to a Domain user right’. Tedious, annoying, and easy to fix, and it took me a whole week to fix it (I had to play cricket, and couldn’t spend the whole weekend researching the issue!)

Second weekend, and second attempt, on Node 2, (Node 1 now fixed as above), got nearly to the end of setup, it failed with the error ‘Not enough resources’. BAH! I had left the 2 existing SQL Server 2005 instances running on this Node with fixed Max Memories and I think the setup ran out of memory. Had to fail over these 2 instances to the passive node, then uninstall the instance totally – it left it installed, but kind of not clustered – more to come in a following post. After getting myself out of this jam, I made sure I got the 2005 instances off Node 3 and Node 4 off before running Add Node.

Finally, all ok – spangly new 2008 (with SP1 sexily slipstreamed already!) instance ready to play with/configure/use/hand over to users.

I love clustering .. when it works…

Installing a SQL Server 2008 instance into an existing failover cluster of 2005 instances

This document explains how to install a clustered instance of SQL Server 2008 into an existing cluster containing instances of SQL Server 2005. I prepared these shots from doing a real install into my test cluster, so hopefully they’ll be useful for you.

The process assumes disk partitions for the new cluster group are presented to all nodes in the cluster, but not formatted, mounted or yet added as cluster resources. It is also assumed that each existing instance of SQL Server 2005 is at SP3, and that SQL Server 2005 tools, SSIS, shared components, SSNAC etc is installed on each node and are also at SP3. It is also assumed that you have the new (2008) instance’s virtual IP address allocated, and that you have chosen the instance name, its default location, failover order, disk layout, and all its other install configurations (e.g. Collation, Security Mode, Edition etc). Also your service accounts and security groups should be ready.

Obtain SQL Server 2008 install media. Slipstream Service Pack 1 into your install files (if required) as per this article. This means your single install will become SP1 with no 2-stage install, and less chance of reboot requirements. Copy this install folder to all nodes, in their system partition.

On your designated install node (as chosen by you), run disk administrator and format and label the new partitions, give them drive letter(s), and/or create mount points as per your physical disk layout design. Create the new cluster group for your SQL Server 2008 instance. Add to it the physical disk resources for the new instance.

On the install node, run setup for SQL Server 2008. Install the prerequisites (Windows Installer + .Net Framework 3.0 as necessary.) Install Hotfix KB937444 if the cluster you are installing into is running Windows 2003 server. When the prerequisites complete, run setup again:

clip_image002

From the Installation Center front page, click Installation:

.clip_image004

Chose a New SQL Server Failover cluster installation, and wait for the rules to be run:

clip_image006

 

If the checks complete ok, follow the install of Setup Support Files:

clip_image008

The proceed through the Setup Support Rules:

clip_image010

Enter your Product Key:

Untitled

Accept the License (unless you suddenly change your mind!) ..

clip_image014

Chose which features to install:

clip_image016

In my case, I went for:-
Database Engine Services + Replication + FTI
BIDS
Client Tools Connectivity
Client Tools Backward Compatibility
Integration Services
SQL Server Books Online
Management Tools – Basic + complete

Then complete the Instance Configuration:

clip_image018

Enter your SQL Server network name, named instance name, install directory (C:..).

Confirm the Disk usage summary:

clip_image020

Then enter the Cluster Resource Group selection:

clip_image022

Next, complete the Cluster Disk Selection screen, choosing the disks you created earlier:

clip_image024

Enter the IP address allocated next, in the Cluster Network Configuration:

clip_image026

Enter the Cluster Security policy details:-

clip_image028

Next, enetr the server configuration: type in the service account, and select ‘use same for each service’ if you are running SQL Server and Agent under the same account:-

clip_image030

clip_image032

Then specify the collation:

clip_image034

Then enter the Database Engine Configuration, Account provisioning. This is very important, it’s how you gain administrative access to the server after install!

clip_image036

Specify your data directories:

clip_image038

Filestream (don’t enable – unless you’re going to use it!)

clip_image040

Chose your preference for Error Usage and Reporting:

clip_image042

Then the Cluster Installation Rules are checked:-

clip_image044

You then get a summary:

clip_image046

Click next, and watch it install! Installation Progress:

clip_image048

 

And you’re done! (For the first node only).

You must then run SQL Server 2008 setup on the second node, make all the same selections, but choose ‘Add node to Existing SQL Server 2008 cluster’. Of course, if you are an INI file type, you can do an unattended install (probably slicker and quicker, but I am partial to a bit of interactive fun!).

Go through ‘Setup Support Rules’ and all the same steps, until:

clip_image050

Which is pretty obvious, and thereafter it’s pretty easy. Good luck! I haven’t done the slipstreaming SP1 into the install yet, and I have to do this to our live cluster in 9 days, so wish me luck!

Morzine summer holiday 2009

I have just got back from a fabulous week in the northern French Alps.

We flew from Luton on Easyjet. It was a beautiful summer day in England both when we left on Saturday 23rd May and when we returned on Saturday 30th May. Easyjet is like a higher-class Ryanair. One great advantage of flying from Luton is that you don’t have to stack, or have air traffic-control related delays. You just taxi, take-off, have a holiday, then land. No stacking, no waiting, no hassle. And the car parking is half the price of Heathrow.

This is Lucienne (my daughter), Anna (my partner) and Isaac (my son) on our way to board:
1 

This was a family holiday, for Anna’s mother, Jenny, who turned 70 this year, and her father, Edward, who turns 75 in June. We rented a fabulous chalet in Morzine, where my sister (Rachel) runs a ski business and lives with her partner, Dean, and their daughters, Nancy and Isabel.
Rachel helped us find a wonderful place to stay, Chalet Symphony, which has 6 bedrooms, all en suite! It also has a hot tub, in which we spent many happy hours (both daytime and nighttime!):
2
We were joined for the week in the chalet by Anna’s parents, her sister, Camilla, her partner Andrew (H) and their daughter Hebe. Anna’s brother, also called Andrew, and his family also joined us for 2 days, although they stayed in a hotel.

On our first day, the sibling adults and their partners went for a walk, organised by Andrew H. This was a loop from Le Lac Des Mines D’Or (gold mine lake), to Col de Cou. Col de Cou is at the border of Switzerland and France. Here’s Anna posing [i.e. looking gorgeous] there:-

3 

Anna’s parents and the four of us also took a ferry trip on Lake Geneva from Evian-les-Bains (home of the bottled water),to Lausanne:-

4
Lausanne was gorgeous, expensive, and full of pretty women.

We also took a trip to Annecy one day, via the beautiful and spectacular Col de La Colombiers, a sometime route of the Tour De France. Here’s Isaac at the summit:

5 It’s 2000m (over 6000 feet), and you can feel the breathlessness.

Annecy was hot, sunny and beautiful We had a wonderful lunch by one of the river channels (it’s a bit like a clean version of Venice!)
6
We also spent two marvellous afternoons at the fantastic outdoor pool at Thonon-les-Bains, right next to Lake Geneva. It was wonderful. The highlight of the holiday for me!
7 
It also had a marvellous slide down into a plunge pool – much joy ensued.
11
Fortunately (thanks Avis!) we got a free upgrade to our hire car, and ended up with a Volvo XC90 4 wheel-drive, diesel turbo automatic. Marvellous for going up steep hills. Full of comforts and most importantly, could hold 7 of us, which saved Jenny and Edward a huge amount of driving, as they could always come with us.

8
On our last full day I hired a road bike from some friends of Rachel’s, Sam and Gareth, and tackled a couple of climbs, as part of my training for the Etape Du Tour. Here’s a view from the early stages of climbing the Col de Joux Plan out of Morzine, which I started at about 6.30a.m..
9 

We also managed some shopping in Thonon later that day. Isaac and Lucienne loved the out-of-town sports and toy shops respectively.

10 

Thanks to Camilla for her help in organising the trip and also to my lovely sister for her help and welcoming hospitality. Here she is with Isabel on her lap and Dean with Nancy. We loved seeing so much of them during the week.

12 

It is a bit grim having to come back to work.