首页主机资讯Ubuntu LNMP如何实现数据迁移

Ubuntu LNMP如何实现数据迁移

时间2025-11-14 21:47:04发布访客分类主机资讯浏览860
导读:Ubuntu LNMP 数据迁移实操指南 一、迁移总览与准备 明确场景:分为同版本服务器迁移与跨版本升级迁移两类,流程大体一致,但跨版本需额外关注字符集、存储引擎、PHP 扩展兼容性。 备份关键资产: Nginx:配置文件(如 /etc...

Ubuntu LNMP 数据迁移实操指南

一、迁移总览与准备

  • 明确场景:分为同版本服务器迁移跨版本升级迁移两类,流程大体一致,但跨版本需额外关注字符集、存储引擎、PHP 扩展兼容性。
  • 备份关键资产:
    • Nginx:配置文件(如 /etc/nginx/nginx.conf/etc/nginx/sites-available/)。
    • MariaDB/MySQL:全量逻辑备份(如 mysqldump --all-databases)。
    • PHP:自定义 php.ini 与扩展配置。
    • 网站文件:站点根目录(如 /var/www//home/wwwroot/)。
  • 目标环境:建议先安装与源环境相同或兼容Ubuntu + Nginx + MariaDB/MySQL + PHP-FPM 版本,减少迁移风险。
  • 传输与切换:准备 scp/rsync 传输数据,切换前用临时域名或 IP 验证,最后更新 DNS 或负载均衡指向新服务器。

二、数据库迁移步骤

  • 逻辑迁移(通用、最稳妥)
    1. 源库备份:
      • 全库:mysqldump -u root -p --all-databases > all_databases.sql
      • 单库:mysqldump -u root -p dbname > dbname.sql
    2. 传输到新服务器:
      • scp all_databases.sql user@new_ip:/tmp/rsync -av dbname.sql user@new_ip:/tmp/
    3. 目标库导入:
      • 全库:mysql -u root -p < /tmp/all_databases.sql
      • 单库:先 CREATE DATABASE dbname; mysql -u root -p dbname < /tmp/dbname.sql
    4. 应用配置:更新网站配置中的 DB_HOST/DB_NAME/DB_USER/DB_PASSWORD
    5. 验证:检查表数量、关键数据、错误日志。
  • 物理迁移(同版本、停机维护窗口)
    1. 停库:sudo systemctl stop mariadb
    2. 备份并迁移数据目录:
      • sudo cp -R /var/lib/mysql /var/lib/mysql_backup
      • sudo rsync -av /var/lib/mysql_backup/ /new/mysql_data/
    3. 修改配置:/etc/mysql/mariadb.conf.d/50-server.cnf 中设置 datadir = /new/mysql_data
    4. 远程访问(如需):将 bind-address 设为 0.0.0.0 或注释该行,并授权远程用户。
    5. 启动与升级:sudo systemctl start mariadb 后执行 sudo mysql_upgrade -u root -p 校验与修复。
    6. 验证与回滚预案:确认业务正常,保留旧数据目录直至稳定。

三、网站文件与 PHP 迁移

  • 打包与传输:
    • 源站打包:tar -czvf www.tar.gz /var/www/your_site
    • 传到新站:scp www.tar.gz user@new_ip:/tmp/
    • 新站解压:tar -xzvf /tmp/www.tar.gz -C /var/www/
  • PHP 与权限:
    • 安装匹配版本的 PHP-FPM 及扩展(如 php-mysql、php-mbstring、php-gd 等)。
    • 调整目录属主属组(示例):chown -R www-data:www-data /var/www/your_site(以实际运行用户为准)。
    • php.ini 有自定义,复制到新环境并重启 php-fpm
  • 验证:访问常见页面与接口,查看 /var/log/nginx/error.logPHP-FPM 日志

四、Nginx 配置迁移与切换

  • 配置迁移:
    • 备份:sudo cp -r /etc/nginx /etc/nginx_backup
    • 同步站点配置:scp -r /etc/nginx/sites-available user@new_ip:/etc/nginx/sites-available
    • 软链启用站点(如默认站点):sudo ln -sfn /etc/nginx/sites-available/your_site /etc/nginx/sites-enabled/your_site
  • 语法检查与生效:
    • sudo nginx -t 检查语法
    • sudo systemctl reload nginx 热加载(不停机)
  • 切换流量:
    • 低峰期将 DNS TTL 调低,更新 A 记录 指向新服务器;或通过 负载均衡 切流。
    • 观察日志与监控,确认无异常后再下线旧服务器。

五、验证、回滚与注意事项

  • 验证清单:
    • 数据库:关键表行数、主外键、触发器/存储过程、字符集(如 utf8mb4)。
    • 网站:登录、上传、表单提交、定时任务、缓存、SSL。
    • 服务:Nginx、PHP-FPM、MariaDB 均 active (running),错误日志无致命错误。
  • 回滚预案:
    • 数据库:保持旧库只读或快速回切 DNS;物理迁移保留旧 datadir 与最近备份。
    • 文件/Nginx:保留旧站点与配置,随时可切换软链与 DNS。
  • 注意事项:
    • 版本兼容:跨版本迁移先小范围演练,关注 InnoDB/字符集/PHP 扩展差异。
    • 权限与安全:目录权限最小化,数据库账户遵循最小权限原则,禁用不必要远程访问。
    • 防火墙与端口:放行 80/443(Nginx)及数据库端口(如 3306,仅内网或按需开放)。
    • 零停机思路:对核心业务可用 主从复制 实现迁移期近零停机,验证后切换主从或切流。

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


若转载请注明出处: Ubuntu LNMP如何实现数据迁移
本文地址: https://pptw.com/jishu/748468.html
Linux PHP-FPM日志管理技巧 Ubuntu LNMP如何进行性能调优

游客 回复需填写必要信息