Polyserve SQL Installer / Upgrader
When working with the Polyserve SQL Installer or Multi-Node Upgrade Wizard for SQL Server, we noticed an issue where even after applying the SQL Hotfix, the SQL Version was showing as not upgraded on some machines, this was concerning as the utility did allow us to re-virtualize with these instances in different versions, this is a big concern. You do not want a SQL Instance on the cluster to be different versions, Different instances can be different versions, but a single instance should be the same across each machine, see picture:
Surprisingly when you went to the individual machines and checked, the SQL version was the same (so on the picture above, physically checking DEVPLYSQL01, SQLTest1 instance was at version, 9.2.3228). So why was the utility showing 9.2.3152, even after we applied the hotfix ? No error was reported, but something wasn't right.
Not sure if the instance was not put in maintenance mode properly, or if something else occurred, but using RegMon (registry montior) while the multi-node installer utility ran, i was able to determine that the Polyserve utility used a registry entry to populate this screen. We were checking the physical binary sqlservr.exe and @@Version (select @@version). The registry entry is located at: HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL.n\Setup , the key is PatchLevel. Note that you may have to determine what Instance maps to what MSSQL.n, this can be done by checking another key, HKLM\Software\Microsoft\Microsoft SQL Server\Instance Names, There you will see the mapping of an instance name to it's mssql.n location, see below:
Obviously something went wrong, even though no error was reported back through the service pack / hotfix installer. The solution is to ensure to put the Instance in maintenance mode and then being the "non-trusting" type, I manually applied the hotfix / service pack to those nodes that have the issue. Interestingly the hotfix installer indicated the instances had been upgraded, so obviously the hotfix installer doesn't check the same registry entry as the Polyserve installer. I manually checked the instance in question and ran it again. It reported success. I again opened the registry and checked the patch level entry, this time it reported the correct version number. I opened the Polyserve utility, multi-node installer and it also reported all the version numbers correctly and homogenously (is that a word ?). We then took the instances out of maintenance mode and all was good.
We never experienced any errors or issues, so the moral of the story is, "to run your upgrade / service pack / hotfix and re-verify version numbers across each node, regardless of the messagebox reporting success", also "re-open the multi-node installer (it caches information so completely leave the utility), and verify that it "agrees" that the version numbers are the same". Do this before going out of maintenance mode !