温馨提示×

LAMP架构下如何进行数据备份

小樊
45
2025-11-16 09:40:04
栏目: 编程语言

LAMP架构数据备份实操指南

一 备份范围与总体策略

  • 备份对象应覆盖:MySQL/MariaDB 数据库Apache 配置与网站文件用户上传目录日志与必要的系统配置
  • 存储策略建议:本地保留近几日远程/云端保留周期更长,形成多副本异地冗余。
  • 备份类型:结合业务选择全量增量;数据库建议开启二进制日志 binlog以便时间点恢复
  • 自动化与验证:用cron定时执行,保留执行日志,并定期做恢复演练验证可用性。

二 数据库备份与恢复

  • 逻辑备份(通用、跨引擎)
    • 单库:mysqldump -u 用户名 -p 数据库名 > backup.sql
    • 多库:mysqldump -u 用户名 -p --all-databases > all.sql
    • 压缩:mysqldump -u 用户名 -p 数据库名 | gzip > backup.sql.gz
    • 恢复:mysql -u 用户名 -p 数据库名 < backup.sql(压缩包先 gunzip
    • 适用:中小型库、迁移/升级、搭建从库等。
  • 并行备份(大型库提速)
    • 使用 mysqlpump(并行导出):mysqlpump -u 用户名 -p 数据库名 > backup.sql
  • 物理热备(InnoDB,几乎不停机)
    • 使用 Percona XtraBackup
      • 安装:sudo apt-get install percona-xtrabackup(Debian/Ubuntu 示例)
      • 全备:xtrabackup --backup --user=用户名 --password=密码 --target-dir=/backup/full
      • 准备:xtrabackup --prepare --target-dir=/backup/full
      • 适用:大表/高并发,需更快恢复与更短停机窗口。
  • 增量与时间点恢复
    • 开启 log-bin,定期备份 binlog;全备后用 binlog 做基于时间/位置的恢复。
    • 简单做法:将 mysql-bin.* 同步到安全位置,必要时回放至指定时间点。

三 文件系统与Apache备份与恢复

  • 打包网站与配置
    • 网站文件:tar -czvf web_$(date +%F).tar.gz -C /var/www/html .
    • Apache 配置:tar -czvf httpd_conf_$(date +%F).tar.gz /etc/httpd/conf(路径因发行版可能为 /etc/apache2
    • 日志文件:tar -czvf httpd_logs_$(date +%F).tar.gz /var/log/httpd
  • 恢复
    • 网站文件:tar -xzvf web_2025-11-16.tar.gz -C /var/www/html
    • 配置与日志:解压到对应目录并检查权限(如 chown -R apache:apache /var/www/html)。
  • 远程备份与同步
    • rsync:rsync -avz /backup/ user@remote:/backup/(增量、断点续传、可删除远端多余文件)
    • scp:scp /backup/file.tar.gz user@remote:/backup/(一次性拷贝)。

四 自动化与保留策略示例

  • 数据库备份脚本(含压缩与日志)
    • 示例要点:定义变量、创建目录、执行 mysqldump | gzip、记录时间与状态到日志。
    • 定时任务:
      • 每天 02:00 备份数据库:0 2 * * * /path/to/backup_db.sh
      • 每天 02:30 备份网站文件:30 2 * * * /path/to/backup_files.sh
  • 保留与清理
    • 按时间保留(示例保留7天):在脚本中用 find ... -mtime +7 -delete 清理旧备份,避免磁盘被占满。
  • 远程与多地
    • 在备份完成后追加 rsync 同步到异地/云端,实现多地点冗余

五 恢复演练与注意事项

  • 定期恢复演练:随机抽取备份做全量/时间点恢复演练,验证可用性与完整性
  • 权限与安全:备份文件设置最小权限,传输与存储尽量加密;避免与源数据同盘/同城存放。
  • 配置与验证:恢复 Apache 前执行 apachectl configtest 检查语法;恢复后核对站点功能与数据一致性
  • 监控与告警:记录备份日志并设置失败告警,确保问题可被及时发现与处理。

0