

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将本地微软 SQL Server 数据库迁移到 EC2 运行 Linux 的亚马逊上的微软 SQL Server
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux"></a>

*Tirumala Dasari，Amazon Web Services*

## Summary
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-summary"></a>

此模式描述了如何使用备份和还原实用程序从在微软 Windows 上运行的本地 Microsoft SQL Server 数据库迁移到亚马逊弹性计算云 (亚马逊 EC2) Linux 实例上的微软 SQL Server。

## 先决条件和限制
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-prereqs"></a>

**先决条件**
+ 一个有效的 Amazon Web Services account
+ 带微软 SQL Server 的亚马逊 EC2 Linux AMI（亚马逊机器映像）
+ 在本地 Windows 和 Linux EC2 实例上的微软 SQL Server 之间的 AWS Direct Connect

## 架构
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-architecture"></a>

**源技术堆栈**
+ 本地 Microsoft SQL Server 数据库

**目标技术堆栈**
+ 带有微软 SQL Server 数据库的 Linux EC2 实例

**数据库迁移架构**

![\[将本地 SQL Server 数据库迁移到 Linux EC2 实例的架构图。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/f331ad15-2d41-4087-a6d1-60e3443e2acf/images/f50a779a-ce5d-44b1-8d37-dedd6400a12c.png)


## 工具
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-tools"></a>
+ **WinSCP** - 此工具使 Windows 用户能够轻松地与 Linux 用户共享文件。
+ **Sqlcmd** - 此命令行实用程序允许您将 T-SQL 语句或批处理提交到 SQL Server 的本地和远程实例。该实用程序对于重复的数据库任务（例如批处理或单元测试）非常有用。

## 操作说明
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-epics"></a>

### 使用 SQL Server 准备 EC2 Linux 实例
<a name="prepare-the-ec2-linux-instance-with-sql-server"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 选择提供 Linux 操作系统并包括 Microsoft SQL Server 的 AMI。 |  | 系统管理员 | 
| 配置 AMI 以创建 EC2 实例。 |  | 系统管理员 | 
| 创建安全组的入站和出站规则。 |  | 系统管理员 | 
| 为微软 SQL Server 数据库配置 Linux EC2 实例。 |  | 数据库管理员 | 
| 创建用户并提供与源数据库中一样的权限。 |  | 应用程序所有者、数据库管理员 | 
| 在 Linux 实例上安装 SQL Server 工具和 sqlcmd 实用程序。 EC2  |  | 数据库管理员 | 

### 备份数据库并将备份文件移至 Linux EC2 实例
<a name="back-up-the-database-and-move-backup-file-to-linux-ec2-instance"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 备份本地 SQL Server 数据库。 |  | 数据库管理员 | 
| 在 Microsoft SQL Server 上安装 WinSCP。 |  | 数据库管理员 | 
| 将备份文件移至运行微软 SQL Server 的 Linux EC2 实例。 |  | 数据库管理员 | 

### 在运行 SQL Server 的 Linux EC2 实例上恢复数据库
<a name="restore-the-database-on-linux-ec2-instance-running-sql-server"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 使用 sqlcmd 实用程序从数据库备份文件恢复数据库。 |  | 数据库管理员 | 
| 验证数据库对象和数据。 |  | 开发人员、测试工程师 | 

### 在 Linux EC2 实例上从 Windows SQL 服务器切换到 Windows SQL Server
<a name="cut-over-from-windows-sql-server-to-windows-sql-server-on-linux-ec2-instance"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 验证数据库对象和数据。 |  | 开发人员、测试工程师 | 
| 从本地微软 SQL Server 数据库切换到运行微软 SQL Server 的 Linux EC2 实例。 |  | 数据库管理员 | 

## 相关的资源
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-resources"></a>
+ [如何在亚马逊 Linux 和 Ubuntu 上配置 SQL Server 2017 AMIs](https://aws.amazon.com/blogs/database/configuring-sql-server-2017-on-amazon-linux-2-and-ubuntu-amis/) 
+ [在 Linux 实例上安装 SQL 工具](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017#RHEL) 
+ [在 Linux EC2 实例上从本地微软 SQL Server 数据库备份和恢复到微软 SQL Server](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-migrate-restore-database?view=sql-server-2017#create-a-backup-on-windows) 