diff --git a/services/mysql-backup.hcl b/services/mysql-backup.hcl index 046452e..f795859 100644 --- a/services/mysql-backup.hcl +++ b/services/mysql-backup.hcl @@ -3,11 +3,17 @@ job "mysql-backup" { type = "batch" periodic { - cron = "23 23 * * * *" + crons = ["23 23 * * * *"] prohibit_overlap = true } group "db" { + # Run on primary storage node for fast local disk access + constraint { + attribute = "${meta.storage_role}" + value = "primary" + } + task "backup" { driver = "raw_exec" @@ -21,7 +27,7 @@ job "mysql-backup" { data = < /data/compute/appdata/db-backups/mysql/backup.sql && \ + mysqldump -u root --password="$MYSQL_ROOT_PASS" --all-databases > /data/services/db-backups/mysql/backup.sql && \ echo "last_success $(date +%s)" | \ /run/current-system/sw/bin/curl --data-binary @- http://pushgateway.service.consul:9091/metrics/job/mysql_backup EOH diff --git a/services/mysql.hcl b/services/mysql.hcl index d6a0004..e2d5a36 100644 --- a/services/mysql.hcl +++ b/services/mysql.hcl @@ -6,6 +6,12 @@ job "mysql" { } group "db" { + # Run on primary storage node (zippy) for local disk performance + constraint { + attribute = "${meta.storage_role}" + value = "primary" + } + network { port "db" { static = 3306 @@ -19,13 +25,9 @@ job "mysql" { config { image = "mysql:9.4" - args = [ - # 300M, up from default of 100M - "--innodb-redo-log-capacity=314572800", - ] ports = ["db"] volumes = [ - "/data/compute/appdata/mysql:/var/lib/mysql", + "/data/services/mysql:/var/lib/mysql", ] }