首页主机资讯Ubuntu LAMP怎样备份与恢复数据

Ubuntu LAMP怎样备份与恢复数据

时间2025-11-26 23:52:03发布访客分类主机资讯浏览1412
导读:Ubuntu LAMP备份与恢复实操指南 一 备份范围与策略 备份对象: 数据库:使用 mysqldump 导出为 .sql;大库可用 mysqlpump(并行)或 Percona XtraBackup(InnoDB 热备)。 网站文件...

Ubuntu LAMP备份与恢复实操指南

一 备份范围与策略

  • 备份对象:
    • 数据库:使用 mysqldump 导出为 .sql;大库可用 mysqlpump(并行)或 Percona XtraBackup(InnoDB 热备)。
    • 网站文件:打包 /var/www/html 及子目录(含用户上传)。
    • 配置文件:如 /etc/apache2/、虚拟主机配置、PHP 配置等。
    • 可选:使用 rsync 做本地/远程增量同步,或用 Timeshift/Deja Dup 做系统级快照与文件级备份。
  • 策略建议:
    • 定期计划:至少每周一次全量,必要时每日增量;保留多份历史。
    • 多地存放:本地盘 + 外置盘/云存储;严格控制备份文件权限。
    • 定期验证:抽样恢复演练,核对数据一致性与可用性。

二 数据库备份与恢复

  • 全量导出单个库:
    • 备份:mysqldump -u root -p dbname > dbname_backup.sql
    • 恢复:先创建数据库(如 CREATE DATABASE dbname; ),再导入:mysql -u root -p dbname < dbname_backup.sql
  • 导出所有库:
    • 备份:mysqldump -u root -p --all-databases > all_databases.sql
  • 大型库优化:
    • 并行导出:mysqlpump -u root -p dbname > dbname_pump.sql
  • InnoDB 热备(不停机):
    • 安装:sudo apt-get install percona-xtrabackup
    • 备份:xtrabackup --backup --user=root --password=YOUR_PASS --target-dir=/backup/xtra_$(date +%F)
    • 准备:xtrabackup --prepare --target-dir=/backup/xtra_$(date +%F)
  • 远程备份:
    • rsync 将 .sql 或 xtrabackup 目录同步到远程主机:rsync -avz /backup/ user@remote:/backup/

示例汇总表:

  • 全量:mysqldump -u root -p db > db.sql | mysql -u root -p db < db.sql
  • 所有库:mysqldump -u root -p --all-databases > all.sql | mysql -u root -p < all.sql
  • 并行:mysqlpump -u root -p db > db_pump.sql | 导入同左
  • 热备:xtrabackup --backup ... | --prepare 后在目标库导入/恢复

三 网站文件与配置备份与恢复

  • 打包网站文件:
    • 备份:tar -czvf /backup/website_$(date +%F).tar.gz -C /var/www/html .
    • 恢复:tar -xzvf /backup/website_YYYY-MM-DD.tar.gz -C /var/www/html
  • 配置文件:
    • 备份:sudo cp -a /etc/apache2 /backup/apache2_$(date +%F)(按需扩展至 sites-available、php.ini 等)
    • 恢复:sudo cp -a /backup/apache2_YYYY-MM-DD/* /etc/apache2/sudo systemctl reload apache2
  • 权限建议:网站目录属主属组设为 www-data:www-data,如:sudo chown -R www-data:www-data /var/www/html
  • 远程同步:
    • 备份到远端:rsync -avz /var/www/html/ user@remote:/var/www/html/
    • 从远端恢复:rsync -avz user@remote:/var/www/html/ /var/www/html/

四 自动化与异地备份

  • 定时任务示例(crontab -e):
    • 每日 02:00 备份数据库:0 2 * * * mysqldump -u root -p'YOUR_DB_PASS' --single-transaction --routines --triggers dbname | gzip > /backup/db_$(date +\%F).sql.gz
    • 每日 03:00 备份网站文件:0 3 * * * tar -czf /backup/www_$(date +\%F).tar.gz -C /var/www/html .
    • 同步到远端:0 4 * * * rsync -avz --delete /backup/ user@remote:/backup/
  • 系统级快照与文件级备份:
    • Timeshift(RSYNC/BTRFS):适合系统分区与配置的回滚。
    • Deja Dup:图形化的用户文件与目录备份。
  • 安全与合规:备份文件设置最小权限(如 600/700),定期做恢复演练与校验。

五 迁移与灾难恢复

  • 迁移到新服务器:
    • 在新机安装相同组件:sudo apt update & & sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql php-fpm -y
    • 传输网站文件与导入数据库(见第二、三节);必要时调整虚拟主机与 SSL 证书路径。
    • 更新 DNS 指向新服务器 IP,访问测试并核查日志:/var/log/apache2/error.log/var/log/mysql/error.log
  • 系统无法启动的离线恢复:
    • 使用 Ubuntu Live USB 启动,挂载系统分区:sudo mount /dev/sda1 /mnt
    • 进入环境:sudo chroot /mnt,用 rsync/cp 将备份拷回,或 tar 解压;退出后重启。
  • 故障排查要点:
    • 数据库导入失败:检查目标库是否存在、字符集/引擎、SQL 模式;必要时加 --force 分批导入。
    • 权限/访问异常:确认 www-data 权限与目录所有权、SELinux/AppArmor 策略、虚拟主机配置与 DocumentRoot 一致。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu LAMP怎样备份与恢复数据
本文地址: https://pptw.com/jishu/757262.html
Ubuntu LAMP如何更新软件版本 Ubuntu LAMP中如何安装PHP扩展

游客 回复需填写必要信息