Deploy Primary/Replica Topology with Enterprise Server 10.4

Overview

This procedure describes the deployment of the Primary/Replica topology with MariaDB Enterprise Server 10.4 and MariaDB MaxScale 2.5.

Primary/Replica topology provides read scalability and fault tolerance through asynchronous or semi-synchronous single-primary replication.

This procedure has 7 steps, which are executed in sequence.

MariaDB products can be deployed in many different topologies to suit specific use cases. The Primary/Replica topology can be deployed on its own, or integrated with MariaDB Enterprise Cluster.

This procedure represents basic product capability with 3 Enterprise Server nodes and 1 MaxScale node.

This page provides an overview of the topology, requirements, and deployment procedure.

Please read and understand this procedure before executing.

Components

The following components are deployed during this procedure:

Component

Function

MariaDB Enterprise Server 10.4

Modern SQL RDBMS with high availability, pluggable storage engines, hot online backups, and audit logging.

MariaDB MaxScale 2.5

Database proxy that extends the availability, scalability, and security of MariaDB Enterprise Servers

MariaDB Enterprise Server Components

Component

Description

InnoDB

  • General purpose storage engine

  • ACID-compliant

  • Performance

MariaDB MaxScale Components

Component

Description

Listener

Listens for client connections to MaxScale, then passes them to the router service associated with the listener

MariaDB Monitor

Tracks changes in the state of MariaDB Enterprise Servers.

Read Connection Router

Routes connections from the listener to any available Enterprise Server node

Read/Write Split Router

Routes read operations from the listener to any available Enterprise Server node, and routes write operations from the listener to a specific server operating as the primary server

Server Module

Connection configuration in MaxScale to an Enterprise Server node

Topology

Primary/Replica Topology

Primary/Replica topology provides read scalability and fault tolerance through asynchronous or semi-synchronous single-primary replication of MariaDB Enterprise Server 10.4

The Primary/Replica topology consists of:

  • 1 or more MaxScale nodes

  • 1 Enterprise Server node operating as the primary server

  • 2 or more Enterprise Server nodes operating as replica servers.

The MaxScale nodes:

  • Monitor the health and availability of the Enterprise Server nodes

  • Route queries to Enterprise Server nodes using Read/Write Split (readwritesplit) and Read Connection (readconnroute) routers.

  • Promote replica servers in the event that the primary server fails.

The Enterprise Server node operating as the primary server:

  • Receives write queries from MaxScale, logging them to the Binary Log

  • Provides Binary Logs to replica servers for replication

The Enterprise Server nodes operating as replica servers:

  • Receive read queries from MaxScale

  • Replicate writes asynchronously or semi-synchronously from the primary server

Requirements

These requirements are for the Primary/Replica topology when deployed with MariaDB Enterprise Server 10.4 and MariaDB MaxScale 2.5.

Operating System

In alignment to the enterprise lifecycle, the Primary/Replica topology with MariaDB Enterprise Server 10.4 and MariaDB MaxScale 2.5 is provided for:

  • CentOS 7 (x86_64)

  • CentOS 8 (x86_64 / ARM64)

  • Debian 9 (x86_64 / ARM64)

  • Debian 10 (x86_64 / ARM64)

  • Microsoft Windows (x86_64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64 / ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64 / ARM64)

  • Ubuntu 18.04 (x86_64 / ARM64)

  • Ubuntu 20.04 (x86_64 / ARM64)

System User Accounts

User Account

Purpose

maxscale

MaxScale process owner

mysql

Enterprise Server process owner

Quick Reference

MariaDB Enterprise Server Configuration Management

Method

Description

Configuration File

Configuration files (such as /etc/my.cnf) can be used to set system-variables and options. The server must be restarted to apply changes made to configuration files.

Command-line

The server can be started with command-line options that set system-variables and options.

SQL

Users can set system-variables that support dynamic changes on-the-fly using the SET statement.

MariaDB Enterprise Server packages are configured to read configuration files from different paths, depending on the operating system. Making custom changes to Enterprise Server default configuration files is not recommended because custom changes may be overwritten by other default configuration files that are loaded later.

To ensure that your custom changes will be read last, create a custom configuration file with the z- prefix in one of the include directories.

Distribution

Example Configuration File Path

  • CentOS

  • Red Hat Enterprise Linux (RHEL)

  • SUSE Linux Enterprise Server (SLES)

/etc/my.cnf.d/z-custom-mariadb.cnf

  • Debian

  • Ubuntu

/etc/mysql/mariadb.conf.d/z-custom-mariadb.cnf

MariaDB Enterprise Server Service Management

The systemctl command is used to start and stop the MariaDB Enterprise Server service.

Operation

Command

Start

sudo systemctl start mariadb

Stop

sudo systemctl stop mariadb

Restart

sudo systemctl restart mariadb

Enable during startup

sudo systemctl enable mariadb

Disable during startup

sudo systemctl disable mariadb

Status

sudo systemctl status mariadb

MariaDB Enterprise Server Logs

MariaDB Enterprise Server produces log data that can be helpful in problem diagnosis.

Log filenames and locations may be overridden in the server configuration. The default location of logs is the data directory. The data directory is specified by the datadir system variable.

Log

System Variable/Option

Default Filename

MariaDB Error Log

log_error

<hostname>.err

MariaDB Enterprise Audit Log

server_audit_file_path

server_audit.log

Slow Query Log

slow_query_log_file

<hostname>-slow.log

General Query Log

general_log_file

<hostname>.log

Binary Log

log_bin

<hostname>-bin

MaxScale Configuration Management

MaxScale can be configured using several methods. These methods make use of MaxScale's REST API.

Method

Benefits

MaxCtrl

Command-line utility to perform administrative tasks through the REST API. See MaxCtrl Commands.

MaxGUI

MaxGUI is a graphical utility that can perform administrative tasks through the REST API.

REST API

The REST API can be used directly. For example, the curl utility could be used to make REST API calls from the command-line. Many programming languages also have libraries to interact with REST APIs.

The procedure on these pages configures MaxScale using MaxCtrl.

MaxScale Service Management

The systemctl command is used to start and stop the MaxScale service.

Operation

Command

Start

sudo systemctl start maxscale

Stop

sudo systemctl stop maxscale

Restart

sudo systemctl restart maxscale

Enable during startup

sudo systemctl enable maxscale

Disable during startup

sudo systemctl disable maxscale

Status

sudo systemctl status maxscale