首页主机资讯LNMP环境下如何实现数据迁移

LNMP环境下如何实现数据迁移

时间2025-12-10 12:03:04发布访客分类主机资讯浏览771
导读:LNMP环境下数据迁移实操指南 一、迁移总览与准备 明确目标与范围:是整机迁移、同机目录/磁盘迁移,还是数据库拆分/主从,是否需要跨城/跨省与低停机。 准备新环境:提前安装并调优Nginx/PHP/MySQL或MariaDB,确认端口、目...

LNMP环境下数据迁移实操指南

一、迁移总览与准备

  • 明确目标与范围:是整机迁移同机目录/磁盘迁移,还是数据库拆分/主从,是否需要跨城/跨省低停机
  • 准备新环境:提前安装并调优Nginx/PHP/MySQL或MariaDB,确认端口、目录结构、运行用户与旧环境一致或兼容。
  • 梳理应用配置:记录数据库连接串、缓存、附件目录、定时任务、反向代理/负载均衡指向等。
  • 备份与校验:全量备份网站文件数据库,并做恢复演练校验和比对。
  • 变更窗口与回滚:设定维护页回滚预案,重要业务建议先在预发布环境验证。

二、方案一 允许停机的整机迁移(最稳妥)

  • 步骤
    1. 旧机备份
      • 网站文件:cd /var/www & & tar czf site.tar.gz .
      • 数据库:mysqldump -u root -p --single-transaction --routines --triggers --events --hex-blob --databases 需要的库 > db.sql
    2. 传输到新机
      • rsync -avz --progress site.tar.gz db.sql user@new_ip:/data/
      • 或 scp -r /var/www user@new_ip:/data/www & & scp db.sql user@new_ip:/data/
    3. 新机恢复
      • 解压:tar xzf site.tar.gz -C /data/www
      • 导入:mysql -u root -p < /data/db.sql
    4. 配置与权限
      • 同步或重建Nginx vhostPHP-FPM池,保持运行用户/UID一致,目录属主属组与旧机一致(如 chown -R www-data:www-data /data/www)。
      • 检查数据库用户与权限(特别是应用账号、远程授权)。
    5. 切换与验证
      • 新机启动 Nginx/PHP/DB,先在本地 hosts 解析验证,再切换DNS/SLB权重。
  • 适用:数据量中小、允许短暂停机;流程简单、风险低。

三、方案二 不停机迁移(近零停机)

  • 文件近实时同步
    • 首轮全量:rsync -a --delete /var/www/ user@new_ip:/data/www/
    • 切换前最后一次增量:rsync -a /var/www/ user@new_ip:/data/www/,随后短暂停止写入(只读或维护页)。
  • 数据库近实时同步
    • 主从复制:旧库设为主库,新库设为从库同步至接近一致;切换时短暂停写,确认从库追平后提升为新主。
    • 或采用xtrabackup物理热备做快速一致性快照,缩短停机窗口。
  • 域名与切换
    • 提前2天DNS TTL调至5–10分钟;切换时一次性将域名指向新IP,等待全球生效并持续回归测试。
  • 适用:要求高可用/跨省迁移;通过主从+增量rsync实现分钟级切换。

四、方案三 数据库拆分与迁移(DB独立或多实例)

  • 逻辑迁移(通用)
    • 导出:mysqldump -u root -p --databases your_db --routines --triggers --events --hex-blob | gzip > db.sql.gz
    • 传输与导入:scp 到新DB,gunzip | mysql -u root -p
    • 权限与账号:在新库重建同名应用账号授权网段,避免直接使用 root。
  • 配置应用
    • 修改应用配置(如wp-config.php、.env、config.php)中的DB_HOST为新库IP/域名,先内网直连验证。
  • 物理迁移(大库/更快)
    • 停库拷贝数据目录或使用xtrabackup热备,在新库恢复后启动并校验一致性。
  • 适用:将数据库从Web节点拆分到独立服务器,提升性能与安全

五、方案四 同机目录或磁盘迁移(系统盘→数据盘)

  • 步骤
    1. 分区与格式化新盘:fdisk -l → fdisk /dev/vdb → mkfs.xfs /dev/vdb1(或 ext4)
    2. 停服务:systemctl stop nginx php-fpm mysqld
    3. 挂载到临时目录并拷贝:mount /dev/vdb1 /mnt & & cp -rp /var/www /mnt
    4. 迁移后挂载到目标目录:umount /mnt & & mount /dev/vdb1 /var/www
    5. 开机自动挂载:echo ‘/dev/vdb1 /var/www xfs defaults 0 0’ > > /etc/fstab
    6. 启动服务并校验
  • 适用:系统盘空间不足,将网站/数据迁移至新数据盘

六、关键注意事项与验证清单

  • 一致性与权限
    • 保持Nginx/PHP运行用户UID/GID一致,目录权限正确;数据库账号、密码、授权网段与白名单同步。
  • 应用层细节
    • WordPress需更新站点URL:UPDATE wp_options SET option_value=‘https://new.example.com’ WHERE option_name IN (‘siteurl’,‘home’); 并批量替换文章内容链接;清理对象缓存/OPcache/浏览器缓存
  • 切换与回滚
    • 使用维护页只读模式降低切换风险;保留旧机在线一段时间,确认无误后再下线;DNS变更配合低TTL多地探测
  • 校验与演练
    • 核对文件数量/大小/校验和数据行数主外键/触发器/存储过程定时任务SSL证书反向代理/负载均衡与健康检查。
  • 大库策略
    • 数据量**> 50GB优先考虑xtrabackup/物理迁移主从+增量**,缩短停机窗口。

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


若转载请注明出处: LNMP环境下如何实现数据迁移
本文地址: https://pptw.com/jishu/768141.html
Linux LNMP如何配置反向代理 LNMP服务器如何配置缓存策略

游客 回复需填写必要信息