As per your comments in your question, what you need to do is two-fold:
- Add SQL Server Agent as a cluster resource type
- Add the SQL Server Agent cluster resource to the failover cluster resource group
For the first step, one way to do this is through PowerShell (utilizing the FailoverClusters module):
Import-Module -Name FailoverClusters
$ClusterName = "YourClusterName"
$FciClusterGroupName = "SQL Server (MSSQLSERVER)" # may need to modify to reflect your environment
# check to see if you have the SQL Server Agent cluster resource type
Get-Cluster -Name $ClusterName |
Get-ClusterResourceType |
Where-Object {$_.Name -eq "SQL Server Agent"}
# if not, add it
Add-ClusterResourceType -Name "SQL Server Agent" -Dll "sqagtres.dll"
Execute each of those blocks of code separately instead of just all at once. You'll be able to confirm whether or not that cluster resource type exists before just blindly attempting to add it.
Then for the second step, here's what you need to do to add the SQL Server Agent as a resource in your failover cluster resource group:
- Right-Click on your FCI resource group within the failover cluster manager
- Select "Add a resource" and select the SQL Server Agent resource type
- Rename the new cluster resource to "SQL Server Agent"
- Go into the new SQL Server Agent resource properties and set the virtual network name and instance name properties
- On the dependency tab, set SQL Server as its dependency resource
You may need to go into the registry at the following location and ensure those keys (one will contain the string "AGENT", another "SQL_ENGINE") are set to 1 (this is where it is recorded on what was installed correctly. 1 denotes correct installation):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\YOURINSTANCE\ConfigurationState
That should get you to a place where you can now install an additional node and have the SQL Server Agent service account appear. Of course, prior to starting ensure that you have a back out here (especially with the registry editing).
This is possible and we successfully completed an upgrade of a single failover cluster instance to SQL 2012 on a cluster with multiple SQL 2008 failover cluster instances.
Perform the upgrade of the instance on the two nodes not hosting the instance first (be sure to select the correct instance when asked as in the screenshot), then finally perform the upgrade on the node hosting the instance.
Best Answer
Yes, that is how we need to roll out patches in the sql cluster with minimum downtime. The downtime will be during the failover part.
Process:
Before doing this do test it in a Test environment and prepare a full proof plan.
Also refer to this link :
https://blogs.msdn.microsoft.com/john_daskalakis/2014/09/05/how-to-install-a-service-pack-at-a-sql-server-2012-failover-instance-best-practices/