Install Dependencies

Install Dependencies

replication-manager is a self-contained binary — no system libraries are required at the OS level. However, several external tools are needed to enable specific features such as backup, proxy management, load testing, and terminal sessions.

replication-manager auto-detects all external tools at startup by searching PATH. If a tool is found, its version is logged and used automatically. If a tool is not found, the related feature is disabled and a WARN state is set in the cluster dashboard. Paths can always be overridden explicitly in the cluster configuration.


Supported Database Versions

Database Minimum version Notes
MariaDB 10.0 GTID recommended (10.0.2+)
MySQL 5.6 GTID recommended (5.6+)
Percona Server 5.6 Treated as MySQL-compatible

GTID-based replication is strongly recommended for reliable failover. Non-GTID topologies are supported with limitations.


External Tools

Auto-Detected Tool Matrix

Tool Feature Auto-detect order Config key to override
mariadb / mysql SQL client, connection checks mariadbmysql → embedded backup-mysqlclient-path
mariadb-dump / mysqldump Logical backups mariadb-dumpmysqldump → embedded backup-mysqldump-path
mariadb-binlog / mysqlbinlog Binlog processing and pitr mariadb-binlogmysqlbinlog → embedded backup-mysqlbinlog-path
mydumper Fast parallel logical backup mydumper → embedded backup-mydumper-path
myloader Fast parallel restore myloader → embedded backup-myloader-path
restic Snapshot backup archiving configured path only backup-restic-binary-path
haproxy TCP/HTTP proxy configured path haproxy-binary-path
proxysql MySQL-protocol proxy configured path proxysql-binary-path
maxscale MaxScale proxy configured path maxscale-binary-path
sysbench Benchmarking / load injection sysbench in PATH sysbench-binary-path
gotty-client Browser terminal sessions gotty-client → embedded backup-gotty-client-path
fusermount / fusermount3 Restic FUSE mount for backup browsing fusermount3fusermount
ssh Remote scripting (onpremise orchestrator) system openssh-client

Embedded fallback: For mariadb/mysql, mariadb-dump/mysqldump, mariadb-binlog/mysqlbinlog, mydumper, myloader, and gotty-client, replication-manager includes compiled-in versions under <share>/<arch>/<os>/. These are used automatically when no system binary is found — no installation required for basic operation.

Version Monitoring

replication-manager actively tracks tool versions at runtime. On every monitoring cycle it runs --version on each configured tool and logs any version change as discovered or changed. If a tool is missing or its version cannot be parsed, the corresponding WARN state is raised:

State Tool
WARN0117 Database client (mariadb / mysql) not found or version unreadable
WARN0118 Dump client (mariadb-dump / mysqldump) not found or version unreadable
WARN0119 Binlog client (mariadb-binlog / mysqlbinlog) not found or version unreadable
WARN0120 MyDumper not found or version unreadable
WARN0121 Restic not found or version unreadable
WARN0167 Sysbench not found or version unreadable

These warnings appear in the cluster dashboard and clear automatically when the tool becomes available.


Per-Feature Dependencies

Logical Backups

# MariaDB client tools (provides mariadb, mariadb-dump, mariadb-binlog)
apt-get install mariadb-client      # Debian/Ubuntu
yum install MariaDB-client          # RHEL/CentOS

# Or MySQL client tools
apt-get install mysql-client

Fast Parallel Backups (MyDumper)

# Debian/Ubuntu — from MariaDB repository or GitHub releases
apt-get install mydumper

# Or download from https://github.com/mydumper/mydumper/releases

Snapshot Backups (Restic)

apt-get install restic      # Debian/Ubuntu
yum install restic          # RHEL/CentOS
# Or: https://restic.net/

Configure Restic in the cluster TOML:

backup-restic               = true
backup-restic-binary-path   = "/usr/bin/restic"
backup-restic-repository    = "/var/lib/replication-manager/backup/restic"
backup-restic-password      = "your-repo-password"

HAProxy

apt-get install haproxy     # Debian/Ubuntu
yum install haproxy         # RHEL/CentOS
haproxy-binary-path = "/usr/sbin/haproxy"

ProxySQL

Download from github.com/sysown/proxysql/releases:

# Debian/Ubuntu example
curl -LO https://github.com/sysown/proxysql/releases/download/v2.7.3/proxysql_2.7.3-debian12_amd64.deb
dpkg -i proxysql_2.7.3-debian12_amd64.deb
proxysql-binary-path = "/usr/bin/proxysql"

Sysbench (Benchmarking)

apt-get install sysbench    # Debian/Ubuntu
yum install sysbench        # RHEL/CentOS
sysbench-binary-path = "/usr/bin/sysbench"

Restic FUSE Mount (Backup Browsing)

apt-get install fuse        # provides fusermount / fusermount3

Remote Scripting (On-Premise Orchestrator)

apt-get install openssh-client

Docker Image Reference

The pro Docker image (signal18/replication-manager:3.1-pro) bundles all of the above. Use it as a reference for what a fully-equipped deployment looks like:

mariadb-client 11.4  (mariadb, mariadb-dump, mariadb-binlog, mariadb-plugin-spider)
mydumper 0.17 + myloader
restic (latest apt)
haproxy (distro)
proxysql 2.7.3
sysbench (distro)
grafana 8.1
gotty-client 1.10
openssh-client
fuse (fusermount3)

The standard image (signal18/replication-manager:3.1) installs none of these — it relies on the embedded fallback binaries for basic SQL client operations and prov-orchestrator = "onpremise" for any provisioning needs.


Overriding Detected Paths

If a tool is installed in a non-standard location, or you want to pin a specific version, set the path explicitly in the cluster TOML:

[mycluster]
backup-mysqlclient-path   = "/opt/mariadb/bin/mariadb"
backup-mysqldump-path     = "/opt/mariadb/bin/mariadb-dump"
backup-mysqlbinlog-path   = "/opt/mariadb/bin/mariadb-binlog"
backup-mydumper-path      = "/opt/mydumper/bin/mydumper"
backup-myloader-path      = "/opt/mydumper/bin/myloader"
backup-restic-binary-path = "/opt/restic/restic"
haproxy-binary-path       = "/opt/haproxy/sbin/haproxy"
proxysql-binary-path      = "/opt/proxysql/bin/proxysql"
sysbench-binary-path      = "/opt/sysbench/bin/sysbench"

When an explicit path is set, auto-detection is bypassed for that tool.