最佳实践
文档版本 10
发布日期 2021-11-30
版权所有 © 华为技术有限公司 2022。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129
网址: https://www.huawei.com
客户服务邮箱:[email protected] 客户服务电话:4008302118
目 录
1 最佳实践汇总... 1
2 实时迁移...3
2.1 其他云 MySQL 迁移到 RDS for MySQL... 3
2.1.1 最佳实践概述...3
2.1.2 资源规划... 4
2.1.3 操作流程... 5
2.1.4 创建 VPC 和安全组... 5
2.1.5 创建 RDS for MySQL 实例...8
2.1.6 其他云 MySQL 实例准备... 10
2.1.7 上云操作... 10
2.1.7.1 创建 DRS 迁移任务... 10
2.1.7.2 确认迁移结果...13
2.2 其他云 MySQL 迁移到 GaussDB(for MySQL)... 14
2.2.1 概述... 14
2.2.2 资源规划... 15
2.2.3 操作流程... 17
2.2.4 创建 VPC 和安全组... 17
2.2.5 创建 GaussDB(for MySQL)实例...20
2.2.6 其他云 MySQL 实例准备... 21
2.2.7 创建 DRS 迁移任务... 22
2.2.8 确认迁移结果... 24
2.3 其他云 MongoDB 迁移到 DDS... 25
2.4 ECS 自建 MySQL 迁移到 RDS for MySQL...37
2.4.1 最佳实践概述... 37
2.4.2 前提条件... 39
2.4.3 资源规划... 39
2.4.4 操作流程... 41
2.4.5 自建 MySQL 服务器... 42
2.4.5.1 创建 VPC 和安全组...42
2.4.5.2 创建 ECS(MySQL 服务器)... 46
2.4.5.3 安装社区版 MySQL... 48
2.4.5.4 创建 ECS 并安装 MySQL 客户端... 51
2.4.5.5 测试自建 MySQL 性能... 51
2.4.6 上云操作... 52
2.4.6.1 创建 RDS 实例... 52
2.4.6.2 创建 DRS 迁移任务... 55
2.4.6.3 确认数据迁移结果... 58
2.4.7 自建 MySQL 和 RDS for MySQL 性能对比...59
2.5 ECS 自建 MySQL 迁移到 GaussDB(for MySQL)... 60
2.6 ECS 自建 MongoDB 迁移 DDS... 73
2.7 本地 MySQL 迁移到 RDS for MySQL... 85
2.8 本地 MongoDB 迁移到 DDS... 98
3 备份迁移... 110
3.1 本地 Microsoft SQL Server 备份迁移至本云 RDS for SQL Server 实例...110
3.1.1 场景介绍... 110
3.1.2 迁移准备... 111
3.1.3 导出数据库备份文件...113
3.1.4 上传备份文件...118
3.1.5 场景一:全量备份迁移... 119
3.1.6 场景二:全量+增量备份迁移... 122
3.1.7 手动配置信息...134
4 实时同步... 143
4.1 其他云 PostgreSQL 同步到 RDS for PostgreSQL... 143
4.2 ECS 自建 PostgreSQL 同步到 RDS for PostgreSQL... 152
4.3 本地 PostgreSQL 同步到 RDS for PostgreSQL...163
4.4 本地 Oracle 同步到 GaussDB(for openGauss)... 172
4.4.1 概述... 173
4.4.2 资源规划... 174
4.4.3 操作流程... 176
4.4.4 创建 VPC 和安全组...176
4.4.5 创建 GaussDB(for openGauss)实例...179
4.4.6 同步前构造数据... 181
4.4.7 同步数据库... 187
4.4.8 同步后进行数据校验...195
4.5 RDS for MySQL 同步到 Kafka... 198
4.5.1 概述... 198
4.5.2 资源规划... 199
4.5.3 操作流程... 201
4.5.4 创建 VPC 和安全组...201
4.5.5 源端 RDS for MySQL 准备...204
4.5.5.1 创建 RDS for MySQL 实例... 204
4.5.5.2 构造数据... 206
4.5.6 目标端 Kafka 准备...207
4.5.6.1 创建 Kafka 实例... 207
4.5.6.2 创建 Topic... 208
4.5.7 创建 DRS 同步任务... 208
4.5.8 确认同步任务执行结果... 212
5 实时灾备... 215
5.1 RDS MySQL 通过 DRS 搭建异地单主灾备...215
5.1.1 最佳实践概述...215
5.1.2 资源规划... 216
5.1.3 操作流程... 217
5.1.4 生产中心 RDS for MySQL 实例准备... 219
5.1.4.1 创建 VPC 和安全组... 219
5.1.4.2 创建 EIP... 220
5.1.4.3 创建 RDS for MySQL 实例... 221
5.1.5 灾备中心 RDS for MySQL 实例准备... 223
5.1.5.1 创建 VPC 和安全组... 224
5.1.5.2 创建 RDS for MySQL 实例... 225
5.1.6 搭建容灾关系...227
5.1.6.1 创建 DRS 灾备实例... 227
5.1.6.2 配置灾备任务... 229
5.1.6.3 RDS 容灾切换...233
A 修订记录... 235
1 最佳实践汇总
本文汇总了基于数据复制服务(Data Replication Service,简称DRS)常见应用场景 的操作实践,每个实践我们提供详细的方案描述和操作指导,用于指导您快速实现数 据库迁移和同步。
表1-1 DRS 最佳实践一览表
功能 源数据库类型 目标数据库 实践案例 实时迁移 其他云MySQL
数据库 华为云RDS for
MySQL 其他云MySQL迁移到RDS for MySQL
华为云GaussDB(for MySQL)
其他云MySQL迁移到 GaussDB(for MySQL)
其他云MongoDB 华为云DDS 其他云MongoDB迁移到DDS
ECS自建
MySQL 华为云RDS for
MySQL ECS自建MySQL迁移到RDS for MySQL
华为云GaussDB(for MySQL)
ECS自建MySQL迁移到 GaussDB(for MySQL) ECS自建
MongoDB 华为云DDS ECS自建MongoDB迁移DDS 本地自建MySQL 华为云RDS for
MySQL 本地MySQL迁移到RDS for MySQL
本地自建MongoDB 华为云DDS 本地MongoDB迁移到DDS
备份迁移 本地Microsoft
SQL Serve 华为云RDS for
SQL Server 本地Microsoft SQL Server备份 迁移至本云RDS for SQL Server实例
实时同步 其他云
PostgreSQL 华为云RDS for
PostgreSQL 其他云PostgreSQL同步到RDS for PostgreSQL
功能 源数据库类型 目标数据库 实践案例 ECS自建
PostgreSQL ECS自建PostgreSQL同步到 RDS for PostgreSQL 本地自建PostgreSQL 本地PostgreSQL同步到RDS
for PostgreSQL 本地自建Oracle 华为云
GaussDB(for openGauss)
本地Oracle同步到
GaussDB(for openGauss) 华为云RDS for
MySQL 分布式消息服务
Kafka RDS for MySQL同步到Kafka 实时灾备 华为云RDS for
MySQL 华为云RDS for
MySQL RDS MySQL通过DRS搭建异地 单主灾备
2 实时迁移
2.1 其他云 MySQL 迁移到 RDS for MySQL
2.1.1 最佳实践概述
场景描述
本实践主要包含以下内容:
● 介绍如何创建RDS for MySQL实例。
● 介绍如何将其他云MySQL迁移到RDS for MySQL实例。
前提条件
● 拥有华为云实名认证账号。
● 账户余额大于等于0元。
部署架构
图2-1 部署架构图
服务列表
● 虚拟私有云 VPC
● 云数据库 RDS
● 数据复制服务 DRS
使用说明
● 本实践的资源规划仅作为演示,实际业务场景资源以用户实际需求为准。
● 本实践端到端的数据为测试数据,仅供参考;更多关于MySQL数据迁移须知请单 击这里了解。
2.1.2 资源规划
表2-1 资源规划
类别 子类 规划 备注
VPC VPC名称 vpc-src-172 自定义,易理解可识别。
所属Region 测试Region 现网实际选择时建议选择和自己 业务区最近的Region,减少网络 时延。
可用区 可用区3 -
子网网段 172.16.0.0/16 子网选择时建议预留足够的网络 资源。
子网名称 subnet-src-172 自定义,易理解可识别。
其他云MySQL 数据库版本 MySQL 5.7 -
IP地址 10.154.217.42 仅作为示例。
端口 3306 -
RDS实例 RDS实例名
称 rds-mysql 自定义,易理解可识别。
数据库版本 MySQL 5.7 -
实例类型 单机 本示例中为单机。
实际使用时,为提升业务可靠 性,推荐选择主备RDS实例。
存储类型 SSD云盘 -
可用区 可用区一 本示例中为可用区一。
实际业务场景推荐选择主备RDS 实例,此时建议将两个实例创建 在不同的可用区,提升业务可靠 性。
类别 子类 规划 备注 性能规格 通用型 2 vCPUs |
8GB -
DRS迁移 任务
迁移任务名 DRS-mysql 自定义。
源数据库引
擎 MySQL -
目标数据库
引擎 MySQL -
网络类型 公网网络 本示例中采用公网网络。
2.1.3 操作流程
图2-2 流程图
2.1.4 创建 VPC 和安全组
创建VPC和安全组,为创建RDS for MySQL实例准备好网络资源和安全组。
创建 VPC
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华南-广州”。
步骤3 单击左侧的服务列表图标,选择“网络 > 虚拟私有云 VPC”,进入虚拟私有云信息页 面。
步骤4 单击“创建虚拟私有云”,购买VPC。
步骤5 单击“立即创建”。
步骤6 返回VPC列表,查看创建VPC是否创建完成。
当VPC列表的VPC状态为“可用”时,表示VPC创建完成。
----结束
创建安全组
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华南-广州”。
步骤3 单击左侧的服务列表图标,选择“网络 > 虚拟私有云 VPC”,进入虚拟私有云信息页 面。
步骤4 选择“访问控制 > 安全组”。
步骤5 单击“创建安全组”。
步骤6 填写安全组名称等信息。
步骤7 单击“确定”。
步骤8 返回安全组列表,单击安全组名称“sg-DRS01”。
步骤9 选择“入方向规则”,单击“添加规则”。
步骤10 配置入方向规则,放通数据库3306端口。
----结束
2.1.5 创建 RDS for MySQL 实例
本章节介绍创建RDS for MySQL实例。
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华南-广州”。
步骤3 单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。
步骤4 单击“购买数据库实例”。
步骤5 配置实例名称和实例基本信息。
步骤6 选择实例规格。
步骤7 选择实例所属的VPC和安全组、配置数据库端口。
VPC和安全组已在创建VPC和安全组中准备好。
步骤8 配置实例密码。
步骤9 单击“立即购买”。
步骤10 返回云数据库实例列表。当RDS实例运行状态为“正常”时,表示实例创建完成。
----结束
2.1.6 其他云 MySQL 实例准备
前提条件
● 已购买其他云MySQL实例。
● 帐号权限符合要求,具体见帐号权限要求。
帐号权限要求
当使用DRS将其他云MySQL数据库的数据迁移到本云云数据库MySQL实例时,帐号权 限要求如表2-2所示,授权的具体操作请参考授权操作。
表2-2 迁移帐号权限
迁移类型 全量迁移 全量+增量迁移
源数据库(MySQL) SELECT、SHOW VIEW、
EVENT。 SELECT、SHOW VIEW、
EVENT、LOCK TABLES、
REPLICATION SLAVE、
REPLICATION CLIENT。
网络设置
源数据库MySQL实例需要开放外网域名的访问。
白名单设置
其他云MySQL实例需要将目标端DRS迁移实例的弹性公网IP添加到其网络白名单中,
目标端DRS迁移实例的弹性公网IP在创建完DRS迁移实例后可以获取到,参考创建DRS 迁移任务的步骤6,确保源数据库可以与DRS实例互通,各厂商云数据库添加白名单的 方法不同,请参考各厂商云数据库官方文档进行操作。
2.1.7 上云操作
2.1.7.1 创建 DRS 迁移任务
创建迁移任务
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域,即为目标实例所在的区域。
步骤3 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。
步骤4 单击“创建迁移任务”。
步骤5 填写迁移任务参数:
1. 配置迁移任务名称。
2. 填写迁移数据并选择模板库。
这里的目标库选择创建RDS for MySQL实例创建的RDS实例。
步骤6 单击“下一步”。
迁移实例创建中,大约需要5-10分钟。迁移实例创建完成后可获取弹性公网IP信息。
步骤7 配置源库信息和目标库数据库密码。
步骤8 单击“下一步”。
步骤9 在“迁移设置”页面,设置流速模式、迁移用户和迁移对象。
● 流速模式:不限速
● 迁移对象:全部迁移
步骤10 单击“下一步”,在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁 移。
● 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”
按钮重新进行迁移任务预校验。
● 预检查完成后,且所有检查项结果均成功时,单击“下一步”。
步骤11 参数对比。
● 若您选择不进行参数对比,可跳过该步骤,单击页面右下角“下一步”按钮,继 续执行后续操作。
● 若您选择进行参数对比,对于常规参数,如果源库和目标库存在不一致的情况,
建议将目标数据库的参数值通过“一键修改”按钮修改为和源库对应参数相同的 值。
步骤12 单击“提交任务”。
返回DRS实时迁移管理,查看迁移任务状态。
启动中状态一般需要几分钟,请耐心等待。
当状态变更为“已结束”,表示迁移任务完成。
----结束
2.1.7.2 确认迁移结果
确认迁移结果可参考如下两种方式:
1. DRS会针对迁移对象、用户、数据等维度进行对比,从而给出迁移结果,详情参 见在DRS管理控制台查看迁移结果。
2. 直接登录数据库查看库、表、数据是否迁移完成。手工确认数据迁移情况,详情 参见在RDS管理控制台查看迁移结果。
在 DRS 管理控制台查看迁移结果
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择目标区域。
步骤3 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。
步骤4 单击DRS实例名称。
步骤5 单击“迁移对比”,选择“对象级对比”,单击“开始对比”,校验数据库对象是否 缺失。
步骤6 选择“数据级对比”,单击“创建对比任务”,查看迁移的数据库和表内容是否一 致。
步骤7 选择“用户对比”,查看迁移的源库和目标库的账号和权限是否一致。
----结束
在 RDS 管理控制台查看迁移结果
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择目标区域。
步骤3 单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。
步骤4 单击迁移的目标实例的操作列的“更多 > 登录”。
步骤5 在弹出的对话框中输入密码单击“测试连接”检查。
步骤6 连接成功后单击“登录”。
步骤7 输入实例密码,登录RDS实例。
步骤8 查看并确认目标库名和表名等。确认相关数据是否迁移完成。
----结束
2.2 其他云 MySQL 迁移到 GaussDB(for MySQL)
2.2.1 概述
场景描述
本实践主要包含以下内容:
● 介绍如何创建GaussDB(for MySQL)实例。
● 介绍如何将其他云MySQL迁移到GaussDB(for MySQL)实例。
前提条件
● 拥有华为云实名认证账号。
● 账户余额大于等于0元。
部署架构
本示例中,DRS源数据库为其他云MySQL,目标端为华为云云数据库GaussDB(for MySQL),通过公网网络,将源数据库迁移到目标端,部署架构可参考图2-3。
图2-3 部署架构图
服务列表
● 虚拟私有云 VPC
● 云数据库 GaussDB(for MySQL)
● 数据复制服务 DRS
使用说明
● 本实践的资源规划仅作为演示,实际业务场景资源以用户实际需求为准。
● 本实践端到端的数据为测试数据,仅供参考;更多关于MySQL数据迁移须知请单 击这里了解。
2.2.2 资源规划
表2-3 资源规划
类别 子类 规划 备注
VPC VPC名称 vpc-DRStest 自定义,易理解可识别。
所属Region 华北-北京四 选择和自己业务区最近的 Region,减少网络时延。
可用区 可用区1 -
子网网段 10.0.0.0/24 子网选择时建议预留足够的网络 资源。
子网名称 subnet-drs01 自定义,易理解可识别。
其他云MySQL 数据库版本 MySQL 5.7 -
IP地址 10.154.217.42 仅作为示例。
端口 3306 -
GaussD
B(for 实例名称 gauss-drstar 自定义,易理解可识别。
数据库版本 MySQL 8.0 -
类别 子类 规划 备注 MySQL)
实例
可用区类型 单可用区 本示例中为单可用区。
实际使用时,为提升业务可靠 性,推荐选择多可用区。
可用区 可用区一 本示例中为可用区一。
实际业务场景推荐选择多可用 区,此时建议将实例创建在不同 的可用区,提升业务可靠性。
性能规格 独享型 4 vCPUs | 16
GB -
DRS迁移 任务
迁移任务名 DRS-test-migrate 自定义。
源数据库引
擎 MySQL -
目标数据库
引擎 GaussDB(for
MySQL)主备版 -
网络类型 公网网络 本示例中采用公网网络。
2.2.3 操作流程
图2-4 流程图
2.2.4 创建 VPC 和安全组
创建VPC和安全组,为创建GaussDB(for MySQL)实例准备好网络资源和安全组。
创建 VPC
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华北-北京四”。
步骤3 单击左侧的服务列表图标,选择“网络 > 虚拟私有云 VPC”,进入虚拟私有云信息页 面。
步骤4 单击“创建虚拟私有云”,购买VPC。
步骤5 单击“立即创建”。
步骤6 返回VPC列表,查看创建VPC是否创建完成。
当VPC列表的VPC状态为“可用”时,表示VPC创建完成。
----结束
创建安全组
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华北-北京四”。
步骤3 单击左侧的服务列表图标,选择“网络 > 虚拟私有云 VPC”,进入虚拟私有云信息页 面。
步骤4 选择“访问控制 > 安全组”。
步骤5 单击“创建安全组”。
步骤6 填写安全组名称等信息。
步骤7 单击“确定”。
步骤8 返回安全组列表,单击安全组名称“sg-DRS01”。
步骤9 选择“入方向规则”,单击“添加规则”。
步骤10 配置入方向规则,放通数据库3306端口。
----结束
2.2.5 创建 GaussDB(for MySQL)实例
本章节介绍如何创建华为云GaussDB(for MySQL)实例。
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华北-北京四”。
步骤3 单击左侧的服务列表图标,选择“数据库 > 云数据库 GaussDB”。
步骤4 选择GaussDB(for MySQL),单击“购买数据库实例”。
步骤5 配置实例名称和实例基本信息。
步骤6 选择实例规格。
步骤7 选择实例所属的VPC和安全组、配置数据库端口。
VPC和安全组已在创建VPC和安全组中准备好。
步骤8 配置实例密码。
步骤9 单击“立即购买”。如果规格确认无误,单击“提交”,完成创建实例的申请。
步骤10 返回云数据库GaussDB实例列表。当GaussDB(for MySQL)实例运行状态为“正常”
时,表示实例创建完成。
----结束
2.2.6 其他云 MySQL 实例准备
前提条件
● 已购买其他云数据库MySQL实例。
● 帐号权限符合要求,具体见帐号权限要求。
帐号权限要求
当使用DRS将其他云MySQL数据库的数据迁移到华为云云数据库GaussDB(for MySQL)实例时,在不同迁移类型的情况下,对源数据库的帐号权限要求如下:
表2-4 迁移帐号权限
迁移类型 全量迁移 全量+增量迁移
源数据库(MySQL) SELECT、SHOW VIEW、
EVENT。 SELECT、SHOW VIEW、
EVENT、LOCK TABLES、
REPLICATION SLAVE、
REPLICATION CLIENT。
MySQL的相关授权操作可参考操作指导。
网络设置
源数据库MySQL实例需要开放外网域名的访问。各厂商云数据库对应方法不同,请参 考各厂商云数据库官方文档进行操作。
以阿里云RDS MySQL为例,需要通过申请外网地址来允许外部的应用对接,具体的操 作及注意事项可以参考其官方文档进行操作。
2.2.7 创建 DRS 迁移任务
本章节介绍如何创建DRS实例,将其他云MySQL上的数据库迁移到华为云 GaussDB(for MySQL)。
迁移前检查
在创建任务前,需要针对迁移条件进行手工自检,以确保您的同步任务更加顺畅。
本示例为MySQL到GaussDB(for MySQL)入云迁移,您可以参考迁移使用须知获取相 关信息。
创建迁移任务
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域,本示例中为“华北-北京四”。
步骤3 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。
步骤4 单击“创建迁移任务”。
步骤5 填写迁移任务参数:
1. 配置迁移任务名称。
2. 填写迁移数据并选择模板库。
这里的目标库选择创建GaussDB(for MySQL)实例所创建的GaussDB(for MySQL)实例。
步骤6 单击“下一步”。
迁移实例创建中,大约需要5-10分钟。
步骤7 配置源库网络白名单。
源数据库MySQL实例需要将DRS迁移实例的弹性公网IP添加到其网络白名单中,确保 源数据库可以与DRS实例互通。
各厂商云数据库添加白名单的方法不同,请参考各厂商云数据库官方文档进行操作。
步骤8 配置源库信息和目标库数据库密码。
1. 配置源库信息,单击“测试连接”。当界面显示“测试成功”时表示连接成功。
2. 配置目标库信息,单击“测试连接”。当界面显示“测试成功”时表示连接成 功。
步骤9 单击“下一步”。
步骤10 在“迁移设置”页面,设置迁移用户和迁移对象。
● 迁移用户:否
● 迁移对象:全部迁移
步骤11 单击“下一步”,在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁 移。
● 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”
按钮重新进行迁移任务预校验。
● 预检查完成后,且所有检查项结果均成功时,单击“下一步”。
步骤12 单击“提交任务”。
返回DRS实时迁移管理,查看迁移任务状态。
启动中状态一般需要几分钟,请耐心等待。
当状态变更为“已结束”,表示迁移任务完成。
说明
● 目前MySQL到GaussDB(for MySQL)迁移支持全量、全量+增量两种模式。
● 如果创建的任务为全量迁移,任务启动后先进行全量数据迁移,数据迁移完成后任务自动结 束。
● 如果创建的任务为全量+增量迁移,任务启动后先进入全量迁移,全量数据迁移完成后进入 增量迁移状态。
● 增量迁移会持续性迁移增量数据,不会自动结束。
----结束
2.2.8 确认迁移结果
确认迁移结果可参考如下两种方式:
1. DRS会针对迁移对象、用户、数据等维度进行对比,从而给出迁移结果,详情参 见在DRS管理控制台查看迁移结果。
2. 直接登录数据库查看库、表、数据是否迁移完成。手工确认数据迁移情况,详情 参见在GaussDB管理控制台查看迁移结果。
在 DRS 管理控制台查看迁移结果
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择目标区域。
步骤3 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。
步骤4 单击DRS实例名称。
步骤5 单击“迁移对比”,选择“对象级对比”,查看数据库对象是否缺失。
步骤6 选择“数据级对比”,查看迁移对象行数是否一致。
步骤7 选择“用户对比”,查看迁移的源库和目标库的账号和权限是否一致。
----结束
在 GaussDB 管理控制台查看迁移结果
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择目标区域。
步骤3 单击左侧的服务列表图标,选择“数据库 > 云数据库 GaussDB”。
步骤4 选择GaussDB(for MySQL),单击迁移的目标实例的操作列的“登录”。
步骤5 在弹出的对话框中输入密码,单击“测试连接”检查。
步骤6 连接成功后单击“登录”。
步骤7 查看并确认目标库名和表名等。确认相关数据是否迁移完成。
----结束
2.3 其他云 MongoDB 迁移到 DDS
数据复制服务(Data Replication Service,简称DRS)支持将其他云MongoDB数据库 的数据迁移到本云文档数据库服务(Document Database Service,以下简称DDS)实 例。通过DRS提供的实时迁移任务,实现在数据库迁移过程中业务和数据库不停机,
业务中断时间最小化。
本章节主要介绍了通过DRS将其他云数据库实时迁移至本云DDS的任务配置流程。包 括以下迁移场景:
● 其他云MongoDB数据库实时迁移至本云DDS。
● 其他云内云主机自建自维护的MongoDB数据库迁移至本云DDS。
网络示意图
图2-5 其他云 MongoDB 数据库实时迁移示意图
图2-6 其他云自建 MongoDB 数据库实时迁移示意图
迁移流程
图2-7 迁移流程图
迁移建议(重要)
● 数据库迁移与环境多样性和人为操作均有密切关系,为了确保迁移的平顺,建议 您在进行正式的数据库迁移之前进行一次演练,可以帮助您提前发现问题并解决 问题,如何最小化对数据库的影响请参考如下建议。
● 强烈建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰 期,相对静止的数据可以有效提升一次性迁移成功率,避免迁移对业务造成性能 影响。
迁移须知(重要)
须知
在创建迁移任务之前,请您务必仔细阅读迁移须知。
参考《数据复制服务实时迁移》中具体链路的“使用须知”。
迁移准备
1. 权限准备:
当使用 DRS 将其他云MongoDB数据库的数据迁移到本云DDS实例时,在不同迁 移类型情况下,对源数据库和目标数据库的帐号权限要求如表2-5:
表2-5 迁移帐号权限
迁移类型 全量迁移 全量+增量迁移
源数据库 ● 副本集:连接源数据 库的用户权限需要对 admin数据库有 readAnyDatabase权 限。
● 集群:连接源数据库 的用户权限需要对 admin数据库有 readAnyDatabase权 限,对config数据库 有read权限。
● 单节点:连接源数据 库的用户权限需要对 admin数据库有 readAnyDatabase权 限。
● 如果需要迁移源数据 库用户和角色信息,
连接源数据库的用户 权限需要对admin数 据库的系统表 system.users,
system.roles有读权 限。
● 副本集:连接源数据 库的用户权限需要对 admin数据库有 readAnyDatabase权 限,对local数据库有 read权限。
● 单节点:连接源数据 库的用户权限需要对 admin数据库有 readAnyDatabase权 限,对local数据库有 read权限。
● 集群:连接源数据库 mongos节点的用户 权限需要对admin数 据库有readAnyDatabase权 限,对config数据库 有read权限, 连接源 数据库分片节点的用 户权限需要对admin 数据库有readAnyDatabase权 限,对local数据库有 read权限。
● 如果需要迁移源数据 库用户和角色信息,
连接源数据库的用户 权限需要对admin数 据库的系统表 system.users,
system.roles有读权 限。
目标数据库 连接目标数据库的用户权限需要对admin数据库有 readAnyDatabase权限,对目标数据库有readWrite 权限。
– 源数据库权限设置:
需要确保源数据库MongoDB的帐号权限具备表2-5的要求。若权限不足,需 要在源数据库端开通高权限的帐号。
目前DRS支持迁移的第三方云厂商有:阿里云,腾讯云。
以阿里云云数据库MongoDB迁移到本云DDS为例,阿里云MongoDB默认的 初始帐号已经具备进行数据迁移的能力,使用初始帐号即可。
– 目标数据库权限设置:
本云DDS实例使用初始帐号即可。
2. 网络准备:
源数据库需要开放公网访问。
– 源数据库的网络设置:
源数据库MongoDB实例需要开放公网域名的访问。
以阿里云云数据库MongoDB迁移到本云DDS实例为例,一般情况下,阿里云 云数据库MongoDB不提供公网地址,需要通过申请公网地址来允许外部的应 用对接,具体的操作及注意事项可以参考阿里云提供的相关指导。
– 目标数据库的网络设置:目标端不需要进行设置。
3. 安全规则准备:
– 源数据库安全组规则设置:
源数据库MongoDB实例需要将具体的DRS迁移实例的弹性公网IP添加到其网 络白名单中,确保源数据库MongoDB实例可以与上述弹性公网IP连通。
以阿里云云数据库MongoDB迁移到本云DDS为例,具体设置网络白名单的操 作及注意事项可以参考相关指导。在设置网络白名单之前,需要先获取DRS 迁移实例的弹性公网IP,具体操作如下:
▪
迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的 弹性公网IP。如图2-8所示:图2-8 迁移实例公网弹性 IP
以上讲述的是精细配置白名单的方法,还有一种简单设置白名单的方法,在 安全允许的情况下,可以将源数据库MongoDB实例的网络白名单设置为 0.0.0.0/0,代表允许任何IP地址访问该实例。
上述的网络白名单是为了进行数据迁移设置的,迁移结束后可以删除。
– 目标数据库安全组规则设置:
目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直 接写入数据到目标数据库,不需要进行任何设置。
4. 其他事项准备:
由于迁移过程不会迁移MongoDB数据库的用户信息以及相关参数,需要自行将上 述信息导出后手动添加到目标DDS中。
迁移步骤
步骤1 创建迁移任务。
1. 登录管理控制台,在服务列表中选择“数据库 > 数据复制服务”,进入数据复制 服务信息页面。
2. 在“实时迁移管理”页面,单击右上角“创建迁移任务”,进入迁移任务信息页 面。
3. 在“迁移实例”页面,填选任务名称、描述和迁移实例信息。
图2-9 迁移实例信息
表2-6 任务和描述
参数 描述
区域 当前所在区域,可进行切换。
任务名称 任务名称在4-50位之间,必须以字母开头,不区分大小写,可以 包含字母、数字、中划线或下划线,不能包含其他的特殊字符。
描述 描述不能超过256位,且不能包含! = < > & ' " \ 特殊字符。
表2-7 迁移实例信息
参数 描述
数据流动方向 选择“入云”。
源数据库引擎 选择“MongoDB”。
目标数据库引擎 选择“DDS”。
网络类型 选择公网网络。
目标数据库实例 选择您所创建的本云DDS实例。
迁移实例所在子 网
选择迁移实例所在的子网。也可以单击“查看子网”,跳转 至“网络控制台”查看实例所在子网帮助选择。
默认值为当前所选数据库实例所在子网,请选择有可用IP地 址的子网。为确保迁移实例创建成功,仅显示已经开启 DHCP的子网。
参数 描述 迁移模式 – 全量
全量迁移为数据库一次性迁移,适用于可中断业务的数据库 迁移场景,全量迁移将非系统数据库的全部数据库对象和数 据一次性迁移至目标端数据库,包括:集合、索引等。
– 全量+增量
全量+增量迁移为数据库持续性迁移,适用于对业务中断敏 感的场景,通过全量迁移过程完成目标端数据库的初始化 后,增量迁移阶段通过解析日志等技术,将源端和目标端数 据库保持数据持续一致。
源数据库实例类 型
需要根据源数据库的具体来源进行设置。
– 当源库类型属于集群时,该项需要设置为集群
– 当源库类型属于副本集或者单节点时,该项需要设置为 非集群。
– 当源库类型为MongDB集群4.0及以上版本,集群实例无 法获取到分片节点的IP时,可选择集群(MongoDB 4.0+)。
源端分片个数 当源端实例类型设置为“集群”时,需要填写源端数据库实 例个数。
源端数据库实例个数默认最小值为2,最大值为32,你需要 根据源库实际的集群分片个数设置该值大小。
标签 可选配置,对迁移任务的标识。使用标签可方便管理您的迁 移任务。每个任务最多支持10个标签配额。
4. 在“源库及目标库”页面,迁移实例创建成功后,填选源库信息和目标库信息,
单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和目标库连通 后,勾选协议,单击“下一步”。
图2-10 源库信息页面
表2-8 源库信息
参数 描述
mongosIP地址 或域名
源数据库的IP地址或域名,格式为IP地址/域名:端口。其中源 数据库服务端口,可输入范围为1~65534间的整数。
该输入框最多支持填写3组源数据库的IP地址或者域名信息,
多个值需要使用英文逗号隔开。例如:
192.168.0.1:8080,192.168.0.2:8080。同时需要确保所填写 的多个IP地址或域名属于同一个分片集群。
说明此处若填写的是多组IP地址或者域名信息,在进行测试连接的过程 中,只要存在一组IP地址或者域名可以连通,那么测试连接就提示 成功。所以需要您保证填写的IP地址或域名的正确性。
账号认证数据库 填写的数据库账号所属的数据库名称。例如:华为云DDS实 例默认的账号认证数据库为admin。
mongos用户名 访问源数据库MongoDB的用户名。
mongos密码 访问源数据库MongoDB的用户名所对应的密码。
SSL安全连接 通过该功能,用户可以选择是否开启对迁移链路的加密。如 果开启该功能,需要用户上传SSL CA根证书。
分片数据库 根据源库实际的集群分片个数,填写对应的分片数据库信 息。
– 目标库信息配置
图2-11 目标库信息
表2-9 目标库信息
参数 描述
数据库实例名 称
默认为创建迁移任务时选择的数据库实例,不可进行修 改。
数据库用户名 目标数据库对应的数据库用户名。
参数 描述
数据库密码 目标数据库的登录密码。
5. 在“迁移设置”页面,设置迁移对象,单击“下一步”。
图2-12 设置迁移对象
表2-10 迁移对象
参数 描述
迁移用户 常见的迁移用户一般分为两类:支持迁移的用户和不支持迁移的 用户。您可以根据业务需求选择“迁移”或者“不迁移”,其 中,不支持迁移的账号或者未选择迁移的账号将在目标数据库中 缺失,需要先确保业务不受影响。
– 迁移
当您选择迁移用户时,请参见《数据复制服务用户指南》中
“迁移用户”章节进行数据库用户及角色的处理。
– 不迁移
迁移过程中,将不进行数据库用户及角色的迁移。
其他迁移 选项
根据业务需求,选择全量迁移是否迁移用户自行创建的索引,基 于_id的默认索引目标端会自动创建。如果不迁移索引,索引不参 与对比。
参数 描述
迁移对象 您可以根据业务需求,选择全部对象迁移、表级迁移或者库级迁 移。
– 全部迁移:将源数据库中的所有对象全部迁移至目标数据库,
对象迁移到目标数据库实例后,对象名将会保持与源数据库实 例对象名一致且无法修改。
– 表级迁移:将选择的表级对象迁移至目标数据库。
– 库级迁移:将选择的库级对象迁移至目标数据库。
如果有切换源数据库的操作或源库迁移对象变化的情况,请务必 在选择迁移对象前单击右上角的 ,以确保待选择的对象为最新 源数据库对象。
说明
– 若选择部分数据库进行迁移时,由于存储过程、视图等对象可能与其 他数据库的表存在依赖关系,若所依赖的表未迁移,则会导致迁移失 败。建议您在迁移之前进行确认,或选择全部数据库进行迁移。
– 选择对象的时候,对象名称的前后空格不显示,中间如有多个空格只 显示一个空格。
– 选择对象的时候支持搜索,以便您快速选择需要的数据库对象。
6. 在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁移。
– 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校 验”按钮重新进行迁移任务预校验。
预检查不通过项处理建议请参见《数据复制服务用户指南》中的“预检查不 通过项修复方法”。
– 预检查完成后,且所有检查项结果均通过时,单击“下一步”。
图2-13 预检查
说明
所有检查项结果均通过时,若存在待确认项,需要阅读并确认详情后才可以继续执行下一 步操作。
7. 在“任务确认”页面,设置迁移任务的启动时间、任务异常通知设置、SMN主 题、时延阈值、任务异常自动结束时间,并确认迁移任务信息无误后,单击“启 动任务”,提交迁移任务。
图2-14 任务启动设置
表2-11 任务启动设置
参数 描述
启动时间 迁移任务的启动时间可以根据业务需求,设置为“立即启动”或
“稍后启动”,优选“稍后启动”。
说明
预计迁移任务启动后,会对源数据库和目标数据库的性能产生影响,建 议您将任务启动时间设定在业务低峰期,同时预留2-3天校对数据。
任务异常通
知设置 该项为可选参数,开启之后,选择对应的SMN主题。当迁移任 务状态异常时,系统将发送通知。
SMN主题 “任务异常通知设置”项开启后可见,需提前在SMN上申请主 题并添加订阅。
SMN主题申请和订阅可参考《消息通知服务用户指南》。
时延阈值 在增量迁移阶段,源数据库和目标数据库之间的实时同步有时会 存在一个时间差,称为时延,单位为秒。
时延阈值设置是指时延超过一定的值后(时延阈值范围为1—
3600s),DRS可以发送告警通知。告警通知将在时延稳定超过 设定的阈值6min后发送,避免出现由于时延波动反复发送告警 通知的情况。
说明
– 首次进入增量迁移阶段,会有较多数据等待同步,存在较大的时延,
属于正常情况,不在此功能的监控范围之内。
– 设置时延阈值之前,需要设置任务异常通知。
任务异常自 动结束时间
(天)
设置任务异常自动结束天数,输入值必须在14-100之间,默认 值14。
说明
异常状态下的任务仍然会计费,而长时间异常的任务无法续传和恢复。
设置任务异常自动结束天数后,异常且超时的任务将会自动结束,以免 产生不必要的费用。
8. 迁移任务提交后,开始启动迁移任务,您可以返回“实时迁移管理”页面,查看 迁移任务状态。
步骤2 任务管理。
迁移任务启动后,会经历全量迁移和增量迁移两个阶段,对于不同阶段的迁移任务,
您可以进行任务管理。
● 全量迁移
– 查看迁移进度:全量迁移中的任务,您可单击任务名称,在“迁移进度”页 签下,查看全量迁移进度,您可以查看结构、数据、索引迁移的进度,也查 看具体迁移对象的迁移进度。当全量迁移进度显示为100%,表示全量迁移已 经完成。
– 查看迁移明细:迁移明细中,您可以查看具体迁移对象的迁移进度,当“对 象数目”和“已迁移对象”相等时,表示该对象已经迁移完成,可通过“查 看详情”查看每个对象的迁移进度。仅白名单用户该支持功能,您可以通过 提交工单的方式进行申请使用。
● 增量迁移
– 查看时延监控:全量迁移完成后,开始进行增量迁移。对于增量迁移中的任 务,您可单击任务名称,在“迁移进度”页签下,查看增量迁移同步时延,
当时延为0s时,说明源数据库和目标数据库的数据是实时同步的。您也可以 使用“迁移对比”页签查看一致性。
图2-15 查看时延监控
– 查看迁移对比:为了尽可能减少业务的影响和业务中断时间,增量迁移中的 任务,您可单击任务名称,在“迁移对比”页签下,建议按照如下流程进行 迁移对比,以便确定合适的业务割接时机。
图2-16 迁移对比流程
具体的迁移对比操作及注意事项请参考《数据复制服务用户指南》中“对比 迁移项”章节。
步骤3 割接建议。
建议您选择一个业务低峰期,开始正式系统割接流程。割接前,请您确认至少在业务 低峰期有过一次完整的数据对比。可以结合数据对比的“稍后启动”功能,选择业务 低峰期进行数据对比,以便得到更为具有参考性的对比结果。由于同步具有轻微的时 差,在数据持续操作过程中进行对比任务,可能会出现少量数据不一致对比结果,从 而失去参考意义。
1. 先中断业务(如果业务负载非常轻,也可以尝试不中断业务)。
2. 在源数据库端执行如下语句,并观察在1-5分钟内若无任何新会话执行SQL ,则可 认为业务已经完全停止。
db.currentOp() 说明
上述语句查询到的进程列表中,包括DRS迁移实例的连接,您需要确认除DRS迁移实例的 连接外无任何新会话执行SQL,即可认为业务已经完全停止。
3. 通过DRS迁移任务监控页面进行观察同步时延,保持实时同步时延为0,并稳定保 持一段时间;同时,您可以使用数据级对比功能,进行割接前的最后一次数据级 对比,耗时可参考之前的对比记录。
– 如果时间允许,则选择全部对比。
– 如果时间不允许,则推荐对比活跃表,关键业务表,第二步对比多次存在差 异的表等。
4. 确定系统割接时机,业务系统指向本云数据库,业务对外恢复使用,迁移完成。
步骤4 迁移结束。
1. 结束迁移任务:业务系统和数据库切换至本云后,为了防止源数据库的操作继续 同步到目标数据库,造成数据覆盖问题,此时您可选择结束迁移任务,该操作仅 删除了迁移实例,迁移任务仍显示在任务列表中,您可以进行查看或删除。结束 迁移任务后,DRS将不再计费。
2. 删除迁移任务:对于已结束的迁移任务,您可选择删除任务。该操作将一并删除 迁移任务,删除迁移任务后,该任务将不会出现在任务列表中。
----结束
2.4 ECS 自建 MySQL 迁移到 RDS for MySQL
2.4.1 最佳实践概述
场景描述
本实践主要包含以下内容:
● 介绍RDS for MySQL和自建社区版MySQL版的性能对比。
● 介绍如何在华为云弹性云服务器 ECS上构建社区版MySQL和创建RDS for MySQL 实例。
● 介绍如何将自建MySQL迁移到RDS for MySQL实例。
RDS for MySQL 产品优势
● 低成本 享更多的服务
只需支付实例费用,无需其他硬件、托管等费用。
● 超高性能 极致用户体验 – 100%兼容MySQL应用。
– 高并发性能满足苛刻性能要求。
– 支持大量连接,响应更快速。
● 高安全性 保证数据库安全
– 网络隔离、访问控制、传输加密、存储加密、防DDos攻击,全系列的数据库 高安全登记,保证数据库安全。
– 华为云的108项关键安全能力,在国内首家通过NIST CSF网络安全框架的最 高等级认证。
● 高可靠性 多种部署及容灾方案
数据备份、数据恢复、双机热备、异地容灾、同城容灾,多种部署及容灾方案,
为数据可靠性保驾护航。
部署架构
本示例中,数据库源端为ECS自建MySQL,目的端为RDS实例,同时假设ECS和RDS实 例在同一个VPC中。部署架构如图2-17所示。
如果自建MySQL和RDS实例不在同一个VPC内,相比于相同VPC的情况,需要配置两个 VPC的对等连接,部署架构图如图2-18所示。
本文档中以同一VPC为例,如何配置两个VPC的对等连接请参考配置对等连接。
图2-17 同一 VPC 的部署架构
图2-18 不同 VPC 场景的部署架构
服务列表
● 虚拟私有云 VPC
● 弹性云服务器 ECS
● 云数据库 RDS
● 数据复制服务 DRS
使用说明
● 本实践的资源规划仅作为演示,实际业务场景资源以用户实际需求为准。
● 本实践端到端的数据为测试数据,仅供参考;更多关于MySQL数据迁移须知请单 击这里了解。
2.4.2 前提条件
● 拥有华为云实名认证账号。
● 账户余额大于等于0元。
2.4.3 资源规划
表2-12 资源规划
类别 子类 规划 备注
VPC VPC名称 vpc-01 自定义,易理解可识别。
所属Region 华东-上海一 选择和自己业务区最近的 Region,减少网络时延。
可用区 可用区3 -
类别 子类 规划 备注
子网网段 10.0.0.0/24 子网选择时建议预留足够的网络 资源。
子网名称 subnet-01 自定义,易理解可识别。
ECS-(MySQ L 服务 器)
ECS名称 ecs-mysql 自定义,易理解可识别。
规格 s6.xlarge.2 4vCPUs|
8GiB 本示例中选择的规格。
实际选择的规格需要结合业务场 景选择,请参考弹性云服务器的 实例规格。
操作系统 CentOS 7.6 64 - 系统盘 通用型SSD 40GiB - 数据盘 超高IO 100GiB -
弹性IP 现在购买 因为需要使用CloudShell登录云服 务器,因此此处需要购买弹性IP。
ECS-(MySQ L客户 端)
ECS名称 ecs-client 自定义,易理解可识别。
规格 s6.xlarge.2 4vCPUs|
8GiB 本示例中选择的规格。
实际选择的规格需要结合业务场 景选择,请参考弹性云服务器的 实例规格。
操作系统 CentOS 7.6 64 - 系统盘 通用型SSD 40GiB -
数据盘 不需要 -
弹性IP 现在购买 因为需要使用CloudShell登录云服 务器,因此此处需要购买弹性IP。
RDS RDS实例名 rds-mysql 自定义,易理解可识别。
数据库版本 MySQL 5.7 -
实例类型 单机 本示例中为单机。
实际使用时,为提升业务可靠 性,推荐选择主备RDS实例。
存储类型 SSD云盘 -
可用区 可用区3 本示例中为单机。
实际业务场景推荐选择主备RDS 实例,此时建议将两个实例创建 在不同的可用区,提升业务可靠 性。
规格 通用性 4 vCPUs |
8GB -
类别 子类 规划 备注 DRS迁移
任务
迁移任务名 DRS-mysql 自定义 源数据库引
擎 MySQL 本示例中源数据库为自建
MySQL,即在华为云弹性云服务 器上安装社区版MySQL。
目标数据库
引擎 MySQL 本示例中目标数据库也是
MySQL,使用的华为云RDS实 例。
网络类型 VPC网络 本示例中采用“VPC网络”。
2.4.4 操作流程
构建MySQL服务器、购买RDS实例,并且将MySQL服务器数据迁移到RDS实例的整个 流程的主要任务流如图2-19所示。
图2-19 流程图
2.4.5 自建 MySQL 服务器
我们将在此章节介绍如何构建一个自建MySQL服务器。以在华为云上购买一个ECS并 在其上面安装MySQL为例,主要的任务如下:
1. 创建VPC和安全组
2. 创建ECS(MySQL服务器)
3. 安装社区版MySQL
4. 创建ECS(MySQL客户端)
2.4.5.1 创建 VPC 和安全组
创建VPC和安全组,为创建MySQL服务器和RDS实例准备好网络资源和安全组。
创建 VPC
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华东-上海一”。
步骤3 单击左侧的服务列表图标,选择“网络 > 虚拟私有云 VPC”。
进入虚拟私有云信息页面。
步骤4 单击“创建虚拟私有云”购买VPC。
步骤5 单击“立即创建”。
步骤6 返回VPC列表,查看创建VPC是否创建完成。
当VPC列表的VPC状态为“可用”时,表示VPC创建完成。
----结束
创建安全组
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华东-上海一”。
步骤3 单击左侧的服务列表图标,选择“网络 > 虚拟私有云”。
进入虚拟私有云信息页面。
步骤4 选择“访问控制 > 安全组”。
步骤5 单击“创建安全组”。
步骤6 填写安全组名称等信息。
步骤7 单击“确定”。
步骤8 返回安全组列表,单击安全组名称“sg-01”。
步骤9 选择“入方向规则”,单击“添加规则”。
步骤10 配置入方向规则,放通数据库3306端口。
步骤11 放通22端口。
1. 为了提升弹性云服务器的安全性,可针对如下三个IP地址放通22端口。
– 本机IP地址 – 121.36.59.153 – 198.19.128.0/20
2. 选择“入方向规则”,单击“添加规则”。
3. 配置入方向规则,放通数据库22端口。
须知
源地址需要选择“IP地址组”,请在“访问控制 > IP地址组中配置 ”。
----结束
2.4.5.2 创建 ECS(MySQL 服务器)
购买弹性云服务器,用于安装MySQL社区版。
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华东-上海一”。
步骤3 单击左侧的服务列表图标,选择“计算 > 弹性云服务器 ECS”。
步骤4 单击“购买云服务器”。
步骤5 配置弹性云服务器参数。
1. 选择通用计算型s6.xlarge.2 4vCPUs |8GB规格。
2. 选择镜像和磁盘规格。
步骤6 单击“下一步:网络配置”。
1. 选择在创建VPC和安全组创建的VPC和安全组。
2. 选择购买弹性公网IP,公网带宽选择“按流量计费”。
此示例中,带宽大小选20Mbit/s。
步骤7 单击“下一步:高级配置”。
配置云服务器名称和密码。
步骤8 单击“下一步:确认配置”。
步骤9 确认配置信息后单击“立即购买”。
步骤10 返回弹性云服务器列表页面,查看弹性云服务器的创建进度。
当弹性云服务器的状态为“运行中”时,表示创建完成。
----结束
2.4.5.3 安装社区版 MySQL
初始化磁盘并安装社区版MySQL。
登录弹性云服务器
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华东-上海一”。
步骤3 单击左侧的服务列表图标,选择“计算 > 弹性云服务器 ECS”。
步骤4 在弹性云服务器名称“ecs-mysql”所在行单击“远程登录”。
步骤5 选择“CloudShell登录”。
步骤6 输入root用户密码,完成登录。
说明
root用户密码为您创建弹性云服务器过程中设置的密码。
----结束
初始化磁盘
步骤1 执行如下命令,创建mysql文件夹。
mkdir /mysql
步骤2 执行如下命令,查看数据盘信息。
fdisk -l 回显如下:
步骤3 执行如下命令,初始化数据盘。
mkfs.ext4 /dev/vdb 步骤4 执行如下命令,挂载磁盘。
mount /dev/vdb /mysql
步骤5 执行如下命令,查看磁盘是否挂在成功。
df -h
当现实如下回显是,表示挂载成功。
步骤6 依次执行如下命令,创建文件夹并切换至install文件夹。
mkdir -p /mysql/install/data mkdir -p /mysql/install/tmp mkdir -p /mysql/install/file
mkdir -p /mysql/install/log cd /mysql/install
步骤7 下载依赖包并上传到/mysql/install/file命令。
步骤8 下载并安装社区版MySQL。
步骤9 执行如下命令,初始化MySQL。
/mysql/install/mysql-5.7/bin/mysqld --defaults-file= /etc/my.cnf --initialize- insecure
步骤10 执行如下命令,启动MySQL。
nohup /mysql/install/mysql-5.7/bin/mysqld --defaults-file= /etc/my.cnf &
步骤11 执行如下命令,连接MySQL。
/mysql/install/mysql-5.7/bin/mysql 步骤12 执行如下命令,创建root用户并授权。
grant all privileges on *.* to 'root'@'%' identified by 'xxx' with grant option;FLUSH PRIVILEGES;
----结束
2.4.5.4 创建 ECS 并安装 MySQL 客户端
步骤1 请参考创建ECS(MySQL服务器)创建MySQL客户端的弹性云服务器。
说明
● 确保和MySQL服务器所在ECS配置成相同Region、相同可用区、相同VPC、相同安全组。
● 不用购买数据盘。
● 云服务器名配置为:ecs-client。
● 其他参数同MySQL服务器的ECS配置。
步骤2 下载并安装MySQL客户,请参考安装MySQL客户端。
----结束
2.4.5.5 测试自建 MySQL 性能
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华东-上海一”。
步骤3 单击左侧的服务列表图标,选择“计算 > 弹性云服务器 ECS”。
步骤4 单击“ecs-client”弹性云服务器后的“远程登录”。
步骤5 在弹出的远程连接界面中单击“CloudShell”。
步骤6 输入弹性云服务器“ecs-client”的密码,登录弹性云服务器。
步骤7 执行如下命令,下载sysbench。
wget -c https://github.com/akopytov/sysbench/archive/1.0.12.zip
步骤8 依次执行如下命令,安装sysbench。
unzip 1.0.12.zip cd sysbench-1.0.12 ./autogen.sh ./configure make
make install
步骤9 执行如下命令,连接数据库并创建测试数据库“loadtest”。
mysql -u root -P 3306 -h <host> -p -e "create database loadtest"
步骤10 执行如下命令,使用sysbench命令导入测试背景数据到“loadtest”数据库。
sysbench --test=/usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-
password=<password> --mysql-port=3306 --mysql-host=<host> --oltp-tables- count=150 --oltp-table-size=800000 --num-threads=20 prepare
步骤11 执行如下命令,压测数据。
sysbench --test=/usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-
password=<password> --mysql-port=3306 --mysql-host=<host> --oltp-tables- count=150 --oltp-table-size=800000 --max-time=600 --max-requests=0 --num- threads=200 --report-interval=3 --forced-shutdown=1 run
须知
为了后续使用DRS迁移数据,我们先不删除数据库和表数据,等待迁移完数据库后,
再进行数据的清理,释放空间。
删除命令如下:sysbench --test=/usr/local/share/sysbench/tests/include/
oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password=<password> --mysql-port=3306 --mysql-host=<host> --oltp- tables-count=150 --oltp-table-size=800000 --max-time=3600 --max-
requests=0 --num-threads=200 cleanup
----结束
2.4.6 上云操作
本章节通过购买RDS实例、创建DRS迁移任务,将自建MySQL服务器的数据迁移到 RDS实例。
2.4.6.1 创建 RDS 实例
本章节介绍创建RDS实例,该实例选择和自建MySQL服务器相同的VPC和安全组。
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华东-上海一”。
步骤3 单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。
步骤4 单击“购买数据库实例”。
步骤5 配置实例名称和实例基本信息。
步骤6 选择实例规格。
步骤7 选择实例所属的VPC和安全组、配置数据库端口。
VPC和安全组已在创建VPC和安全组中准备好。
步骤8 配置实例密码。
步骤9 单击“立即购买”。
步骤10 返回云数据库实例列表。
当RDS实例运行状态为“正常”时,表示实例创建完成。
----结束
2.4.6.2 创建 DRS 迁移任务
本章节介绍创建DRS实例,将自建MySQL服务器上的loadtest数据库迁移到RDS MySQL实例。
迁移前检查
在创建任务前,需要针对迁移条件进行手工自检,以确保您的迁移任务更加顺畅。
本示例中,为MySQL到MySQL的入云迁移,您可以参考入云使用须知获取相关信息。
操作任务
介绍自建MySQL服务器上的loadtest数据库迁移到RDS MySQL实例的详细操作过程。
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华东-上海一”。
步骤3 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。
步骤4 单击“创建迁移任务”。
步骤5 填写迁移任务参数:
1. 配置迁移任务名称。
2. 填写迁移数据并选择模板库。
这里的目标库选择创建RDS实例创建的RDS实例。
3. 企业项目选择“default”。
步骤6 单击“下一步”。
迁移实例创建中,大约需要5-10分钟。
步骤7 配置源库信息和目标库数据库密码。
1. 配置源库信息。
2. 单击“测试连接”。
当界面显示“测试成功”时表示连接成功。
3. 配置目标库数据库用户名和密码。
4. 单击“测试连接”。
当界面显示“测试成功”时表示连接成功。
步骤8 单击“下一步”。
步骤9 确认迁移用户、快照模式和迁移对象。
本次选择:全部迁移。
步骤10 单击“下一步”。
步骤11 等待预检查结果。
步骤12 当所有检查都是“通过”时,单击"下一步”。
步骤13 单击“提交任务”。
返回DRS实时迁移管理,查看迁移任务状态。
启动中状态一般需要几分钟,请耐心等待。
当状态变更为“已结束”,表示迁移任务完成。
----结束
2.4.6.3 确认数据迁移结果
确认升级迁移结果有两种方式:
方式一:(自动)在DRS管理控制台查看迁移结果。DRS会针对迁移对象、用户、数 据等维度进行对比,从而给出迁移结果。
方式二:(手工)在RDS管理控制台查看迁移结果。直接登录数据库查看库、表、数 据是否迁移完成。手工确认数据迁移情况。
在 DRS 管理控制台查看迁移结果
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华东-上海一”。
步骤3 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。
步骤4 单击DRS实例后名。
步骤5 单击“迁移对比”。
步骤6 然后选择“数据对比 全面检查”和“数据对比 割接复查”确认迁移结果。
预检查不通过项可以参考预检查不通过项修复方法查询解决方法。
----结束
在 RDS 管理控制台查看迁移结果
步骤1 登录华为云控制台。
步骤2 单击管理控制台左上角的 ,选择区域“华东-上海一”。
步骤3 单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。”。
步骤4 单击RDS实例后的“更多 > 登录”。
步骤5 在弹出的对话框中单击“测试连接”检查。
步骤6 连接成功后单击“登录”。
步骤7 输入实例密码,登录RDS实例。
步骤8 查看并确认目标库名和表名等。确认相关数据是否迁移完成。
----结束
2.4.7 自建 MySQL 和 RDS for MySQL 性能对比
参考测试自建MySQL性能,将数据库主机、端口号修和密码改为RDS MySQL实例的 对应内容并进行测试。
通过对比数据可以看出,RDS for MySQL性能优于自建数据库100%+。
须知
如果您使用本文档中的示例和过程用于体验华为云RDS for MySQL和DRS服务,提醒 您体验完成后及时删除ECS服务器、RDS实例和VPC资源,避免资源占用带来的不必要 的费用开销。
2.5 ECS 自建 MySQL 迁移到 GaussDB(for MySQL)
数据复制服务(Data Replication Service,简称DRS)支持将ECS自建MySQL数据库 的数据迁移到本云云数据库GaussDB(for MySQL)。通过DRS提供的实时迁移任务,实 现在数据库迁移过程中业务和数据库不停机,业务中断时间最小化。
本章节主要介绍了通过DRS将ECS自建MySQL数据库实时迁移至本云云数据库 GaussDB(for MySQL)的任务配置流程。支持以下网络类型:
● VPC网络
● VPN(Virtual Private Network,虚拟专用网络)、专线网络
● 公网网络
迁移流程
图2-20 迁移流程图
迁移建议(重要)
● 数据库迁移与环境多样性和人为操作均有密切关系,为了确保迁移的平顺,建议 您在进行正式的数据库迁移之前进行一次演练,可以帮助您提前发现问题并解决 问题,如何最小化对数据库的影响请参考如下建议。
● 强烈建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰 期,相对静止的数据可以有效提升一次性迁移成功率,避免迁移对业务造成性能 影响。
迁移须知(重要)
须知
在创建迁移任务之前,请您务必仔细阅读迁移须知。
参考《数据复制服务实时迁移》中具体链路的“使用须知”。
迁移准备
1. 权限准备。
当使用DRS将MySQL数据库的数据迁移到本云云数据库GaussDB(for MySQL)实 例时,在不同迁移类型的情况下,对源数据库和目标数据库的帐号权限要求如表 2-13:
表2-13 迁移帐号权限
迁移类型 全量迁移 全量+增量迁移
源数据库 SELECT、SHOW
VIEW、EVENT。 SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。
目标数据库 SELECT、CREATE、
DROP、DELETE、
INSERT、UPDATE、
INDEX、EVENT、
CREATE VIEW、CREATE ROUTINE、TRIGGER、
WITH GRANT OPTION。
SELECT、CREATE、
DROP、DELETE、
INSERT、UPDATE、
INDEX、EVENT、
CREATE VIEW、CREATE ROUTINE、TRIGGER、
WITH GRANT OPTION。
– 源数据库权限设置:
需要确保源数据库MySQL的帐号权限具备表2-13的要求。若权限不足,需要 在源数据库端开通高权限的帐号。目标数据库权限设置:
本云数据库GaussDB(for MySQL)使用初始帐号即可。
2. 网络准备。
– 源数据库的网络设置:
ECS自建MySQL数据库实时迁移至本云云数据库GaussDB(for MySQL)的场 景,一般可以使用VPC网络、VPN网络、专线网络和公网网络四种方式进行 迁移,您可以根据实际情况选择。一般推荐使用公网网络进行迁移,该方式 下的数据迁移过程较为方便和经济。