and MySQL ?
,
Solutions
mysqldump (Recommended)Recommended
# (InnoDB ) mysqldump -u root -p \ --single-transaction \ --routines \ --triggers \ --set-gtid-purged=OFF \ ecommerce > ecommerce_$(date +%Y%m%d_%H%M%S).sql # ( 70% ) mysqldump -u root -p --single-transaction ecommerce | gzip > ecommerce_$(date +%Y%m%d).sql.gz # mysql -u root -p ecommerce < ecommerce_20260523.sql # gunzip < ecommerce_20260523.sql.gz | mysql -u root -p ecommerce
mysqldump Common. --single-transaction InnoDB, 50GB.
: < 50GB
Recommended
#!/bin/bash
# /opt/scripts/mysql_backup.sh
set -e DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR=/data/backup/mysql
DB_USER=backup_user
DB_PASS='BackupSecure2026!'
DB_NAME=ecommerce
KEEP_DAYS=7 # mkdir -p $BACKUP_DIR # mysqldump -u $DB_USER -p"$DB_PASS" \ --single-transaction --routines --triggers \ $DB_NAME | gzip > $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz # if [ $? -eq 0 ] && [ -s $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz ]; then echo "[$(date)] : ${DB_NAME}_${DATE}.sql.gz"
else echo "[$(date)] !" >&2 exit 1
fi # find $BACKUP_DIR -name "*.sql.gz" -mtime +$KEEP_DAYS -delete # crontab -e : # 0 2 * * * /opt/scripts/mysql_backup.sh >> /var/log/mysql_backup.log 2>&1crontab, 7,.
:
# mysqldump -u root -p --single-transaction ecommerce users orders > core_tables.sql # () mysqldump -u root -p --no-data ecommerce > schema_only.sql # mysqldump -u root -p --single-transaction \ ecommerce orders --where="created_at >= '2026-01-01'" > orders_2026.sql # CSV SELECT * FROM users INTO OUTFILE '/tmp/users_export.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
, and.
:
xtrabackup (Recommended)
# Percona XtraBackup # apt install percona-xtrabackup-80 # xtrabackup --backup --target-dir=/data/backup/full \ --user=root --password='pass' # ( redo log) xtrabackup --prepare --target-dir=/data/backup/full # ( MySQL) systemctl stop mysql xtrabackup --copy-back --target-dir=/data/backup/full chown -R mysql:mysql /var/lib/mysql systemctl start mysql
xtrabackup, Copy, and mysqldump,.
: > 50GB
and