游乐游手机版
首页/系统平台/文章详情

Ubuntu下MySQL数据库备份与恢复方法详解

时间:2026-08-21 06:16
Ubuntu 上 MySQL 备份与恢复完整指南一 常见备份方案概览逻辑备份:使用 mysqldump 导出为 sql 脚本,适用于中小型数据库、跨版本迁移以及时间点恢复(结合二进制日志使用)。并行逻辑备份:使用 mysqlpump(MySQL 5 7 12+)提高导出效率,适合多库或较大的数据库

Ubuntu 上 MySQL 备份与恢复完整指南

UbuntuMySQL如何备份和恢复

一 常见备份方案概览

  • 逻辑备份:使用 mysqldump 导出为 .sql 脚本,适用于中小型数据库、跨版本迁移以及时间点恢复(结合二进制日志使用)。
  • 并行逻辑备份:使用 mysqlpump(MySQL 5.7.12+)提高导出效率,适合多库或较大的数据库实例。
  • 物理热备:使用 Percona XtraBackup 在不停机的情况下备份 InnoDB,适合大型数据库和快速恢复场景。
  • 时间点恢复 PITR:启用 binlog 后,通过 mysqlbinlog 回放指定时间段或指定位置的事务日志。

二、mysqldump的逻辑备份与恢复应用

  • 备份
    • 单库:mysqldump -u root -p --single-transaction --quick mydb > mydb.sql
    • 多库:mysqldump -u root -p --databases db1 db2 > dbs.sql
    • 全库:mysqldump -u root -p --all-databases > all.sql
    • 压缩:mysqldump -u root -p mydb | gzip > mydb.sql.gz
    • 远程:mysqldump -h 10.0.0.9 -P 3306 -u root -p mydb > mydb.sql
    • 常用选项说明:
      • –single-transaction:为 InnoDB 创建一致性快照,通常可避免锁表。
      • –quick:边读取边输出,降低内存占用,更适合较大的表。
      • 主从/复制场景可加 –master-data=2(记录 binlog 位点,方便后续 PITR 恢复)。
  • 恢复
    • 准备库:mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS mydb;"
    • 导入:mysql -u root -p mydb < mydb.sql
    • 压缩包:gunzip < mydb.sql.gz | mysql -u root -p mydb
    • 全库导入:mysql -u root -p < all.sql
  • 要点
    • 逻辑备份文件本质上是文本格式的 SQL,便于审计、修改、迁移和版本留存。
    • 建议在业务低峰期执行备份任务,并保留多份历史备份文件以降低风险。

三 使用 mysqlpump 并行备份与恢复

  • 备份
    • 单库:mysqlpump -u root -p mydb > mydb_pump.sql
    • 多库:mysqlpump -u root -p --databases db1 db2 > dbs_pump.sql
    • 全库:mysqlpump -u root -p --all-databases > all_pump.sql
  • 恢复
    • 与 mysqldump 相同:mysql -u root -p mydb < mydb_pump.sql
  • 要点
    • mysqlpump 支持并行导出,备份速度通常快于 mysqldump;但恢复时仍然使用 mysql 客户端进行导入。

四、运用Percona XtraBackup执行物理热备与恢复

  • 安装
    • Ubuntu:sudo apt-get update && sudo apt-get install percona-xtrabackup-24
  • 备份
    • 全量:sudo xtrabackup --backup --target-dir=/opt/backup/2025-12-10
  • 准备(使备份一致性)
    • sudo xtrabackup --prepare --target-dir=/opt/backup/2025-12-10
  • 恢复
    • 建议先停库并清空数据目录:sudo systemctl stop mysql && sudo rm -rf /var/lib/mysql/*
    • 拷贝回数据:sudo xtrabackup --copy-back --target-dir=/opt/backup/2025-12-10
    • 修正权限:sudo chown -R mysql:mysql /var/lib/mysql
    • 启动:sudo systemctl start mysql
  • 要点
    • 适合大库、高可用以及零停机备份需求,恢复效率通常更高。
    • 仅适用于 InnoDB/XtraDB;如果存在 MyISAM 表,在准备阶段通常会发生锁表。

五 时间点恢复与自动化运维

  • 时间点恢复 PITR
    • 确认开启 binlog:mysql -u root -p -e "SHOW VARIABLES LIKE 'log_bin';"
    • 按时间回放:mysqlbinlog --start-datetime="2025-12-10 10:00:00" --stop-datetime="2025-12-10 10:05:00" /var/log/mysql/mysql-bin.000001 | mysql -u root -p
    • 按位置回放:mysqlbinlog --start-position=154 --stop-position=1056 /var/log/mysql/mysql-bin.000001 | mysql -u root -p
  • 自动化备份脚本与定时任务
    • 示例脚本 /opt/backup/mysql_backup.sh
      #!/bin/bash
      DATE=$(date +%F_%H-%M-%S)
      BACKUP_DIR="/opt/backup/mysql"
      DB="mydb"
      USER="root"
      mkdir -p "$BACKUP_DIR"
      mysqldump -u "$USER" -p --single-transaction --quick "$DB"
      | gzip > "$BACKUP_DIR/${DB}_${DATE}.sql.gz"
      find "$BACKUP_DIR" -name "*.sql.gz" -mtime +7 -delete
    • 赋权:chmod +x /opt/backup/mysql_backup.sh
    • 每天 02:00 执行:0 2 * * * /opt/backup/mysql_backup.sh
  • 远程备份与传输
    • rsync -a vz /opt/backup/mysql user@remote:/backup/mysql/
    • scp /opt/backup/mysql/mydb_*.sql.gz user@remote:/backup/mysql/
  • 备份管理与验证
    • 定期进行恢复演练/自动化恢复测试,确保 MySQL 备份文件真实可用。
    • 建议将备份保存到远程/云存储,同时做好访问控制加密保护
来源:https://www.yisu.com/ask/18071296.html
上一篇Ubuntu安装和配置MySQL数据库详细教程 下一篇Ubuntu下MySQL数据库性能监控方法与优化技巧
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。