Update async replication example

This commit is contained in:
Anel Husakovic 2023-11-27 13:20:15 +01:00 committed by Daniel Black
parent 54a8a7fb16
commit 0186989bcc
2 changed files with 55 additions and 23 deletions

6
examples/.env Normal file
View File

@ -0,0 +1,6 @@
MARIADB_ROOT_PASSWORD=secret
MARIADB_REPLICATION_USER=repl
MARIADB_REPLICATION_PASSWORD=replicationpass
PRIMARY_name='mariadb-primary'
REPLICATION_name_1='mariadb-replica-1'
REPLICATION_name_2='mariadb-replica-2'

View File

@ -1,34 +1,60 @@
version: "3" version: "3"
x-common-variables: &common-variables
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
MARIADB_REPLICATION_USER: ${MARIADB_REPLICATION_USER}
MARIADB_REPLICATION_PASSWORD: ${MARIADB_REPLICATION_PASSWORD}
x-common-attributes: &common-attributes
env_file:
- .env
image: mariadb:lts
environment: *common-variables
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
start_period: 10s
interval: 10s
timeout: 5s
retries: 3
x-common-replication: &common-replication
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--replication_io", "--replication_sql", "--replication_seconds_behind_master=1", "--replication"]
interval: 10s
timeout: 5s
retries: 3
depends_on:
master:
condition: service_healthy
services: services:
master: master:
image: mariadb:latest <<: *common-attributes
container_name: ${PRIMARY_name}
command: --log-bin --log-basename=mariadb command: --log-bin --log-basename=mariadb
environment: environment:
- MARIADB_ROOT_PASSWORD=password
- MARIADB_USER=testuser - MARIADB_USER=testuser
- MARIADB_PASSWORD=password - MARIADB_PASSWORD=password
- MARIADB_DATABASE=testdb - MARIADB_DATABASE=testdb
- MARIADB_REPLICATION_USER=repl
- MARIADB_REPLICATION_PASSWORD=replicationpass replica1:
healthcheck: <<:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] - *common-attributes
interval: 10s - *common-replication
timeout: 5s container_name: ${REPLICATION_name_1}
retries: 3
replica:
image: mariadb:latest
command: --server-id=2 --log-basename=mariadb command: --server-id=2 --log-basename=mariadb
environment: environment:
- MARIADB_ROOT_PASSWORD=password - MARIADB_MASTER_HOST=${PRIMARY_name}
- MARIADB_MASTER_HOST=master
- MARIADB_REPLICATION_USER=repl
- MARIADB_REPLICATION_PASSWORD=replicationpass
- MARIADB_HEALTHCHECK_GRANTS=REPLICA MONITOR - MARIADB_HEALTHCHECK_GRANTS=REPLICA MONITOR
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--replication_io", "--replication_sql", "--replication_seconds_behind_master=1", "--replication"] replica2:
interval: 10s <<:
timeout: 5s - *common-attributes
retries: 3 - *common-replication
depends_on: container_name: ${REPLICATION_name_2}
master: command: --server-id=3 --log-basename=mariadb
condition: service_healthy environment:
- MARIADB_MASTER_HOST=${PRIMARY_name}
- MARIADB_HEALTHCHECK_GRANTS=REPLICA MONITOR
networks:
backend: