使用 mysqldump 工具(逻辑备份)
mysqldump -u [用户名] -p[密码] [数据库名] > backup.sqlmysqldump -uroot -pMyPassword mydb > mydb_backup.sql)mysqldump -u [用户名] -p[密码] [数据库名] [表名] > table_backup.sql使用 mariabackup 工具(物理备份,官方推荐)
sudo apt install mariadb-backupmariabackup --user=[用户名] --password=[密码] --backup --target-dir=/path/to/backupmariabackup --user=[用户名] --password=[密码] --backup --target-dir=/path/to/incr_backup --incremental-basedir=/path/to/last_backup使用 xtrabackup 工具(物理备份,适合大规模数据库)
sudo apt install percona-xtrabackup-24xtrabackup --backup --user=[用户名] --password=[密码] --target-dir=/path/to/backup通过 mysql 命令恢复(逻辑备份)
sudo systemctl stop mariadbmysql -u [用户名] -p[密码] [数据库名] < backup.sqlmysql -uroot -pMyPassword mydb < mydb_backup.sql)sudo systemctl start mariadb通过 mariabackup 恢复(物理备份)
mariabackup --prepare --target-dir=/path/to/backupsudo rsync -aP /path/to/backup/ /var/lib/mysql/sudo chown -R mysql:mysql /var/lib/mysqlsudo systemctl start mariadb通过 xtrabackup 恢复(物理备份)
xtrabackup --prepare --target-dir=/path/to/backupxtrabackup --copy-back --target-dir=/path/to/backup --datadir=/var/lib/mysqlsudo systemctl restart mariadbFLUSH TABLES WITH READ LOCK 锁定表(仅适用于逻辑备份)。mariabackup)和逻辑备份,覆盖不同场景。参考来源: