Minimize the MSI code for setup and use MSI code for what it does the best.
In Sql 2005 entire setup process was coded using MSI code which uses the Windows Installer code and was found to be root cause of many setup failures in sql 2005.
However in sql 2008 setup process has been optimized such that MSI code is mainly used to lay down the support files locally and then spawn the setup process locally. There after depending the different scenario (viz install, repair, uninstall, add node to cluster …etc) various different workflows are select and the customized code is executed.
Same Media can be used for the installation irrespective of the CPU architecture i.e x86, x64 and IA64bit
The initial setup.exe which is an unmanaged code detects the CPU architecture of the system and calls the appropriate setup100.exe from the respective folder (x86, x64, IA64) on the DVD
Edition of the Sql Server 2008 is decided by the Product Key Code
In sql server 2008, same media is used for the installation of the entire edition and the edition installed is mainly decided by the Product code
Setup.exe can be patched dynamically on the fly
One of the drawbacks of the sql server 2005 setup was that if there was any bug detected in the code of the setup.exe , the patching of the setup.exe was difficult and at times next to impossible.
With Katmai, it is possible to patch the setup.exe on the fly due to the following property of the bootstrapping code (setup.exe).
When the setup.exe is called it checks for the presence of the local copy of the setup.exe, In other words it checks if the support files are already installed or not. If it finds the local copy of the setup.exe of the same or greater version, the local setup.exe is launched.
So there are 2 ways to patch the setup process
1) If you have a local share of the sql server 2008 installation media on the disk, you can simply replace the old sqlsupport.msi with the new sqlsupport.msi. This can be useful for enterprise customers which uses the single share of the copy of the media for multiple installation
2) If the setup has been installed then in that case sql support files are already been installed. So in that case we will have to download an addition patch from Microsoft site and install the support files of the version higher than the version of setup.exe. So when the setup.exe of the RTM version is called, it finds a local copy of the support files of the version higher than RTM and as explained previously, it launches the setup.exe of the local copy which is the patched setup.exe.
RULES AND VALIDATION CHECKS
With sql 2005, setup performs System Configuration checks (SCC) however with katmai the SCC checks have been further enhanced, there are various rules defined which needs to be met for the successful installation of the sql server.
There are Global Rules checks which apply to all the scenarios (viz install, upgrade, uninstall …etc) however there are additional scenario specific rule checks which need to be met for the specific scenario to succeed.
In sql 2005, there were many failure observed since the uninstall of the previous install was not clean and cannot be detected. In Katmai, Discovery report in the setup process can be used to check for the previous failed installation and which should be cleaned up so that they are not the cause of the failure in the new instance. In addition it can also be used to see the existing sql installation on the system and their version.
Generation of the Configuration File
In an enterprise when we need to perform multiple identical installations of the sql server on different system. It can be much beneficial, faster and efficient to use silent quiet installation of the sql server, wherein the entire configuration option are captured in the single configuration file and can be reused multiple time with minimum user intervention.
Each installation of sql server 2008 creates a configuration file which can be used for silent installation in future. In addition we can specifically run the setup process to create the configuration file. The default location of the configuration file which is created is
C:Program FilesMicrosoft SQL Server100Setup BootstrapLog<session _ folder>.
There are few new changes which I am not able to cover it now but I will try to cover them in my future posts.