One of my clients had an interesting situation where none of the SQL Maintenance plans were working. The example what I am using here is a SQL Server backup maintenance plan failing. I also saw a behavior where all the individual jobs were working fine as expected.
Here is the error we were seeing in the job history
Description: Failed to acquire connection “Local server connection”. Connection may not be configured correctly or you may not have the right permissions on this connection. End Error Warning: 2018-01-21 15:48:36.32 Code: 0x80019002 Source: OnPreExecute
(A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible.
From above it is clear that the maintenance plan was not able to connect to this instance of SQL Server. As we know, the Maintenance Plans uses SSIS engine to execute the plans. Every plan which gets created has a connection defined, which gets used during the plan execution. If the connection defined is not correct, the plan execution will fail with the above errors. I suspected something like this to be happening here.
So, I asked my client “the most famous question” in the troubleshooting world – What was changed recently?
and, they replied – “We changed the SQL Server port from default port 1433 to a non-default port 2433”
And I think that was a major clue.
Based on the public documentation, all the jobs created via Maintenance Plans are executed via DTExec.exe which is an external 64-bit client process. This process tried to connect to the instance of SQL Server before executing the assigned step. Here is the place to see the connections.
As the SQL Port number was changed to a non-default port, either we need to put that in connection (as shown above) or create SQL Server client-side alias for this instance, locally, using the new port number.
Reference: Pinal Dave (https://blog.sqlauthority.com)