Skip to main content

Why do SQL backups fail with ODBC errors after a Windows Update reboot?

Why do SQL backups fail with ODBC errors after a Windows Update reboot?

Problem Description

After a Windows Update reboot, MS-SQL backups managed by Druva Phoenix may intermittently fail with ODBC connection errors. This behavior typically occurs during the initial backup jobs scheduled or triggered immediately after a server restart, while subsequent retries or delayed backup jobs succeed.

Common Indicators:

  • ODBC connection failure errors recorded in the Druva backup logs.

  • COM+ activation errors (Event ID 4691) present in the Windows Event Viewer.

  • MSDTC-related warnings or errors listed in the Application or System event logs.

Cause

  • The default startup type for the Microsoft Distributed Transaction Coordinator (MSDTC) service is Automatic, meaning it attempts to initialize early in the boot sequence.

  • Following a Windows Update, the operating system is under heavy resource load while finalizing updates and initializing core services.

  • If the Druva Phoenix SQL backup job triggers before MSDTC and COM+ have completely finished initializing, the backup agent fails to establish the required distributed transaction or ODBC connectivity, resulting in an immediate job failure.

Traceback / Logs

Key log snippets from affected servers highlighting this initialization failure include:

Windows Event Viewer (Application/System Log):

Complus Event ID 4691 error (hr = 0x8004d01c) – MSDTC failed to initialize.

main_mssql_service.log:

[2026-04-26 05:15:02] Error: Plugin Server Killed [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (SQLDriverConnect)

sql_agent.log & Phoenix Logs:

[2026-04-26 00:33:58] VssHelper: De-activating COM Error[('IM002', '[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified')]

Resolution

To resolve this issue, change the MSDTC service startup type to Automatic (Delayed Start). This ensures that MSDTC waits until other critical system components have fully started, avoiding resource contention and allowing COM+ initialization to complete successfully before backup requests arrive.

Option 1: Via Windows Services UI

  1. Open the Services console (services.msc) on the affected SQL server.

  2. Locate the Distributed Transaction Coordinator (MSDTC) service.

  3. Right-click the service and select Properties.

  4. Change the Startup type dropdown to Automatic (Delayed Start).

  5. Click Apply, then OK.

  6. Reboot the server during your next maintenance window to verify backups complete normally post-boot.

Option 2: Via Command Prompt

Run the following command from an elevated Command Prompt:

sc config MSDTC start= delayed-auto

⚠️ Note: The sc config command changes the startup configuration for future boots but does not immediately start a stopped service. If the service is currently stopped and you cannot reboot immediately, run net start MSDTC.

Verification

Command Prompt Verification

To verify that the MSDTC service configuration is active and running, execute this command in an elevated prompt:

sc query MSDTC

Expected Output:

STATE: 4 RUNNING

PowerShell Verification

Alternatively, you can quickly check both the status and the startup type via PowerShell:

Get-Service MSDTC | Select-Object Status, StartType

Expected Output:

Status   StartType ------   --------- Running  AutomaticDelayedStart

Additional Recommendations

  • Verify VSS Writers: After a reboot, ensure all SQL-related writers are stable by running vssadmin list writers from an elevated command prompt.

  • Check Component Services: You can open the Component Services console (dcomcnfg) to visually confirm that MSDTC transaction statistics are active and updating.

Did this answer your question?