温馨提示×

Debian MySQL备份恢复案例

小樊
43
2025-08-09 19:38:00
栏目: 云计算

以下是Debian系统下MySQL备份恢复的典型案例及操作要点:

案例1:逻辑备份与恢复(推荐场景:中小型数据库)

需求:备份mydb数据库并恢复到新实例。
操作步骤

  1. 备份数据库
    mysqldump -u root -p mydb > /backups/mydb_20250809.sql  # 备份为SQL文件  
    gzip /backups/mydb_20250809.sql  # 压缩节省空间  
    
  2. 恢复数据库
    gunzip /backups/mydb_20250809.sql.gz  # 解压  
    mysql -u root -p -e "CREATE DATABASE mydb_restore;"  # 创建新库  
    mysql -u root -p mydb_restore < /backups/mydb_20250809.sql  # 导入数据  
    

案例2:物理备份与恢复(推荐场景:大型数据库)

需求:快速备份整个MySQL数据目录并恢复。
操作步骤

  1. 备份数据目录
    sudo systemctl stop mysql  # 停止服务  
    sudo cp -R /var/lib/mysql /backups/mysql_backup  # 复制数据目录  
    sudo chown -R mysql:mysql /backups/mysql_backup  # 确保权限正确  
    sudo systemctl start mysql  
    
  2. 恢复数据目录
    sudo systemctl stop mysql  
    sudo rm -rf /var/lib/mysql/*  # 清空原数据  
    sudo cp -R /backups/mysql_backup/* /var/lib/mysql/  # 恢复备份  
    sudo chown -R mysql:mysql /var/lib/mysql  
    sudo systemctl start mysql  
    

案例3:增量备份与恢复(基于Binlog)

需求:从全量备份后恢复增量数据(如误删表后恢复)。
操作步骤

  1. 前提条件:需提前开启Binlog(log_bin=/var/log/mysql/mysql-bin.log)。
  2. 恢复全量备份
    mysql -u root -p < /backups/full_backup.sql  # 先恢复全量备份  
    
  3. 应用Binlog增量
    mysqlbinlog /var/log/mysql/mysql-bin.000001 --start-datetime="2025-08-09 00:00:00" --stop-datetime="2025-08-09 12:00:00" > incremental.sql  # 解析增量日志  
    mysql -u root -p < incremental.sql  # 应用增量SQL  
    

关键注意事项

  • 权限与安全:备份文件需存放在非Web根目录,建议加密或异地存储。
  • 验证备份:定期用mysqlcheck工具测试备份完整性。
  • 自动化工具:可通过crontab定时执行备份脚本,结合rsync实现远程同步。

以上案例覆盖不同场景,可根据数据库规模和恢复需求选择合适方案。

0