To implement the SQL Always On option on Azure VM Microsoft has provided the a tutorial which uses power shell scripting to achieve it (http://msdn.microsoft.com/en-us/library/jj870963.aspx). As per the tutorial we have taken the following steps:-
Step 1:- Create relevant VM’s
We created all the required VM’s required for a 3-node WSFC cluster with the Node Majority quorum model, PFB the details of those VM’s:-
VM Purpose | Host Name | DNS | OS | Virtual Network | Availability Group | External IP |
Quorum Server | xyz-QUOROM | xyz | Windows Server2012(latest) | ABC | A2 | 168.63.xx.xx |
SQL Server 1 | xyz-SQL01 | xyz | Windows Server2012(latest) | ABC | A2 | 168.63.xx.xx |
SQL Server 2 | xyz-SQLCLU01 | xyz | Windows Server2012(latest) | ABC | A2 | 168.63.xx.xx |
Domain Controller | xyz-RODC01 | xyz | Windows Server2012(latest) | ABC | A1 | 168.63.xx.xx |
Step 2:- Install SQL server
We installed SQL server 2012 on the both the nodes as per the requirement. PFB the version of the SQL server installed:-
Onxyz-SQLCLU01:-Microsoft SQL Server 2012 - 11.0.2215.0 (X64)
On xyz-SQL01:- Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Step 3:- Set up a Domain Controller And Appropriate Users
We already had a domain Controller in xyz-RODC01 so used the same server.
We used the existing "Administrator" user for this as it had the required privileges.
Step4:-Import Windows Failover Cluster & Set the firewall settings
On all the three relevant servers Quorum and the two SQL nodes Failover cluster was activated and firewall settings were changed for SQL server to talk with each other on port 1433.
Step 5 :- Run the CreateAzureFailoverCluster.ps1 script
This is a script that internally performs the following 6 steps to set up a WSFC cluster on Azure:-
1. Create a one-node cluster on one the Windows Azure VMs.
2. Set the cluster IP address to static IP 169.254.1.1.
3. Bring the "Cluster Name" resource online so that it will create an entry in active directory.
4. Bring the "Cluster Name" resource offline.
5. Delete the fake "Cluster IP Address" resource.
6. Add the other nodes to the cluster.
Now while running this script we are facing the same errors that are mentioned in the Q&A section given along with the script. PFB the error:-
“Stop-ClusterResource : An error occurred while attempting to take the resource 'Cluster IP Address' offline. The group or resource is not in the correct state to perform the requested operation At H:\CreateAzureFailoverCluster.ps1:103 char:23 + $AllClusterGroupIPs | Stop-ClusterResource + CategoryInfo : InvalidOperation: (:) [Stop-ClusterResource], ClusterCmdletException + FullyQualifiedErrorId : InvalidState,Microsoft.FailoverClusters.PowerShell.StopClusterResourceCommand Get the first IPv4 resource
Removing all IPs except one IPv4 resource
Setting the cluster IP address to a link local address
Get-Cluster : A positional parameter cannot be found that accepts argument 'Cluster IP Address'.At H:\CreateAzureFailoverCluster.ps1:117 char:1+ cluster res $NameOfIPv4Resource /priv enabledhcp=0 overrideaddressmatch=1 addres ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-Cluster], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.FailoverClusters.PowerShell.GetClusterCommand Start-ClusterResource : The operation has timed out. At H:\CreateAzureFailoverCluster.ps1:121 char:24 + $ClusterNameResource | Start-ClusterResource -Wait 60+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationTimeout: (:) [Start-ClusterResource], ClusterCmdletException + FullyQualifiedErrorId : Timeout,Microsoft.FailoverClusters.PowerShell.StartClusterResourceCommandH:\CreateAzureFailoverCluster.ps1 : There was an error onlining the cluster name resource At line:1 char:1+ H:\CreateAzureFailoverCluster.ps1 -ClusterName "$clusterName" -ClusterNode "$ser ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,CreateAzureFailoverCluster.ps1”
Any help on the same would be great
Thanks,
Dhawal Thaker