Metabase blocking database failover?

We have a Metabase instance that we use to query a single (large) read-only SQL Server database. On a couple of recent occasions, our DBAs were attempting to fail over our database server and the failover process was blocked until they shut down our metabase app, which killed the open connections that metabase had open to the database, and the failover process resumed as normal.

We are attempting to determine what process(es) metabase may have been running that were blocking the database failover process, but unfortunately we don't have the exact list of process running at the time of the incident. One of the possibilities we have identified is the Sync process. Is there any way to disable Sync? We are confident that we do not need it as we use only use metabase as a web front end to allow users to write native sql queries against our database.

Are there any other known processes from metabase that might hold open connections and prevent a database failover?


Hi @kevinmartin, Metabase will always keep a connection open to the DB even though you're not using it. I really don't know how SQL Server works, but I'm guessing that there should be a way of forcing a failover even though there are connections to the read replica.
You can't currently disable sync, but maybe if this is an issue for you, you can move it to a daily sync (settings->admin->databases->"Choose when syncs and scans happen"

Hi there. Yes, we already have it set to run once per day. We really want to disable sync entirely since we don't need it.

@kevinmartin You can disable sync with a hack, see my comment: - upvote by clicking :+1: on the first post

But that won't fix your problem, since Metabase always keeps at least one connection open.
The easiest would be to kill idle connections right before failing over.

We currently don't have a way to (easily) configure adjustments to the connection pools: - upvote by clicking :+1: on the first post