As described in the other post AlwaysOn Options the First AlwaysOn option is the FCI version.
As part of the SQL Server AlwaysOn offering, AlwaysOn Failover Cluster Instances leverages Windows Server Failover Clustering functionality to provide local high availability through redundancy at the server-instance level—a failover cluster instance (FCI).
An FCI is a single instance of SQL Server that is installed across Windows Server Failover Clustering nodes and, possibly, across multiple subnets. On the network, an FCI appears to be an instance of SQL Server running on a single computer, but the FCI provides failover from one Windows Server Failover Clustering node to another if the current node becomes unavailable.
Building the Basic Cluster
The Basic is a Cluster based on Hyper-v with the shared VHDX option. So starting with a PowerShell script that Creates a Two node Cluster and with a file share witness. You can easily change the PowerShell script and use this in your own environment. ( Make sure when you grab the script the “ are correct. )
#Install cluster options
install-WindowsFeature “Failover-Clustering”,”RSAT-Clustering” -IncludeAllSubFeature
#Create cluster validation report
Test-Cluster -Node mvpsql141,mvpsql142
New-Cluster -Name MVPSQL1401 -Node mvpsql141,mvpsql142 -NoStorage -StaticAddress “10.255.255.71″
#Add disks to the cluster
Get-ClusterAvailableDisk -Cluster MVPSQL1401
Get-ClusterAvailableDisk -Cluster MVPSQL1401 |Add-ClusterDisk
#Add disk to CSV
Add-ClusterSharedVolume -Cluster MVPSQL1401 -Name “Cluster Disk 1″
#Set Cluster Quorum
Set-ClusterQuorum -Cluster MVPSQL1401 -FileShareWitness \mvpdc01cluster
#set network configuration
(Get-ClusterNetwork “Cluster Network 1”). Role =3
(Get-ClusterNetwork “Cluster Network 2”). Role =1
Remember this is a Lab environment
Now that the Cluster is up and running we can start with the next steps.
This Cluster will be the basic of all SQL installations. Speaking off SQL Installations I use only 2014 SQL servers and guess what it has new options that I will show you later.
Well now that the cluster is ready we will deploy SQL 2014 ENT to the cluster, everybody can follow a wizard So we do as usual a Command line install based on ini files. This works the best and the result is always the same. But you can use also VMM or SCCM to do this.
First I use My SQL Ini files, If you don’t have the ini files no problem You can easily create them during the SQL setup. But if you install only one SQL server there is no point of doing this. Only just because you can
And If you want to install this by Gui Fine just remember, I always install in advanced mode If one step is failing I can rerun the second step without the long wait of installing the whole server. Setups are always failing at the end.
When running these steps at the end there is a location where the ini file is stored. copy the ini and put it on a save spot.
In my case I use c:SQL
There is only one thing that you need to change UIMODE="Normal" you need to turn it off by placing “ ; “ or delete the line we do not do a UI setup
And if you don’t like the interface is showing what the setup is doing then turn this off also. I like to watch so that my boss is thinking I work hard.
; Parameter that controls the user interface behavior. Valid values are Normal for the full UI,AutoAdvance for a simplied UI, and EnableUIOnServerCore for bypassing Server Core setup GUI block.
; Setup will not display any user interface.
When the ini files are in place remember you need 3 ini files
Step 1 : SQL server Advanced Cluster Preparation
Step 2 : SQL server Advanced Cluster Completion
Step 2 : SQL server Join Cluster Node
I mounted the ISO to the Cluster nodes and run this batch file on the first node. As you can see the password is in the file and unencrypted. You can be prompted for this but as this is a how to it is not important right now.
d:setup.exe /qs /CONFIGURATIONFILE="c:sqlsql14CSVConfigstep1.ini" /AGTSVCPASSWORD="Password01" /ASSVCPASSWORD="Password01" /SQLSVCPASSWORD="Password01" /ISSVCPASSWORD="Password01" /RSSVCPASSWORD="Password01" /IACCEPTSQLSERVERLICENSETERMS /INDICATEPROGRESS
d:setup.exe /qs /CONFIGURATIONFILE="c:sqlsql14CSVConfigstep2.ini" /IACCEPTSQLSERVERLICENSETERMS /INDICATEPROGRESS
After this is done you will have a One node SQL instance.
Add A second node To the SQL FCI
The Second step will be running the step3 script Adding the Second node to the Cluster.
And Again I do this by Command line But Did you know there is an option in the setup UI that you can use INI files during the setup ?
When using this the setup is not unattended but all the values are used in the ini file. So it is a NEXT NEXT FINISH install this could be handy if you want to change something.
Or run the Command line below the join the node to the SQL Instance.
d:setup.exe /qs /CONFIGURATIONFILE="C:sqlstep3addnode ConfigurationFile.ini" /AGTSVCPASSWORD="Password01" /ASSVCPASSWORD="Password01" /SQLSVCPASSWORD="Password01" /IACCEPTSQLSERVERLICENSETERMS /INDICATEPROGRESS
After these steps the SQL AlwaysOn Failover Cluster Instances is ready.
If you want to see the installation Steps I created a movie with about the same steps. the whole Process creating and install SQL in just 15 Minutes. not fully untended just for showing you what is possible.
Next part will be AlwaysOn Availability Groups (SQL Server) With a connection to Azure