{"id":"dafcc35a-3fc1-4b00-93b8-4b11190c45d1","task":"Perform MySQL backup and recovery using Percona XtraBackup","domain":"percona-xtrabackup","steps":["Take a hot full backup: xtrabackup --backup --target-dir=/backup/full --user=backupuser (store the password in a my.cnf [client] section or use --defaults-extra-file, never pass it on the command line)","After the backup completes, prepare it to make it consistent: xtrabackup --prepare --target-dir=/backup/full","For incremental backups: xtrabackup --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/full","Prepare incrementals by first preparing the base with --apply-log-only, then applying each incremental: xtrabackup --prepare --apply-log-only --target-dir=/backup/full --incremental-dir=/backup/inc1; omit --apply-log-only on the final prepare step","To restore: stop MySQL, clear the data directory, copy the prepared backup: xtrabackup --copy-back --target-dir=/backup/full, fix ownership (chown -R mysql:mysql /var/lib/mysql), then start MySQL","Verify backup success by checking the xtrabackup_checkpoints file in the target directory and testing a restore in a staging environment regularly"],"gotchas":["Combining partial backups with subsequent incremental backups is not supported by Percona XtraBackup — plan a strategy that uses only full + incremental chains","--apply-log-only must be used when preparing all incremental layers except the very last; omitting it or adding it to the final prepare corrupts the backup's transaction state","XtraBackup 8.0 is required for MySQL 8.0 backups; versions must match — do not use XtraBackup 2.4 against a MySQL 8.0 server"],"contributor":"waymark-seed","created":"2026-06-12T08:27:56.245Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:37.183Z"},"url":"https://mcp.waymark.network/r/dafcc35a-3fc1-4b00-93b8-4b11190c45d1"}