开发者社区> 问答> 正文

使用FTP迁移SQL Server数据



使用限制


云数据库SQL Server版导入数据有如下限制:


  • 仅支持导入SQL Server 2005、SQL Server 2008和SQL Server 2008 R2版本的数据。

  • 仅支持全量数据导入。

  • 数据库的Recover Mode必须是FULL模式。


前提条件


  • 已创建目标实例和数据库。

  • 如果数据库里有数据,请做好备份,否则目标数据库中的数据会被覆盖。

  • 为确保数据的一致性,请停止本地数据库的写入操作。

  • 已安装Filezilla 3.6.0.2版本的客户端。若未安装,请单击下载

    [backcolor=transparent]注意:目前,RDS仅支持Filezilla 3.6.0.2版本的客户端,安装后请不要升级版本,否则将无法迁移SQL Server数据。


操作步骤



准备本地数据


  1. 执行如下命令,检查本地数据库的Recover Mode。[backcolor=transparent]use[backcolor=transparent] master[backcolor=transparent];
  2. [backcolor=transparent]go
  3. [backcolor=transparent]select[backcolor=transparent] name[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]case[backcolor=transparent] recovery_model
  4. [backcolor=transparent]when[backcolor=transparent] [backcolor=transparent]1[backcolor=transparent] [backcolor=transparent]then[backcolor=transparent] [backcolor=transparent]'FULL'
  5. [backcolor=transparent]when[backcolor=transparent] [backcolor=transparent]2[backcolor=transparent] [backcolor=transparent]then[backcolor=transparent] [backcolor=transparent]'BULD_LOGGED'
  6. [backcolor=transparent]when[backcolor=transparent] [backcolor=transparent]3[backcolor=transparent] [backcolor=transparent]then[backcolor=transparent] [backcolor=transparent]'SIMPLE'[backcolor=transparent] [backcolor=transparent]end[backcolor=transparent] model [backcolor=transparent]from[backcolor=transparent] sys[backcolor=transparent].[backcolor=transparent]databases
  7. [backcolor=transparent]where[backcolor=transparent] name [backcolor=transparent]not[backcolor=transparent] [backcolor=transparent]in[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]'master'[backcolor=transparent],[backcolor=transparent]'tempdb'[backcolor=transparent],[backcolor=transparent]'model'[backcolor=transparent],[backcolor=transparent]'msdb'[backcolor=transparent]);
  8. [backcolor=transparent]go

确认本地数据库的model值:

  • 如果model值不为FULL,请执行步骤2。

  • 如果model值为FULL,请执行步骤3。

执行如下命令,将源数据库的Recover Mode设置为FULL。

[backcolor=transparent]注意:将Recover Mode改成FULL模式后,会致使SQL Server日志增加,请确保有足够的硬盘空间。
  1. [backcolor=transparent]ALTER DATABASE [backcolor=transparent][[backcolor=transparent]dbname[backcolor=transparent]][backcolor=transparent] SET RECOVERY FULL[backcolor=transparent];
  2. [backcolor=transparent]go
  3. [backcolor=transparent]ALTER DATABASE [backcolor=transparent][[backcolor=transparent]dbname[backcolor=transparent]][backcolor=transparent] SET AUTO_CLOSE OFF[backcolor=transparent];
  4. [backcolor=transparent]go

执行如下命令,备份源数据库,本例以备份文件名为filename.bak为例。
  1. [backcolor=transparent]use[backcolor=transparent] master[backcolor=transparent];
  2. [backcolor=transparent]go
  3. [backcolor=transparent]BACKUP DATABASE [backcolor=transparent][[backcolor=transparent]testdbdb[backcolor=transparent]][backcolor=transparent] to disk [backcolor=transparent]=[backcolor=transparent]'d:\backup\filename.bak'[backcolor=transparent] WITH COMPRESSION[backcolor=transparent],[backcolor=transparent]INIT[backcolor=transparent];
  4. [backcolor=transparent]go

执行如下命令,校验备份文件的完整性。
  1. [backcolor=transparent] USE master
  2. [backcolor=transparent] GO
  3. [backcolor=transparent] RESTORE FILELISTONLY
  4. [backcolor=transparent]   FROM DISK [backcolor=transparent]=[backcolor=transparent] N[backcolor=transparent]'D:\Backup\filename.bak'[backcolor=transparent];

返回结果说明:

  • 如果有结果集返回,则备份文件有效。

  • 如果报错,则备份文件有误,请重新备份。

执行如下命令,还原源数据库的Recover Mode。

[backcolor=transparent]说明 :如果您未执行步骤2,即数据库的Recover Mode本来就是FULL,没有做过变更,则无需执行该步骤。
  1. [backcolor=transparent]ALTER DATABASE [backcolor=transparent][[backcolor=transparent]dbname[backcolor=transparent]][backcolor=transparent] SET RECOVERY SIMPLE[backcolor=transparent];
  2. [backcolor=transparent]go


正式迁移操作


  1. 登录RDS管理控制台

  2. 选择目标实例所在地域。

  3. 单击目标实例的ID,进入[backcolor=transparent]基本信息页面。

  4. 在左侧导航栏中,选择[backcolor=transparent]数据库管理,进入[backcolor=transparent]数据库管理页面。

  5. 在要迁入的数据库后面,单击[backcolor=transparent]备份文件(bak)迁入,如下图所示。

  6. 在[backcolor=transparent]数据导入向导页面的[backcolor=transparent]备份你的数据库步骤中,确认已参照[backcolor=transparent]备份本地数据备份好本地数据库后,单击[backcolor=transparent]下一步,如下图所示。

  7. 在[backcolor=transparent]上传备份文件步骤中,单击[backcolor=transparent]获取FTP信息,获取备份文件上传FTP信息,如下图所示。

  8. 将本地数据库备份文件名更改为上一步骤中获取的文件名。

    [backcolor=transparent]注意:本地备份文件名必须更改为上一步骤中提供的文件名,否则备份文件无法上传成功。

  9. 打开FileZilla软件。

  10. 选择[backcolor=transparent]文件 > [backcolor=transparent]站点管理器。

  11. 单击[backcolor=transparent]新站点,创建并命名新站点。

  12. 按步骤7中获取的FTP信息填写站点信息,如下图标号3所示。

    参数说明:

    • 主机:FTP信息中的[backcolor=transparent]外网服务器。

    • 端口:FTP信息中的[backcolor=transparent]外网服务器端口。

    • 加密:选择[backcolor=transparent]要求隐式的FTP over TLS。

    • 登录类型:选择[backcolor=transparent]正常。

    • 用户:FTP信息中的[backcolor=transparent]FTP账号。

    • 密码:FTP信息中的[backcolor=transparent]FTP密码。

  • 选择[backcolor=transparent]传输设置标签页,将传输模式设置为[backcolor=transparent]被动,然后单击[backcolor=transparent]连接,如下图所示。

    [backcolor=transparent]说明:系统会弹出[backcolor=transparent]未知证书提示,单击[backcolor=transparent]确定即可。


  • 连接FTP服务器后,将备份文件按步骤7中提供的文件名更名后,将该备份文件上传至FTP服务器。

  • 返回RDS管理控制台的[backcolor=transparent]数据导入向导。

  • 单击[backcolor=transparent]下一步, 进入[backcolor=transparent]数据导入步骤。

  • 确认FTP上传完成,且文件大小无误后,单击[backcolor=transparent]数据导入,如下图所示。

    [backcolor=transparent]注意:

    • 若导入残缺或者非法文件,导入会失败,该实例控制台将一直处于恢复中状态,请提交工单解除该状态。

    • 若导入数据后,实例磁盘容量超过总使用量的85%,则无法进行导入。请先删减实例的数据或扩展磁盘容量,扩容磁盘请参见变更配置


  • 在弹出的确认框中单击[backcolor=transparent]确定,

  • 数据导入完成后,单击[backcolor=transparent]关闭,结束数据导入。


  • 查看数据导入记录


    本地数据导入阿里云后,您可以查看数据导入记录,操作步骤如下所示。

    1. 登录RDS管理控制台

    2. 选择目标实例所在地域。

    3. 单击目标实例的ID,进入[backcolor=transparent]基本信息页面。

    4. 在左侧导航栏中,选择[backcolor=transparent]备份文件迁入记录,进入[backcolor=transparent]备份文件迁入记录页面。

    5. 选择要查询的时间范围,然后单击[backcolor=transparent]查询。

    展开
    收起
    云栖大讲堂 2017-10-18 11:41:21 7613 0
    0 条回答
    写回答
    取消 提交回答
    问答排行榜
    最热
    最新

    相关电子书

    更多
    SQL Server 2017 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载