replication-manager is a high availability solution to manage MariaDB 10.x and MySQL & Percona Server 5.7 replication topologies.
The main features are:
- Replication monitoring
- Topology detection
- Slave to master promotion (switchover)
- Master election on failure detection (failover)
- Replication best practice enforcement
- Target to up to zero loss in most failure scenarios
- Multiple cluster management
- Proxy integration (ProxySQL, MaxScale, HAProxy, Spider)
The container runs with http-server enabled by default and exposed on port 10001. You can either mount a configuration file or use environment variables with REPLICATION_MANAGER_* prefixes and skip config reads.
Example usage, deploying a container with a config file in the working directory:
docker run -d -p 10001:10001 -v $(pwd)/config.toml:/etc/replication-manager/config.toml --name repman signal18/replication-manager:latest
Example usage, deploying with env-only config:
docker run -d -p 10001:10001 \
-e REPLICATION_MANAGER_DEFAULT_SKIP_CONFIG=true \
-e REPLICATION_MANAGER_DEFAULT_HTTP_SERVER=true \
-e REPLICATION_MANAGER_DEFAULT_HTTP_BIND_ADDRESS=0.0.0.0 \
-e REPLICATION_MANAGER_DEFAULT_HTTP_PORT=10001 \
-e REPLICATION_MANAGER_CLUSTER1_DB_SERVERS_HOSTS=db1,db2 \
-e REPLICATION_MANAGER_CLUSTER1_DB_SERVERS_CREDENTIAL=root:admin \
-e REPLICATION_MANAGER_CLUSTER1_REPLICATION_CREDENTIAL=root:admin \
--name repman signal18/replication-manager:2.0
The container also includes the replication-manager client. You can run commands non-interactively such as:
docker exec -ti repman replication-manager-cli switchover
As Replication Manager is a network application, it is wise to deploy it in existing Docker installations with user-defined networks, using orchestrators such as Compose, Kubernetes or Swarm.
The source repository provides a working example for Compose.
replication-manager is released under the GPLv3 license. (complete licence text)
It includes third-party libraries released under their own licences. Please refer to the vendor directory for more information.
It also includes derivative work from the go-carbon library by Roman Lomonosov, released under the MIT licence and found under the graphite directory. The original library can be found here: https://github.com/lomik/go-carbon
Replication Manager for MySQL and MariaDB is developed and supported by SIGNAL 18 SARL.
