During an attempt to upgrade Cisco CallManager, the Failed to connect to database error message appears.
Cisco recommends that you have knowledge of these topics:
The information in this document is based on these software and hardware versions:
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Refer to Cisco Technical Tips Conventions for more information on document conventions.
Cisco Unified CallManager Database Replication Validation checks the publisher database server and configured subscriber servers for Database replication exist prior to the upgrade, so if any of the subscribers, which are added to the publisher, is not reachable, then the replication validation returns the failed to connect database error error message.
The Cisco Unified Communications Manager Upgrade Utility, a non-intrusive tool, detects the health of the servers in the Cisco Unified Communications Manager cluster before you perform an upgrade to Cisco Unified Communications Manager. This utility verifies the database replication status for all subscriber servers in the cluster. This utility validates that the database contains the latest information about the system. Validation results include Running, Idle, Failed, or Succeeded.
This situation arises when the subscriber which is added to the cluster is not reachable or not properly removed before you upgrade the cluster. So as a resolution, add proper gateways in order for the subscriber server to be made reachable or remove the subscriber server properly from the cluster with the described procedure.
Complete these steps to the subscriber:
Update the Cisco CallManager in question and assign it to a different server, or delete the Cisco CallManager that is assigned to that server from the CallManager server Administration page.
Delete the conference bridges, MTPs, and MOH servers that use the server that you want to delete and deactivate the services that run on that server.
When you delete a subscriber server from the Cisco CallManager cluster, you use the Server Configuration window in Cisco CallManager Administration. This deletion, however, deletes the server from the Cisco CallManager Administration database, but not all of the server dependencies get deleted. You cannot delete a server that has a specific Cisco CallManager that runs on it. In order to find out which Cisco CallManagers use the server, click the Dependency Records link from the Server Configuration window. If the dependency records are not enabled for the system, the dependency records summary window displays a message.
After the server is removed when you use Cisco CallManager Administration, run the script file in order to remove the SQL replication information. A script file exists for the publisher server and one for the subscriber server. Execute the RemoveServerFromDB.bat script file from the Cisco CallManager publisher server that you want to remove. This script runs from the command prompt from any directory.
Complete these steps:
From any directory on the publisher server, enter this command:
<path where you saved the script>:\RemoveServerFromDB
"server" "database" "name_of_server_to_delete_from_ProcessNode.Name"
When this command is run from the command prompt, errors display; no separate error log file gets generated.
Run RemoveSubscription.bat Script on Subscriber—Execute the RemoveSubscription.bat script file from the Cisco CallManager subscriber server that you want to remove. This script runs from the command prompt from any directory.
<path where you saved the
script>:\RemoveSubscription "server" "database"
Remove Redundant DCD Replication Agreements—After the subscriber server is removed from the cluster, run the clean_publisher script in order to clean its DCD replication information from the publisher DCD. The script file only executes on the publisher server. You can access the script on Cisco CallManager release 3.3 and later. It gets installed on the Cisco CallManager server during installation of Cisco Directory component. From any directory on the publisher server, enter this command: c:\>Clean_publisher.cmd
This script file removes the replication agreements to all nonexistent subscribers from the publisher DCD. It does not delete or modify existing data.
Note: If the Administrator removes the server and does not run the Clean_publisher.cmd script and then adds the server back with the same host name into the same cluster from where it was removed, the DCD script that is used to configure the subscriber DCD cleans up the previous DCD replication agreement from the publisher DCD database during the Directory installation of the Cisco CallManager installation on the server.