MySQL全量备份首选mysqldump(中小库≤50GB),需加--single-transaction(InnoDB一致性)、--routines、--triggers;大库或生产环境用XtraBackup热备;Oracle则用RMAN并开启归档模式。

对 Linux 中重要数据库做全量备份,核心是选对工具、保证一致性、留出验证路径。不能只导出文件就完事,得考虑锁表、事务、权限和恢复可行性。
MySQL 全量备份:用 mysqldump 最常用
适用于中小规模数据库(通常建议单库 ≤ 50GB),操作简单、跨平台、恢复直观。
- 基础命令:用 mysqldump -u 用户名 -p 数据库名 > backup_$(date +%Y%m%d).sql 导出单库
- 全实例备份:mysqldump -u root -p --all-databases --single-transaction --routines --triggers > full_backup.sql (--single-transaction 对 InnoDB 保证一致性;--routines 和 --triggers 保留存储过程和触发器)
- 安全前提:避免脚本里硬写密码。推荐创建 ~/.my.cnf,设权限 chmod 600,内容含 [mysqldump] 段落,写 user 和 password
MySQL 大库/生产环境:用 Percona XtraBackup
适合百 GB 级以上或要求不停服的场景,支持热备份(InnoDB)、压缩、流式传输,比 mysqldump 快得多。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 全量备份命令示例:innobackupex --user=root --password=xxx /backup/full/
- 备份后需执行 innobackupex --apply-log /backup/full/2026-10-14_17-50-00/ 准备恢复(回滚未提交事务、前滚已提交事务)
- 注意:XtraBackup 不支持 MyISAM 表热备;若库中混用引擎,备份时会自动加全局读锁,影响写入
Oracle 全量备份:首选 RMAN
RMAN 是 Oracle 官方方案,能备份数据文件、控制文件、归档日志,并支持增量与校验,必须开启归档模式(ARCHIVELOG)。
- 连接并执行:rman target / → backup as compressed backupset database plus archivelog delete input;
- 该命令完成:全库备份 + 归档日志备份 + 自动清理已备份的归档(防磁盘打满)
- 关键检查项:先确认归档状态(archive log list),再确保 db_recovery_file_dest 或自定义归档路径空间充足
备份后必做的三件事
- 校验文件完整性:用 gzip -t backup.sql.gz(如已压缩)或 head -n 20 backup.sql | grep -E "(CREATE|INSERT)" 确认 SQL 文件可读
- 记录元信息:在备份目录下生成 backup_info.txt,注明数据库名、版本、备份时间、命令、大小、校验码(sha256sum backup.sql)
- 定期恢复演练:至少每季度在测试环境还原一次,验证能否真正恢复——不验证的备份等于没备










