MySQL提供了多种方式进行数据备份和恢复。
- mysqldump工具导出备份:
导出整个数据库:
mysqldump -u root -p db_name > db_backup.sql
导出一个表:
mysqldump -u root -p db_name table_name > table_backup.sql
恢复:
mysql -u root -p db_name < db_backup.sql
- SQL语句备份和恢复:
创建备份表:
sql
CREATE TABLE db_backup LIKE db_name;
INSERT INTO db_backup SELECT * FROM db_name;
恢复:
sql
TRUNCATE db_name;
INSERT INTO db_name SELECT * FROM db_backup;
- InnoDB数据文件备份:
导出InnoDB表空间文件(ibd文件):
innobackupex --user=root --password=xxx /path/to/backup
恢复:
innobackupex --apply-log /path/to/backup
- XtraBackup高性能全量备份工具:
XtraBackup可以创建MySQL数据的物理备份,并生成备份中的元数据文件。
导出备份:
xtrabackup --backup --target-dir=/path/to/backup --user=root --password=xxx
恢复:
xtrabackup --prepare --target-dir=/path/to/backup
xtrabackup --copy-back --target-dir=/path/to/backup
MySQL数据备份和恢复的最佳实践为:
- 使用XtraBackup或InnoDB数据文件备份进行全量备份,增量备份间隔1天到1周。
- 增量备份同步时间短,数据丢失风险小,可作为主要恢复方案。
- 定期执行一次全量备份,作为灾难性恢复的最后手段。
- 备份多个存储介质,并定期测试恢复流程。