

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

# 使用原生工具将本地 MariaDB 数据库迁移至 Amazon RDS for MariaDB
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools"></a>

*Shyam Sunder Rakhecha，Amazon Web Services*

## Summary
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-summary"></a>

此模式为使用原生工具将本地 MariaDB 数据库迁移至 Amazon Relational Database Service (Amazon RDS) for MariaDB 提供了指导。如果安装了 MySQL 工具，则可使用 **mysql **和 **mysqldump**。**如果安装了 Mariadb 工具，则可使用 **mariadb** 和 mariadb-dump**。MySQL 和 MariaDB 工具的源相同，但二者在 MariaDB 版本 10.6 及更高版本中存在细微差别。

## 先决条件和限制
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-prereqs"></a>

**先决条件**
+ 一个有效的 Amazon Web Services account
+ 本地数据中心的 MariaDB 源数据库

**限制**
+ 数据库大小限制：64 TB

**产品版本**
+ MariaDB 版本 10.0-10.6（有关支持版本的最新列表，请参阅 AWS 文档中的 [Amazon RDS 上的 MariaDB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt)）

## 架构
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-architecture"></a>

**源技术堆栈**
+ 本地数据中心的 MariaDB 数据库

**目标技术堆栈**
+ Amazon RDS for MariaDB 数据库实例

**目标架构**

![\[不同可用区中的主实例和备用 RDS 数据库实例架构图。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/eca8eb55-579a-42e2-96ce-9b14b097b4c9.png)


**数据迁移架构**

![\[将本地 MariaDB 数据库迁移至 Amazon RDS 架构图\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/daba40e2-a2b1-44f8-8e69-31458206a823.png)


## 工具
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-tools"></a>
+ 原生 MySQL 工具：**mysql** 和 **mysqldump**
+ 原生 MariaDB 工具：**mariadb** 和 **mariadb-dump**

## 操作说明
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-epics"></a>

### 计划迁移
<a name="plan-the-migration"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 验证源数据库和目标数据库版本和引擎。 |  | 数据库管理员 | 
| 确定目标服务器实例的硬件要求。 |  | 数据库管理员、系统管理员 | 
| 识别存储需求（存储类型和容量）。 |  | 数据库管理员、系统管理员 | 
| 根据容量、存储功能和网络功能选择正确的实例类型。 |  | 数据库管理员、系统管理员 | 
| 确定源数据库和目标数据库的网络访问安全要求。 |  | 数据库管理员、系统管理员 | 
| 确定应用程序迁移策略。 |  | 数据库管理员、应用程序所有者、系统管理员 | 

### 配置基础设施
<a name="configure-the-infrastructure"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建虚拟私有云（VPC）。 |  | 系统管理员 | 
| 创建安全组。 |  | 系统管理员 | 
| 配置并启动运行 MariaDB 的 Amazon RDS 数据库实例。 |  | 系统管理员 | 

### 迁移数据
<a name="migrate-data"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 使用原生工具迁移数据库对象和数据。 | 在源数据库中，使用 **mysqldump** 或 **mariadb-dump** 创建包含数据库对象和数据的输出文件。在目标数据库中，使用 **mysql** 或 **mariadb ** 恢复数据。 | 数据库管理员 | 
| 验证数据。 | 检查源数据库和目标数据库，以确认数据迁移已成功。 | 数据库管理员 | 

### 迁移应用程序
<a name="migrate-the-application"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 遵循应用程序迁移策略。 |  | 数据库管理员、应用程序所有者、系统管理员 | 

### 割接
<a name="cut-over"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 将应用程序客户端切换至新基础设施。 |  | 数据库管理员、应用程序所有者、系统管理员 | 

### 关闭项目
<a name="close-the-project"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 关闭临时 AWS 资源。 |  | 系统管理员 | 
| 查看和验证项目文档。 |  | 数据库管理员、应用程序所有者、系统管理员 | 
| 收集与迁移时间、工具成本节约等相关的指标。 |  | 数据库管理员、应用程序所有者、系统管理员 | 
| 关闭项目并提供反馈。 |  | 数据库管理员、应用程序所有者、系统管理员 | 

## 相关资源
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-resources"></a>

**Amazon RDS 参考**
+ [Amazon RDS for MariaDB](https://aws.amazon.com/rds/mariadb/)
+ [亚马逊 Virtual Private Cloud VPCs 和 Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Amazon RDS 多可用区部署](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon RDS 定价](https://aws.amazon.com/rds/pricing/)

**MySQL 和 MariaDB 参考**
+ [mariadb-dump/mysqldump](https://mariadb.com/kb/en/mariadb-dumpmysqldump/) 
+ [mysql 命令行客户端](https://mariadb.com/kb/en/mysql-command-line-client/) 

**教程和视频**
+ [Amazon RDS 入门](https://aws.amazon.com/rds/getting-started/)