Database (Percona/MySQL)
The shared Percona Server on a BOA host: how it is installed and tuned, the my.cnf lifecycle, the nightly mydumper dumps, the browser DB tools, and graceful restarts.
The DB layer on a BOA host is Percona Server, version-pinned per Devuan codename, with one shared server instance per host serving every Octopus instance, the Hostmaster front end, and every hosted site.
This section documents the operating interface:
- how the server is installed and tuned
- how
/etc/mysql/my.cnfis deployed and protected - the nightly
mydumperdump chain - the browser DB tools and their access model
- the graceful stop/start orchestrator the upgrade and self-heal paths drive
Everything here is keyed to the live source:
lib/functions/sql.sh.inc(install, themy.cnftemplate lifecycle, InnoDB sizing, the upgrade-time memory tuner)- the per-DB dump scripts under
aegir/tools/system/ - the
monitor/check/mysql.shself-heal path - the
xtra.sh.incGUI-tool installers
Two things the names suggest but the code does not do are called out explicitly:
mycnfupis not the version migratormove_sql.shdoes not move databases
The architectural shape worth holding in mind:
- One server, host-wide. A single Percona daemon, one
my.cnf, one slow log, one set of binlogs. There is no per-Octopus DB split — per-instance separation is by user/database grants, not by socket or config. - The
my.cnfis template-deployed, not generated. BOA copiesaegir/conf/var/my.cnf.txtover/etc/mysql/my.cnfand sed-patches a handful of directives per Percona series. No per-host generation, no marker diff._CUSTOM_CONFIG_SQL=YESis the only thing that stops the re-deploy. - Credentials never hit the command line. Every BOA-issued MySQL command
authenticates via
--defaults-file=/root/.my.cnf(or the implicit root read), so the root password never lands in/proc/<pid>/cmdline.
The pages below cover Percona install and tuning, the my.cnf lifecycle, the
nightly mydumper dump chain, the browser DB tools, the graceful stop/start
orchestrator, and the Percona 8 upgrade-readiness check.
See the Reference appendix for the consolidated
_VAR and command tables, and Discontinued features
for the dropped Simple Cluster (Percona XtraDB Cluster + ProxySQL + Galera)
and Chive.
Percona install + tuning
Supported Percona versions per Devuan codename, the staged 5.7 to 8.0 to 8.4 in-place upgrade and its recovery guards, the real memory tuner, and the high-load restart.
my.cnf lifecycle + mycnfup
How BOA deploys and per-version sed-patches /etc/mysql/my.cnf, the logging-reset-first rule, the _CUSTOM_CONFIG_SQL protection, and what mycnfup actually does.
Dumps with mydumper
The nightly per-DB mydumper dump chain, the mysql system-schema mysqldump exception, where dumps land, retention, the repair and binlog helpers, and how to restore.
DB GUI tools
Adminer and sqlbuddy on their own subdomain vhosts, the ADM and BDD xtras keywords, and the IP-allowlist plus app-credential access model, with no Ægir or Drupal login.
Graceful MySQLD control (move_sql.sh)
move_sql.sh: the clean stop, start, and restart building block the InnoDB log-resize, Percona-upgrade, and self-heal paths drive. Despite the name it moves no databases.
Percona 8 upgrade readiness (codebasecheck)
codebasecheck: which accounts, if any, block the box-wide 5.7 to 8.0 to 8.4 upgrade, the per-core compatibility thresholds, and the --deep contrib and schema analysis.