如果您存量的轻量应用服务器即将到期,并且您已经创建了一台新的轻量应用服务器,需要将存量服务器中的网站数据迁移至新的服务器中,可以参考本文的操作完成数据迁移。

背景信息

当您的轻量应用服务器已部署网站程序并且即将到期时,如果您需要继续保持网站程序的运行,建议您通过以下任一方式进行维护:
  • 及时续费服务器。具体操作,请参见续费服务器
  • 在服务器到期前为服务器创建自定义镜像,然后在创建新的轻量应用服务器时使用该自定义镜像,以实现网站程序完整迁移至新的目标服务器。更多信息,请参见自定义镜像概述

如果您已经创建了新的轻量应用服务器,用于代替即将到期的服务器继续运行网站程序,您可以参考本文的操作步骤完成轻量应用服务器之间的数据迁移。

本文示例中,服务器以及数据迁移工具的说明如下:
  • 服务器说明:

    即将到期的服务器示例名称为服务器A,新建的服务器示例名称为服务器B。其中:

    • 服务器A使用的镜像为LAMP 7.4应用镜像,并且默认已在服务器A的网站根目录/data/wwwroot/default下,部署了Mantis开源缺陷跟踪系统。
      说明 本示例不介绍如何在LAMP服务器中部署Mantis开源缺陷跟踪系统,如果您需要了解部署该系统的具体操作,请参见部署Mantis开源缺陷跟踪系统
    • 服务器B所选用的镜像不限制,但需要已经设置了登录密码。具体操作,请参见管理服务器密码
  • 工具说明:
    • scp命令:该命令是基于SSH协议的远程拷贝文件的命令。服务器A中的网站程序将通过scp命令拷贝至服务器B中。
    • 阿里云数据传输DTS:服务器A中网站程序的数据库数据,将通过阿里云数据传输DTS迁移至服务器B的数据库中。关于DTS的更多信息,请参见什么是数据传输服务DTS

本文的示例场景中,会将服务器A中已部署的Mantis开源缺陷跟踪系统成功迁移至服务器B,并保证系统可运行、数据完整。

迁移前的准备工作与注意事项

在开始迁移之前,您需要完成以下准备工作:
  • 创建快照以备份数据。

    建议您分别为即将到期以及新建的轻量应用服务器创建快照,如果因迁移失败造成服务器数据异常,您可以通过快照回滚服务器的云盘数据。具体操作,请参见创建快照

  • 检查网络。

    您需要确保每台轻量应用服务器具备公网访问能力。如果是跨国际地域迁移,请注意由网络环境不稳定造成的迁移速率过慢等问题。

  • 检查服务器内的授权应用。

    不同地域的轻量应用服务器处于不同的专有网络VPC中,如果您是跨地域迁移,在迁移数据后,系统底层硬件设备会发生变化,可能会导致某些与硬件绑定的应用许可证(license)失效,您需要自行做好检查。

在开始迁移之前,您需要了解以下注意事项:
  • 保证迁移前后两台服务器内的运行环境版本信息一致。
    部分网站对服务器的运行环境的版本有较高的要求,如果迁移前后的运行环境版本不一致,可能导致网站无法正常运行。建议您迁移前后两台服务器选用相同版本的镜像。
    说明 搭建网站的场景多样且复杂,您在实际的迁移过程中,需要根据业务的真实情况,手动配置新的服务器,以保证与即将到期的服务器配置完全一致。例如,您在即将到期的服务器内对其他应用(Nginx、Apache等)的自定义的配置,需要在新的服务器中重新手动配置。
  • 服务器的公网IP将发生变化。

    不同的轻量应用服务器公网IP不相同,如果您之前为服务器绑定了域名,在迁移完成后,您需要在新建的轻量应用服务器中重新绑定并解析域名。

步骤一:确认服务器B的操作系统

轻量应用服务器提供了丰富的镜像供您选择,您需要确认新建的服务器B所使用的镜像与服务器A所使用的镜像是否一致。
  • 如果一致,请跳过该步骤。
  • 如果不一致,您需要先为服务器B重置系统,使服务器B所使用的镜像与服务器A所使用的镜像保持一致。例如,本示例中服务器A所使用的镜像为LAMP 7.4应用镜像,则需要将服务器B的镜像重置为LAMP 7.4应用镜像。重置系统的具体操作,请参见重置系统

步骤二:配置服务器A和服务器B

使用阿里云数据传输DTS迁移数据库数据前,您需要分别在服务器A服务器B中完成以下配置。

  1. 配置防火墙。
    迁移数据库数据时,需要开放服务器防火墙的指定端口。服务器A服务器B内安装的数据库均为MySQL数据库,因此,需要在服务器A服务器B的防火墙中分别开放MySQL默认占用的3306端口。具体操作,请参见添加防火墙规则
  2. 配置MySQL。
    迁移数据库数据时,需要MySQL数据库中的用户具有远程连接权限,因此,您需要在服务器A服务器B中,设置一个用于远程连接的MySQL用户。
    1. 远程连接服务器。
    2. 运行以下命令,切换为root用户。
      sudo su root
    3. 登录MySQL数据库。
      LAMP服务器中未配置环境变量,因此,您需要进入MySQL安装路径下的/bin目录运行命令。
      1. 运行以下命令,进入MySQL安装路径下的/bin目录。
        cd /usr/local/mysql/bin
      2. 运行以下命令,登录MySQL数据库。
        ./mysql -uroot -p
      3. Enter password:后输入MySQL的root用户对应的密码。

        LAMP服务器中MySQL的登录密码您可以通过控制台查询获取。具体操作,请参见管理应用(适用于应用镜像)

        说明 在输入密码时,系统为了最大限度的保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。
    4. 运行以下命令,使用mysql数据库。
      use mysql;
    5. 运行以下命令,创建用于远程连接的数据库用户。
      本示例中,用户名为testUser,密码为Test123
      说明 该密码仅为示例值。您需要自行设置密码,并妥善保管,避免因密码泄露造成的数据异常风险。
      create user 'testUser'@'%' IDENTIFIED BY 'Test123';
    6. 依次运行以下命令,为testUser授予远程连接权限。
      1. 授予远程连接权限。
        grant all privileges on *.* to 'testUser'@'%' with grant option;
      2. 使配置立即生效。
        flush privileges;
    7. 运行以下命令,退出MySQL。
      \q;

步骤三:查看服务器A中的网站数据信息

  1. 查看MySQL中Mantis开源缺陷跟踪系统数据所在的数据库与表。
    1. 运行以下命令,切换数据库至bugtracker
      use bugtracker;
    2. 运行以下命令,查看Mantis开源缺陷跟踪系统相关的表信息。
      show tables;
      查看到的部分表信息如下图所示。show tables
  2. 在本地主机中,使用浏览器访问服务器A的公网IP/index.php,查看当前Mantis开源缺陷跟踪系统中的数据。
    mantis-A其中:
    • ①:表示创建的test-01测试项目。
    • ②:表示创建的test111测试问题。

步骤四:使用scp命令拷贝网站程序

  1. 确认服务器B的信息。
    使用scp命令远程拷贝网站程序时,需要设置目标服务器的公网IP地址以及文件存储路径,因此,您需要确认服务器B的以下信息:
  2. 远程连接服务器A
  3. 运行以下命令,切换至root用户。
    sudo su root
  4. 运行以下命令,使用scp命令将服务器A的网站程序迁移至服务器B。
    scp -r /data/wwwroot/default/* root@<服务器B的公网IP>:/data/wwwroot/default/
    scp命令解析:
    • -r:表示递归拷贝整个目录。如果您需要拷贝的是单个文件,请去掉-r
    • /data/wwwroot/default/*:表示本机(服务器A)中,网站程序所在的文件夹内的所有文件(/*)。
    • root@<服务器B的公网IP>:通过SSH协议远程连接服务器B
    • /data/wwwroot/default/:表示服务器B中的网站根目录。
  5. root@<服务器B的公网IP>'s password:后,输入服务器B的登录密码。
    说明 在输入密码时,系统为了最大限度的保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。
    scp远程拷贝文件的数据传输方式为加密传输,因此传输速率受限,您需要等待文件拷贝完成。

步骤五:查看服务器B中已拷贝的网站程序

  1. 远程连接服务器B
  2. 运行以下命令,切换至root用户。
    sudo su root
  3. 运行以下命令,进入网站根目录。
    cd /data/wwwroot/default
  4. 运行以下命令,查看文件信息。
    ls
    如下图所示,可以查看到Mantis开源缺陷跟踪系统的相关文件信息。mantisbt
  5. 在本地主机中,使用浏览器访问服务器B的公网IP/index.php
    将访问到如下图所示的报错信息。1049报错

    原因是Mantis开源缺陷跟踪系统的数据库数据还未迁移,您需要继续迁移数据库的数据。

步骤六:使用DTS迁移数据库数据

  1. 登录数据传输控制台
  2. 在左侧导航栏,单击数据迁移,然后在页面右上角,单击创建迁移任务
  3. 完成迁移任务的配置。
    配置说明如下:
    • 任务名称:自定义名称。例如test-swas-01
    • 源库信息(服务器A的信息):
      配置项 配置示例
      实例类型 有公网IP的自建数据库
      实例地区 服务器A所在的地域。例如:华东1(杭州)
      数据库类型 MySQL
      主机名或IP地址 服务器A的公网IP
      端口 3306
      数据库账号 testUser
      数据库密码 Test123
      说明 该密码仅为示例值,您需要自行设置密码,并妥善保管,避免因密码泄露造成的数据异常风险。
    • 目标库信息(服务器B的信息):
      配置项 配置示例
      实例类型 有公网IP的自建数据库
      实例地区 服务器B所在的地域。例如:华东1(杭州)
      数据库类型 MySQL
      主机名或IP地址 服务器B的公网IP
      端口 3306
      数据库账号 testUser
      数据库密码 Test123
      说明 该密码仅为示例值,您需要自行设置密码,并妥善保管,避免因密码泄露造成的数据异常风险。
  4. 配置完成后,单击测试连接,测试各个服务器的MySQL是否可以正常连接。
    如下图所示,表示可以正常连接。测试连接
  5. 在页面底部,单击授权白名单并进入下一步,然后在DTS服务器访问授权对话框,单击下一步
  6. 迁移对象区域,单击bugtracker,然后单击图标1图标。
    其他配置保持默认设置。
    操作完成后,正确的界面信息如下图所示。已选择对象
  7. 在页面底部,单击预检查并启动
    您需要等待预检查完毕。预检查
    当预检查完毕后,单击下一步
  8. 购买配置确认对话框,选中《数据传输(按量付费)服务条款》,然后单击立即购买并启动
    本示例中通过DTS迁移数据的操作不计费,您在操作中需要以DTS控制台页面的实际信息为准。关于DTS计费的相关信息,请参见产品定价
    启动迁移任务后,您需要等待迁移任务完成。

步骤七:验证数据迁移结果

  1. 远程连接服务器B
  2. 运行以下命令,切换至root用户。
    sudo su root
  3. 登录MySQL数据库。
    LAMP服务器中未配置环境变量,因此,您需要进入MySQL安装路径下的/bin目录运行命令。
    1. 运行以下命令,进入MySQL安装路径下的/bin目录。
      cd /usr/local/mysql/bin
    2. 运行以下命令,登录MySQL数据库。
      ./mysql -uroot -p
    3. Enter password:后输入MySQL的root用户对应的密码。

      LAMP服务器中MySQL的登录密码您可以通过控制台查询获取。具体操作,请参见管理应用(适用于应用镜像)

      说明 在输入密码时,系统为了最大限度的保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。
  4. 修改数据库root用户的登录密码。
    服务器A中安装Mantis开源缺陷跟踪系统时,配置的数据库登录密码为服务器A中MySQL的root用户对应的密码,因此您需要保证服务器B中MySQL的root用户对应的密码信息与服务器A中的密码信息保持一致。
    1. 运行以下命令,切换数据库至mysql
      use mysql
    2. 运行以下命令,修改root用户的密码。
      UPDATE user SET authentication_string=PASSWORD('<服务器A中数据库的登录密码>') where USER='root';
    3. 运行以下命令,使配置立即生效。
      flush privileges;
  5. 运行以下命令,切换数据库至bugtracker
    use bugtracker
  6. 运行以下命令,查看Mantis开源缺陷跟踪系统相关的表信息。
    show tables;
    查看到的部分表信息如下图所示,与服务器A中查看到的表信息一致。show tables
  7. 在本地主机中,使用浏览器访问服务器B的公网IP/index.php
    如下图所示,正常显示网站信息,不再显示报错信息。mantis-A其中,系统内的信息与服务器A中查看的信息一致。
    • ①:表示创建的test-01测试项目。
    • ②:表示创建的test111测试问题。

后续步骤

由于更换了服务器,因此服务器的公网IP发生了变化。如果您之前的服务器中绑定并解析了域名,则您在完成数据迁移后,需要在新的服务器中重新绑定并解析域名。具体操作,请参见绑定域名和DNS解析