Ok this post is not only on how to setup a sql 2008 cluster but more on what can go wrong and more important how to solve this.
As much as I hate an installation that goes wrong and you spent day’s on how to solve this because you can ‘t bing your problem.
Here is what I have on hardware in this case a two node cluster windows 2008 R2 RC build 7100 and the SQL 2008 DVD
I have more than enough disk space in may case I have two disk of 100 GB but I will use only one disk per instance this is not Best Practice but handy in a test lab.
So I downloaded the SQL DVD and hit the setup.
I love the warning but as every one I do not read it and click run program 2x , finaly there is the setup splash.
So First I do the Prereq. This is nice this way you can see if the configuration you use is ok for the job.
Well I have a pending reboot and a .NET security warning , mmm strange I can’t connect to the Web . first a reboot.
Since this is not tux I rebooted the kernel.
ok after the Reboot I hit setup again and I click the setup failover cluster , now there is no pending reboot here and I can go further
Remember that You must use the same product key on your Cluster nodes !!!!
Yes I agree who reads this any way I just wanna do a fast setup my boss want the sql cluster ready today. Yes I can.
Yes next
next eh No MSDTC ? do I need it ? mmmm network binding error firewall error can’t the setup handle this for me ?
Troubleshoot the install errors:
Ok it seems is will not be a next next finish I agree setup Right. and this is whay you must read the guides!! except in a demo where things must go wrong.
So first we do a MSDTC setup this is needes if You wanna do Transactions
We also need to cluster the Microsoft Distributed Transaction Coordinator resource (MSDTC). Although MS DTC is not required for Database Engine-only installation, without it being clustered, you would receive a warning message during the setup configuration checks because of the incompliance of the Cluster_IsDTCClustered rule. If you need to install SSIS, Workstation Components or use distributed transactions, then MS DTC must be clustered. In our example, the MSDTC resource is clustered in a group called "Your name MSDTC Group". This group contains the MSDTC resource, a shared Physical Disk T: to store MSDTC log files, a network name, and an IP Address. Before clustering MSDTC, network MSDTC access must be enabled on both nodes. For more information, please refer to http://support.microsoft.com/kb/817064/. The MSCS Cluster Service account will need to have public rights to SQL Server so that it can run SELECT @@servername for the IsAlive cluster checks.
Setup MSDTC :
This is the easy part Go in you FCM ( Failover Cluster Manger ) configure a service or application and select the MSDTC.
So I give the MSDTC the IP and point it to the new disk for the log files. I use a separate disk for the MSDTC so that I can move the resource where and whan I want.
Done I just created my MSDTC failover cluster resource !
Network binding Order :
This error is easy to fix and it is new I have never seen this error ( or I did always ther right steps ) so go to your network tab eh yes but where is it. well it take me almost a minute to find it.
Go to Control Panel\Network and Internet\Network Connections
click organize and layout and check the menu bar now you can go to advanced.
Back to the SQL backup :
So Again I swing the SQL setup
I named the first instance and changed the default
So whay would you use DHCP ?? just give it a fixed IP
I use the same service account for all the services added the administrator to the sql admins. You should create a group and put users in i. but you can do this later.
What is this \\?\volume{
Ok this is strange I give the SQL server disk 4 , lets see what the problem is. Oh ok this is a CSV disk CSV = cluster shared volume.
You can’t use this disk!.
So I added a fresh new iscsi target to the nodes and run the setup again.
No errors
As in the settings above I filling the items and go.
Ok Now I have more disks to use and I do not choose a CSV volume , and no I do not wanna use DHCP
Same services account
Now as you can see I can see the disk letter this is great and almost done.
Yes I do believe in the error roporting this way we can make the product better.
No the filestream does not need an update I’m using Windows 2008 R2 RC state of the art server. I saved the config file maybe I do a command line setup later if I want to reinstall this cluster.
C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20090604_212627\ConfigurationFile.ini
As you can see the ini file is easy to read and to adjust where needed.
What another error ;-( kerberos , Well this is a nice error bink it and you will see not much errors or resolution about this.
Did I miss something I solved all the other errors.
So what is it :
RequireKerberos
Controls whether or not the Network Name resource can be brought online without Kerberos authentication. The choices are:
RequireKerberos is set to 1. The next time this resource is brought online, clients using this resource will be authenticated using Kerberos. That is, a computer object for the Network Name resource will be created or updated before that resource comes online.
RequireKerberos is set to 0. Disables this option, that is, no computer object is created for the Network Name resource. This is the default. The Cluster service will try to detect if a computer object already exists for the Network Name resource; if a computer object is present, the resource will fail to come online. If this property were previously set to 1, setting it back to zero will disable the computer object created for this Network Name resource, if any.
Do not rename a Network Name resource and change the Kerberos authentication setting at the same time. Instead, allow time for changes to replicate after performing each action.
When I looked at my install I can’t see anything about a sql cluster only the network name. ah no ip settings.let me fix this.
Done fixed the IP and bring it online start the sql manager and go. NO it won’t work. You know whay. YOU missed the error in the beginning.
this is saying USE SP1 my download came without sp1 and I can download sp1 but how to use it.
Well it is not easy, yes it is.
First copy the files from the DVD to a disk location.
use robocopy .
robocopy “sqlDVD” to “ disklocation” ( change the names !)
download the sp1 sql 2008 software details.aspx-FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19
Extract the sp1 files to the hardisk loaction
SQLServer2008SP1-KB968369-x86-ENU.exe /x:v:\SQLSERVER2008_FullSP1\PCU
SQLServer2008SP1-KB968369-x64-ENU.exe /x:v:\SQLSERVER2008_FullSP1\PCU
SQLServer2008SP1-KB968369-ia64-ENU.exe /x:v:\SQLSERVER2008_FullSP1\PCU
Change the Setup files
robocopy SQLSERVER2008_FullSP1\PCU v:\SQLSERVER2008_FullSP1 setup.rll
robocopy SQLSERVER2008_FullSP1\PCU v:\SQLSERVER2008_FullSP1 setup.exe
robocopy v:\SQLSERVER2008_FullSP1\pcu\ia64 v:\SQLSERVER2008_FullSP1\ia64 /xf Microsoft.SQL.Chainer.PackageData.dll
robocopy v:\SQLSERVER2008_FullSP1\pcu\x64 v:\SQLSERVER2008_FullSP1\x64 /xf Microsoft.SQL.Chainer.PackageData.dll
robocopy v:\SQLSERVER2008_FullSP1\pcu\x86 v:\SQLSERVER2008_FullSP1\x86 /xf Microsoft.SQL.Chainer.PackageData.dll
and merge the sp1 files.
And change the installation path in the DefaultSetup.ini located in the ia64,x64,x86
PCUSOURCE="z:\SQLSERVER2008_FullSP1\PCU"
So I did the complete setup again but now with SP1 and I can login in the SQL manager
Watch the servername instance you can see this in de FC manager netbios name and sql name.
Now that we are installed SQL on node 2 we must install SQL2008 SP1 on node 2.
Just add the node to the cluster and follow the guide fillin the serial
Fill in the password and next
I hope I showed you that alot can go wrong and a setup can always be tricky if you want to to this to fast.
I will mesh this configuration so that I hopefully have
nice errors to solve.
In the next session I will add a second instance.
positive comments are welcome
This is a great post! Thank you!
Great post.
Q: I am getting error while installing SQL cluster. The error is thrown during installation(pls see below). What does cause this? I chose available SQL cluster name + IP but getting error somehow related to it.
Feature: Database Engine Services
Status: Failed: see logs for details
Reason for failure: An error occurred during the setup process of the feature.
Next Step: Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
Component name: SQL Server Database Engine Services Instance Features
Component error code: 0x86D80001
Error description: The resource ‘SQL IP Address 1 (NAMEOFCLUSTER)’ of type ‘IP Address’ could not be created in group ‘SQL Server (MSSQLSERVER)’. There was a failure to call cluster code from a provider. Exception message: Generic failure . Status code: 5010. Description: The object already exists. ..
Error help link: http://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=11.0.2100.60&EvtType=0xE8049925%400x42B4DED7&EvtType=0xE8049925%400x42B4DED7
Hi igor,
like the error the IP or netbios name already exist on your network, you have to use unique ip’s and names in the cluster.
See also my other blogs, how I did install sql 2012 on windows 2012 / win 8
Hello Robert thank your for the greate article….i have a very unusual large cluster set up as explained beow and need you feed back if possible…
I have a 5 node A/A/A/A/P SQL 2008 R2 cluster on Windows 2008 R2 cluster. As of today, Node 1 has a named SQL Instance running on it and is set to Failover to Node2 and they both are the preferred owners/failover partners. Next, Node 3 has a named SQL instance installed on it and is set to failover to Node 5 and they both are preferred owners/failover partners in cluster. Node 4 doesn’t have anything running on it but it is in the windows cluster.
The task I was given is to now first change the failover partner(preferred owners) of Node 1 to Node 5(this is Node 2 at present) and then install a new named SQL cluster instance on the Node 2 and set it to failover to Node 5. Next thing I need to do is, install another named SQL instance on the Node 4 and set it to failover to Node 5. The ultimate goal here is all the first 4 nodes will have once single named instance running on each of them and they will all be set to failover to ONLY Node 5 in case any one goes down. Yeah Node 5 has all the resources like memory, CPU to handle the load of 4 nodes at a time.
In order to accomplish this here is my plan…
1. On Node 5, I run the SQL setup and do “Add node to the SQL failover cluster”. This is in preparation to make the failover partner for instance on Node 1 to Node 5. While doing this step in “Cluster Node Configuration” I will select the name of instance on Node 1 in “SQL Server Instance name” option.
2. Now I change the Failover partner instance on Node 1 to Node 5 and make Node 1 and Node 5 preferred owners.
3. Now I run the set up on Node 2 and select the “New SQL Server failover cluster Installation” and install new instance on Node 2.
4. On Node 5, I run the SQL setup again and do “Add node to the SQL failover cluster”. This is in preparation to make the failover partner/preferred owners for instance on Node 2 to Node 5. While doing this step in “Cluster Node Configuration” I will select the name of instance on Node 2 in “SQL Server Instance name” option.
5. Now I run the set up on Node 4 and select the “New SQL Server failover cluster Installation” and install new instance on Node 4.
6. On Node 5, I run the SQL setup again and do “Add node to the SQL failover cluster”. This is in preparation to make the failover partner for instance on Node 4 to Node 5. While doing this step in “Cluster Node Configuration” I will select the name of instance on Node 4 in “SQL Server Instance name” option.
7. Finally I will have to remove the Node 2 which was being used by Instance 1 on Node 1 earlier as a failover partner. I will perform this by following the Maintenance tab of install media and select the option to remove the node.
Please let me know if these steps are correct or if I am missing anything here. Any help will be very appreciated and will make my install smooth as I already have 2 production instances up and running in this cluster and I would like to make sure I don’t mess those during the install.
I Would first install all the SQL instances on the machines that you need, Test the failover of your SQL instances on the new nodes, make sure you have also patched the fresh installed sql instance as in your current SQL instances.
If all is ok then I would remove the SQL instances from the node .
Thanks Very Much Robert for the quick response. Yes i agree removing any nodes will be the last step which is #7 as i mentioned. Do the other steps i have outlined make sense to you or am i missing anything in there?
It seams ok. But make sure the new instances have the same updates as the current instances. You don’t want to failover to a low patched instance or higher.
Good luck.
There is a special forum for all your cluster Q&A
http://social.technet.microsoft.com/Forums/en-US/winserverClustering/threads
Thanks much Robert, appreciate your time.
Hey I am so glad I found your website, I really found
you by accident, while I was researching on Askjeeve for
something else, Regardless I am here now and
would just like to say thanks a lot for a marvelous post and a all round interesting blog (I also love the theme/design),
I don’t have time to read through it all at the moment but I have saved it and also added your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the excellent work.
When creating a DTC resource in SQL 2008, I would get this error:
“An error occurred while creating the Distributed Transaction Coordinator (DTC).
An error occurred while creating a client access point for ’60DTF5SRSQ01′.
Failed to save client access point changes.
Failed to update the network name.
An error occurred renaming resource ’60DTF5SRSQ01 (2)’ to ’60DTF5SRSQ01′.
Cannot create a file when that file already exists.”
We found that the problem was that the resource volume we chose to home the DTC resource on had the same name as the DTC resource. Once we renamed the disk volume, it worked!
Glad you found a solution the resource name must always be unique.