High Availability
Enterprise applications often require the ability to run continuously for extended periods of time with little or no user-facing downtime.
Replication
MariaDB Enterprise Server and MariaDB Community Server support several different replication options that enable high availability:
Replication |
Description |
---|---|
Asynchronous and semi-synchronous replication that relies on binary logs. |
|
Certification-based replication that relies on the Galera 3 or Galera 4 plugin, depending on the version of MariaDB. |
|
Enterprise ColumnStore supports highly available multi-node deployments. |
|
MariaDB Xpand is highly available by design. |
Replication |
Supported by MariaDB Enterprise Server |
Supported by MariaDB Community Server |
---|---|---|
Yes |
Yes |
|
Yes |
Yes |
|
Yes |
No |
|
Yes |
No |
Automatic Failover with MaxScale
MaxScale's automatic failover capabilities depend on the specific replication solution that is used.:
Replication |
Description |
---|---|
MaxScale's MariaDB Monitor (mariadbmon) detects primary server failure and promotes the most up-to-date replica based on Global Transaction ID (GTID), waits for that replica to execute any transactions in its relay log, and begins routing queries to it. |
|
MaxScale's Galera Monitor (galeramon) is used to minimize application impact upon server failure. Additionally, MaxScale may be used to assign primary and replica roles to database instances within a cluster to support read/write traffic splitting and to minimize the risk of certification failures. |
|
MaxScale's MariaDB Monitor (mariadbmon) determines which node is the primary server, and automatically performs failover upon primary server failure. |
MaxScale's Read/Write Split Router (readwritesplit) includes several configurable features to minimize the impact of failover on client connections:
Feature |
Description |
Replaces back-end server connections to a failed server with connections to a different server, rather than closing the connections. |
|
Ensures the execution of prior transactions before additional queries are routed to different Servers, instead of closing the connection and requiring the application to roll the transaction back and retry. |
|
Ensures all servers handling traffic for a connection have the same session system variables, user-defined variables, etc. |
|
Allows MaxScale to route incomplete queries to a different replica rather than returning an error or closing the client connection. |
|
Allows MaxScale to delay and retry write queries received after a primary fails and before automatic failover completes, rather than returning an error or closing the client connection |
Deploy a High Availability Solution
Choose a back-end MariaDB Enterprise Server or MariaDB Community Server deployment:
Choose a front-end MariaDB MaxScale deployment: