LNMP环境下如何实现数据迁移
导读:LNMP环境下数据迁移实操指南 一、迁移总览与准备 明确目标与范围:是整机迁移、同机目录/磁盘迁移,还是数据库拆分/主从,是否需要跨城/跨省与低停机。 准备新环境:提前安装并调优Nginx/PHP/MySQL或MariaDB,确认端口、目...
LNMP环境下数据迁移实操指南
一、迁移总览与准备
- 明确目标与范围:是整机迁移、同机目录/磁盘迁移,还是数据库拆分/主从,是否需要跨城/跨省与低停机。
- 准备新环境:提前安装并调优Nginx/PHP/MySQL或MariaDB,确认端口、目录结构、运行用户与旧环境一致或兼容。
- 梳理应用配置:记录数据库连接串、缓存、附件目录、定时任务、反向代理/负载均衡指向等。
- 备份与校验:全量备份网站文件与数据库,并做恢复演练与校验和比对。
- 变更窗口与回滚:设定维护页与回滚预案,重要业务建议先在预发布环境验证。
二、方案一 允许停机的整机迁移(最稳妥)
- 步骤
- 旧机备份
- 网站文件:cd /var/www & & tar czf site.tar.gz .
- 数据库:mysqldump -u root -p --single-transaction --routines --triggers --events --hex-blob --databases 需要的库 > db.sql
- 传输到新机
- 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/
- 新机恢复
- 解压:tar xzf site.tar.gz -C /data/www
- 导入:mysql -u root -p < /data/db.sql
- 配置与权限
- 同步或重建Nginx vhost与PHP-FPM池,保持运行用户/UID一致,目录属主属组与旧机一致(如 chown -R www-data:www-data /data/www)。
- 检查数据库用户与权限(特别是应用账号、远程授权)。
- 切换与验证
- 新机启动 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节点拆分到独立服务器,提升性能与安全。
五、方案四 同机目录或磁盘迁移(系统盘→数据盘)
- 步骤
- 分区与格式化新盘:fdisk -l → fdisk /dev/vdb → mkfs.xfs /dev/vdb1(或 ext4)
- 停服务:systemctl stop nginx php-fpm mysqld
- 挂载到临时目录并拷贝:mount /dev/vdb1 /mnt & & cp -rp /var/www /mnt
- 迁移后挂载到目标目录:umount /mnt & & mount /dev/vdb1 /var/www
- 开机自动挂载:echo ‘/dev/vdb1 /var/www xfs defaults 0 0’ > > /etc/fstab
- 启动服务并校验
- 适用:系统盘空间不足,将网站/数据迁移至新数据盘。
六、关键注意事项与验证清单
- 一致性与权限
- 保持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
