阿里云ADAM(亚当)体验记录

  1. 云栖社区>
  2. 阿里云MVP>
  3. 博客>
  4. 正文

阿里云ADAM(亚当)体验记录

anxin 2019-07-13 20:26:04 浏览738

阿里云的亚当(ADAM)是Advanced Database & Application Migration的缩写,是一款把数据库和应用迁移到阿里云(公共云或专有云)的产品,主要面向的是正在使用Oracle数据库并希望将其替换为阿里云数据库服务的客户。
就在前一段时间,我获得POLARDB,阿里云一款Oracle替代产品的公测资格,我成功的以手工方式将一款CRM应用从Oracle数据库迁移到了POLARDB,这次我用ADAM再做一次自动化的迁移,看看会有什么不同。
ADAM同样需要申请公测资格,在获得批准后可以看到进入控制台的入口,在进入控制台之后是这样的。
1

操作流程清晰的标注在屏幕下方:

  • 下载数据采集器、主要采集目标Oracle数据库的结构和使用方式,数据采集器将相关数据打包到一个压缩文件中。
  • 新建画像、将压缩文件上传后ADAM将利用采集到的信息进行分析,给出目标数据库的画像。
  • 创建评估项目、根据画像创建项目项目,阿里云会根据Oracle数据库的规模、热点、复杂度、负载、会话情况生成迁移计划。
  • 导出计划、在迁移计划中,既包括技术方案、运行成本、灾备方案这样的面向管理人员的设计文件,也包括用于实际控制迁移过程的迁云计划。将迁云计划导出后可以用于指挥ADAM Studio的迁移过程。
  • 下载studio、ADAM studio是一组紧密合作的工具软件,安装在能够同时访问源Oracle数据库和目标数据库服务的Linux服务器上,该服务器可以是云服务器(ECS)也可以是线下IDC中的物理或虚拟服务器。
  • 导入计划、在studio的控制台上导入迁云计划,studio将根据迁移计划进行后续的结构和数据迁移。
  • 结构迁移/订正、迁移、根据迁移计划在目标数据库建立表、视图等结构对象。
  • 数据迁移/校验、进行数据的迁移,在迁移完成后再进行数据校验。

以下是一些我对关键步骤的记录,供大家参考。

数据采集

数据采集支持Windows或者Linux操作系统,数据采集程序无需安装在Oracle数据库所在的服务器,之需要能够访问Oracle数据库即可。我安装的是Linux版本,需要在Oracle数据库上新建一个临时账号,并给这个临时账号赋予必要的权限以进行信息收集。
程序执行完毕,会生成一个data.zip文件,将这个文件下载并上传到ADAM控制台用于创建画像。

新建画像

新建画像的必要条件就是上面步骤收集的data.zip文件。
2

建立好的数据库画像大概都包含这些内容
3

有了数据库的画像数据就可以据此创建迁移评估报告。

创建评估项目

ADAM目前支持将Oracle数据库迁移到如下4种阿里云数据库服务:

  • PPAS
  • MySQL
  • POLARDB for Oracle
  • PostgreSQL

4

创建评估项目就是选中源库画像和目标数据库类型。
评估完成后,就能生成四类输出:技术方案、运行成本、灾备方案、迁云计划。
5

其中迁云计划是为ADAM Studio准备,其余三项都是给管理人员提供的迁移决策依据。

ADAM Studio的部署和迁云计划导入

需要找一台Linux服务器部署ADAM Studio,服务器最低配置为8c16G,当数据库规模较大时推荐8c32G。该服务器要能够同时访问源Oracle数据库和目标阿里云数据库。ADAM Studio 还支持分布式部署,用于更大规模数据库的迁移。
在ADAM Studio控制台,首要任务是新建档案,就是输入源Oracle、目标阿里云数据库服务、OSS的账号信息,其中假如Oracle数据库中没有BLOB字段就不需要设置OSS,Oracle的BLOG字段数据未来要存储到OSS中。
大家不要小看这一步,迁移的成功很大程度上就是决定于档案中的账号是否拥有必要的权限。
我个人的经验是源Oracle数据库的权限可以尽量收窄,而目标阿里云数据库服务的权限可以尽量放宽,因为这个时候业务是运行在Oracle这一端的,且不需要写入权限,而阿里云一端是需要新建各种对象和写入数据。
有了源和目标的账号信息后就可以建立迁移项目,在建立迁移项目时需要提交上一步生成的迁移计划,一个json文件。

结构迁移、数据迁移、校验

只要上一步做对,迁移就是下一步,下一步,完成。
6

当然,这只是一个非常简单的项目,只有序列、表、视图这些基础对象。假如源数据库比较复杂可能就需要迁移人员具备一定的专业技能才能完成一次成功的迁移。但无论如何,有了ADAM这样的专业辅助工具,都会让迁移工作变得可视、有序、可靠、高效。