How-To: Bang your Head against AlwaysOn Availability Group Failed Login Messages!

Best Practice #1: If you are deploying jobs against databases in AlwaysOn Availability Groups, make sure both jobs exist on all replicas. So, in the event of a failover, the jobs can continue to work.

Best Practice #2: Also, as per best practice, if you are setting up this job, the first step in the job should be to run fn_hadr_is_primary_replica check.
Straight forward enough, I think.

Reviewing an AlwaysOn Availability Group configuration, my client asked me to explain the excessive number of logins failed messages on the primary and secondary. I suspected misconfigured jobs, and I was correct. Almost …

The best practice #2 was not followed, so it caused some of the failed login messages. But what was strange was the same job was also redirecting its calls from the secondary SQL Server Agent to the Primary Replica!

Here comes the banging my head against AlwaysOn Availability comes in, I checked everything I can think off:

  • Read-only routing
  • Linked servers
  • Aliases
  • Host file
  • Open query
  • Multi-server job

Nothing! I am like OMG, that is one messed up b**.

I was confounded; what made it worse, my client said this happened after they patched to SQL Server 2016 SP2 CU11. So, I went down a wrong rabbit hole for a while, but I was able to keep my Microsoft hat on and talking to colleagues I found what is happening behind the scenes. This is by design, if client connections fail on the secondary replica, they get redirected to the primary replica.

The question to ask, if SQL Server Agent a client connection? I know the rhetorical question. SQL Server Agent is a core SQL application, but it is an external application. Therefore, it is considered a client connection, and it makes calls using SQL Server native client. Which has built-in logic for backward compatibility for Database Mirroring to redirect connections!

I learned something new (rather old)!

Read up more details here.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.