This Knowledgebase article describes a situation where SQL Server 2005 64-bit and SQL Server 2005 32-bit instances are installed side-by-side on the same 64-bit Windows server, and protected by Neverfail for SQL Server.
Where two such instances are installed to non-default (custom) program files locations, the Neverfail setup program may be unable to detect and back up the executables for the 32-bit instance. As a result, this instance, which is present in the Heartbeat ‘Start’ script for SQL Server, fails to start after a switchover to the Secondary server as active and Heartbeat therefore reports that the entire SQL Server application has failed to start.
Note: This is not a supported configuration for Neverfail Heartbeat, and the workaround is provided so that errors do not interfere with the operation of 64-bit databases. Neverfail Setup will detect the presence of both 32-bit and 64-bit SQL Server instances on a 64-bit platform, and will allow the installation of Neverfail for SQL Server to proceed under such circumstances; but Heartbeat does not provide full support for the 32-bit instances.
Heartbeat cannot be used to protect a server running only 32-bit SQL Server instances on a 64-bit platform; in such circumstances, Neverfail Setup will not allow installation to proceed.
Where 32-bit and 64-bit SQL Server 2005 instances are installed to a custom location, the Neverfail Heartbeat Management Client indicates that the SQL Server application has failed to start after a switchover to the Secondary server as active. In the Application -> Status panel of the Management Client, the Status Log pane reports timeout errors for the SQL Server 2005 32-bit services.
If a 32-bit version of SQL Server 2005 is present alongside a 64-bit version on a server, the following will occur when Neverfail Heartbeat is installed on that server:
- All of the services for both SQL Server instances will be protected by Heartbeat.
- Executables for all instances installed in default locations (including C:\Program Files (x86)) will be backed up.
- Executables for any 32-bit instance installed in a non-default location will be omitted from the backup.
- The Neverfail for SQL Server Filter Discovery tool may or may not protect all required data locations for each 32-bit instance.
As a result of 3. and 1. above, errors may occur when Heartbeat attempts to start SQL Server on the Secondary-active server, because service executables may be missing for 32-bit SQL Server instances. As a result, the status of the SQLServer application will be shown as ‘Failed’ in the Neverfail Heartbeat Management Client.
- Ensure that the Primary server is in the active role and the Secondary server is in the passive role. If the Secondary server is currently the active server, perform a Switchover so that the Primary server becomes active.
- Add a file filter to replicate the SQL Server program files that are installed in the non-default (custom) location. For example, if you have a 32-bit SQL Server instance installed to the directory D:\SQLServer_x86\ (containing the directories \MSSQL.1\MSSQL\DATA, \MSSQL.1\MSSQL\FTDATA, \MSSQL.1\MSSQL\REPLDATA and so on), you would use the Data -> Configuration panel of the Neverfail Heartbeat Management Client to add the following filter:
This ensures that all 32-bit SQL Server executables under this directory will be replicated to the Secondary server, even if more than one 32-bit SQL Server instance is present.
Adding a filter will cause Heartbeat to run a File System Filter Change Check task, the progress of which can be monitored via the Data -> File Synch and Verify panel of the Neverfail Heartbeat Management Client. Once this task is complete, indicating that the files under the filter have been replicated to the passive server, the filter can be removed. The 32-bit SQL Server services should then be able to start when the Secondary server becomes active during a switchover or failover.
Neverfail Heartbeat V5.1.0 or later, with SQL Server 32-bit versions running on 64-bit Windows platforms.