
# 使用导入导出功能将ECS上的SQL Server数据库迁移到RDS for SQL Server
#### 适用场景
- 用户在ECS上创建SQL Server数据库。
- 当ECS上SQL Server实例的版本高于RDS for SQL Server实例的版本时，无法通过DRS进行迁移。
- 已成功安装SSMS客户端。
 
#### 操作步骤
1. 创建一个ECS虚拟机。 
   ![](https://support.huaweicloud.com/bestpractice-rds-mssql/public_sys-resources/note_3.0-zh-cn.png)
   虚拟机跟对应的RDS应在同一个Region、VPC下。
   
   
2. 在ECS上安装SQL Server 2008、SQL Server 2012、SQL Server 2014版本。 
   ![](https://support.huaweicloud.com/bestpractice-rds-mssql/public_sys-resources/note_3.0-zh-cn.png)
   在ECS上安装的SQL Server版本，至少是标准版，最好跟需要还原的目标实例版本保持一致。
   
   
3. 将本地".bak"文件上传至ECS服务器端，并通过该ECS上的SQL Server服务器进行本地还原。
4. 通过SQL Server自带的脚本生成工具，生成ECS上的数据库结构脚本。 
   1. 选中需要生成schema脚本的数据库，单击鼠标右键选择"任务 \> 生成脚本"。
   
   2. 在导航页中根据提示单击"下一步"，在"选择对象"页面，确定要导出的对象，可选择全部，也可以选择独立对象模块导出。如[图1]所示。
      图1选择要导出的对象   
      ![](https://support.huaweicloud.com/bestpractice-rds-mssql/zh-cn_image_0000002264547313.png "点击放大") 
   
   3. 单击"下一步"，在"设置脚本编写选项"页面，选择将要导出文件的保存位置。
      ![](https://support.huaweicloud.com/bestpractice-rds-mssql/public_sys-resources/note_3.0-zh-cn.png)
      建议保存到本机，并生成一个SQL脚本方便执行。
      图2选择导出文件的保存位置   
      ![](https://support.huaweicloud.com/bestpractice-rds-mssql/zh-cn_image_0000002229547986.png "点击放大") 
   
   4. 单击[图2]中的"高级"按钮，进入"高级脚本编写选项"页面，根据实际需要选择具体脚本生成规则和相关细节，单击"确定"。例如：触发器，索引，唯一键，主键，服务器版本等重要选项。
      图3高级脚本编写选项   
      ![](https://support.huaweicloud.com/bestpractice-rds-mssql/zh-cn_image_0000002229707834.png "点击放大")
      ![](https://support.huaweicloud.com/bestpractice-rds-mssql/public_sys-resources/note_3.0-zh-cn.png)
      脚本Drop和Create是编写脚本数据类型的重要选项。
      
   
   5. 单击"下一步"完成脚本生成。
   
   
   
   
5. 通过SSMS客户端连接到目标RDS实例上，打开生成的脚本SQL文件。 
   ![](https://support.huaweicloud.com/bestpractice-rds-mssql/public_sys-resources/note_3.0-zh-cn.png)
   首先创建一个空的数据库，再通过该脚本在该数据库上创建相关结构。
   
   
6. 完成以上步骤后通过SQL Server自带的导入导出功能完成数据迁移。 
   1. 选择要导入的数据库，单击鼠标右键选择"任务 \> 导入数据"。
   
   2. 根据页面导航，单击"下一步"。
   
   3. 在"选择数据源"页面，选择要从中复制的源，单击"下一步"。
   
   4. 在"选择目标"页面，指定要将数据复制到何处，单击"下一步"。
      - **目标**：选择SQL Server Native Client（该选项根据您的目标类型进行选择）。
      
      - **服务器名称**：输入目标实例所在的IP和端口号。
      
      - **身份验证**：选择使用SQL Server身份验证，并在下方输入rdsuser账号和密码。
      
      - **数据库**：选择要导入数据的目标数据库。
       
   
   5. 选择复制源数据库中现有表或视图的全部数据，单击"下一步"。
   
   6. 在"选择源表和源视图"页面，勾选需要导入的表或视图，也可全选要导入的所有对象，再单击"编辑映射"，根据实际需要进行选择，至少选中启用标识插入。
   
   7. 根据页面导航，单击"下一步"。
   
   8. 选择立即执行，单击"下一步"。
   
   9. 根据导航单击"完成"，开始数据导入并查看进度，一般为4000行/秒。
   
   
   
   
 
