AWS 数据库迁移服务:将 Oracle 数据库迁移到 MySQL

为什么要迁移数据库

你可能会因为以下一个或多个原因而迁移数据库。

  • 同构迁移——迁移到不同平台但相同类型的数据库引擎。同构迁移可以用于对数据库进行备份。

  • 异构迁移——迁移到不同的数据库引擎,如 Oracle 数据库迁移到 MySQL 数据库。如果我们需要利用另一个数据库的功能(例如源数据库不支持某些数据类型),就需要进行异构迁移。商业数据库可以迁移到开源数据库,反之亦然。关系数据库可以迁移到 NoSQL 数据库。

  • 数据复制——将数据持续地复制到不同的目标数据库,用于测试和开发以及实现数据库的区域分布。

  • 数据库整合——可以将多个源数据库迁移到单个数据库进行整合。

  • 平台迁移——本地机器上的数据可以被迁移到云数据库服务。基于云的数据库即服务(Database-as-a-Service,DBaaS)提供了很多好处:不需要 DBA 的全托管服务、具有故障转移能力的高可用性、可伸缩性以及与其他云服务集成(实现自动化监控和日志记录)。在本文中,我们将把 Oracle 数据库迁移到 MySQL 数据库。如果你更喜欢开源 MySQL 数据库而不是商业 Oracle 数据库,那就可能需要进行迁移。MySQL 和 Oracle 数据库是完全不同的,你可能会出于一个或多个原因而迁移到 MySQL,例如不同的数据类型支持、操作系统支持和部署规模。

进行迁移唯一的先决条件是 AWS 帐户,可以在 这里 创建。

第 1 步:在 RDS 上创建 Oracle 和 MySQL DB 实例

因为我们分别将 Oracle 和 MySQL RDS DB 实例作为 DMS 迁移的源和目标,因此需要创建两个 RDS 实例,一个用于 Oracle 数据库,另一个用于 MySQL。在创建 RDS 实例之前,我们需要创建新的 VPC(虚拟私有云)、新的 DB 子网组和安全组(可选)。我们也可以使用默认的 VPC 安全组。如果 AWS 帐户的 VPC 最大数量有限制,请在创建 RDS 实例前删除部分不使用的 VPC。在创建 RDS 实例时,将公开访问选项设置为“是”,因为我们需要在执行 DMS 迁移之前直接访问这些实例,运行一些命令,并在迁移完成后验证迁移的数据。由于 RDS 默认情况下不创建数据库,所以我们需要选择附加配置,并为每个 RDS 实例指定初始数据库名称。MySQL RDS 实例数据库名称为 mysqldb,Oracle RDS 实例数据库名称为 orcl。某些保留关键字,如 MySQL RDS 实例的“mysql”不能用在配置中(如数据库名称、数据库实例标识符、主用户名、主密码)。Oracle 和 MySQL 的源和目标 RDS 实例如图 1 所示。

图 1. RDS 数据库实例

如果安全组没有满足需求的入站/出站规则,可能需要修改它们。单击 RDS 控制台中每个数据库实例的安全组链接。检查安全组的“Type”为“All traffic”、“Protocol”为“All”、“Port Range”为“All”、“Source”为“Anywhere”(0.0.0.0/0),如果不是,单击“Edit inbound rules”按钮并修改设置,然后单击“Save rules”。类似地,出站规则也应该允许所有流量。把每个 DB 实例的主用户名和主密码记录下来。

第 2 步:为 DMS 准备 Oracle 和 MySQL 数据库

为了能够使用 RDS 上的 Oracle DB 作为 DMS 源,我们需要在 DB 实例上配置一些东西。我们可以在命令行中连接到 Oracle 实例来进行配置。要在命令行中连接到 RDS DB 实例,我们需要获取 RDS 实例的端点。RDS 上的 DB 实例的端点可以从 RDS 控制台获得。

安装 Oracle Instant客户端 。使用下面的 sqlplus 命令连接到 Oracle DB 实例,其中 HOST、SID 和 PORT 对于不同的用户来说是不一样的。HOST 就是端点移除端口后缀后剩下的部分。

sqlplus admin@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl.crbmlbxmp8qi.us-east-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SID=ORCL)))

复制代码

SQL*Plus 命令行连接到 RDS 上的 Oracle DB,并启用 DMS 数据库级别的补充日志。

exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

复制代码

PL/SQL 过程执行完毕。

使用下面的命令启用数据库级别的 PRIMARY KEY 日志。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值